顶层Makefile文件中 :

ifndef LDSCRIPT
    #LDSCRIPT := $(srctree)/board/$(BOARDDIR)/u-boot.lds.debug
    ifdef CONFIG_SYS_LDSCRIPT
        # need to strip off double quotes
        LDSCRIPT := $(srctree)/$(CONFIG_SYS_LDSCRIPT:"%"=%)
    endif
endif

# If there is no specified link script, we look in a number of places for it
ifndef LDSCRIPT
    ifeq ($(wildcard $(LDSCRIPT)),)
        LDSCRIPT := $(srctree)/board/$(BOARDDIR)/u-boot.lds
    endif
    ifeq ($(wildcard $(LDSCRIPT)),)
        LDSCRIPT := $(srctree)/$(CPUDIR)/u-boot.lds
    endif
    ifeq ($(wildcard $(LDSCRIPT)),)
        LDSCRIPT := $(srctree)/arch/$(ARCH)/cpu/u-boot.lds
    endif
endif

之前一直在后面几条里面找,board目录下没有,以为是arch/arm/cpu/u-boot.lds

结果发现是/arch/arm/mach-fmxx/u-boot.lds

grep果然是好东西,

grep -nwr u-boot.lds

发现了

include/configs/fmxx-common.h:120:#define CONFIG_SYS_LDSCRIPT   "arch/arm/mach-fmxx/u-boot.lds"
在头文件里定义了这个。

u-boot链接最终所使用的链接脚本u-boot.lds位于根目录下,通过编译(准确说是预处理)才能生成。

05-20 01:02