顶层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
位于根目录下,通过编译(准确说是预处理)才能生成。