Fix all linker scripts for older binutils versions (pre-2.16)
authorWolfgang Denk <wd@denx.de>
Mon, 17 Aug 2009 12:00:53 +0000 (14:00 +0200)
committerWolfgang Denk <wd@denx.de>
Fri, 21 Aug 2009 21:13:34 +0000 (23:13 +0200)
Commit f62fb99941c6 fixed handling of all rodata sections by using a
wildcard combined with calls to ld's builtin functions SORT_BY_ALIGNMENT()
and SORT_BY_NAME().  Unfortunately these functions were only
introduced with biunutils version 2.16, so the modification broke
building with all tool chains using older binutils.

This patch makes it work again.  This is done by omitting the use of
these functions for such old tool chains.  This will result in
slightly larger target binaries, as the rodata sections are no longer
in optimal order alignment-wise which reauls in unused gaps, but the
effect was found to be insignificant - especially compared to the fact
that you cannot build U-Boot at all in the current state.

As ld seems to have no support for conditionals we run the linker
script through the C preprocessor which can be easily used to remove
the unwanted function calls.

Note that the C preprocessor must be run with the "-ansi" (or a
"-std=") option to make sure all the system-specific predefined
macros outside the reserved namespace are suppressed. Otherise, cpp
might for example substitute "powerpc" to "1", thus corrupting for
example "OUTPUT_ARCH(powerpc)" etc.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Mike Frysinger <vapier@gentoo.org>
14 files changed:
Makefile
board/netstar/Makefile
board/voiceblue/Makefile
config.mk
nand_spl/board/amcc/acadia/Makefile
nand_spl/board/amcc/bamboo/Makefile
nand_spl/board/amcc/canyonlands/Makefile
nand_spl/board/amcc/kilauea/Makefile
nand_spl/board/amcc/sequoia/Makefile
nand_spl/board/freescale/mpc8313erdb/Makefile
nand_spl/board/freescale/mx31pdk/Makefile
nand_spl/board/samsung/smdk6400/Makefile
nand_spl/board/sheldon/simpc8313/Makefile
onenand_ipl/board/apollon/Makefile

index 329e0f5e6567feb5bc2379451125447b8ab3350f..2636ac055e44d891c4c466e364aab869fee31f71 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -326,11 +326,13 @@ GEN_UBOOT = \
                cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \
                        --start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
                        -Map u-boot.map -o u-boot
-$(obj)u-boot:          depend $(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT)
+$(obj)u-boot:  depend $(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds
                $(GEN_UBOOT)
 ifeq ($(CONFIG_KALLSYMS),y)
-               smap=`$(call SYSTEM_MAP,u-boot) | awk '$$2 ~ /[tTwW]/ {printf $$1 $$3 "\\\\000"}'` ; \
-               $(CC) $(CFLAGS) -DSYSTEM_MAP="\"$${smap}\"" -c common/system_map.c -o $(obj)common/system_map.o
+               smap=`$(call SYSTEM_MAP,u-boot) | \
+                       awk '$$2 ~ /[tTwW]/ {printf $$1 $$3 "\\\\000"}'` ; \
+               $(CC) $(CFLAGS) -DSYSTEM_MAP="\"$${smap}\"" \
+                       -c common/system_map.c -o $(obj)common/system_map.o
                $(GEN_UBOOT) $(obj)common/system_map.o
 endif
 
@@ -349,6 +351,9 @@ $(SUBDIRS): depend
 $(LDSCRIPT):   depend
                $(MAKE) -C $(dir $@) $(notdir $@)
 
+$(obj)u-boot.lds: $(LDSCRIPT)
+               $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 $(NAND_SPL):   $(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk
                $(MAKE) -C nand_spl/board/$(BOARDDIR) all
 
@@ -3653,10 +3658,12 @@ clean:
               $(obj)board/trab/trab_fkt   $(obj)board/voiceblue/eeprom   \
               $(obj)board/armltd/{integratorap,integratorcp}/u-boot.lds  \
               $(obj)lib_blackfin/u-boot.lds                              \
+              $(obj)u-boot.lds                                           \
               $(obj)cpu/blackfin/bootrom-asm-offsets.[chs]
        @rm -f $(obj)include/bmp_logo.h
-       @rm -f $(obj)nand_spl/{u-boot-spl,u-boot-spl.map,System.map}
+       @rm -f $(obj)nand_spl/{u-boot.lds,u-boot-spl,u-boot-spl.map,System.map}
        @rm -f $(obj)onenand_ipl/onenand-{ipl,ipl.bin,ipl-2k.bin,ipl-4k.bin,ipl.map}
+       @rm -f $(obj)onenand_ipl/u-boot.lds
        @rm -f $(TIMESTAMP_FILE) $(VERSION_FILE)
        @find $(OBJTREE) -type f \
                \( -name 'core' -o -name '*.bak' -o -name '*~' \
index 8f35f93d7bccb5b77622eef4740feb95d5fe22c6..11578b7f3df448755e5030b3889b53b558569837 100644 (file)
@@ -50,8 +50,8 @@ all:  $(obj).depend $(LIB) $(obj)eeprom.srec $(obj)eeprom.bin \
 $(LIB):        $(OBJS) $(SOBJS)
        $(AR) $(ARFLAGS) $@ $^
 
-$(obj)eeprom.srec:     $(obj)eeprom.o $(obj)eeprom_start.o
-       cd $(lnk) && $(LD) -T $(LDSCRIPT) -g -Ttext $(LOAD_ADDR) \
+$(obj)eeprom.srec:     $(obj)eeprom.o $(obj)eeprom_start.o $(obj)u-boot.lds
+       cd $(lnk) && $(LD) -T $(obj)u-boot.lds -g -Ttext $(LOAD_ADDR) \
                -o $(<:.o=) -e eeprom eeprom.o eeprom_start.o \
                -L$(obj)../../examples/standalone -lstubs \
                -L$(obj)../../lib_generic -lgeneric \
@@ -78,10 +78,13 @@ $(obj)crcit.o:      crcit.c
 $(obj)crc32.o: $(SRCTREE)/lib_generic/crc32.c
        $(HOSTCC) $(HOSTCFLAGS) -DUSE_HOSTCC -o $@ -c $<
 
+$(obj)u-boot.lds: $(LDSCRIPT)
+       $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 clean:
        rm -f $(SOBJS) $(OBJS) $(obj)eeprom $(obj)eeprom.srec \
                $(obj)eeprom.bin $(obj)crcek $(obj)crcek.srec \
-               $(obj)crcek.bin
+               $(obj)crcek.bin $(obj)u-boot.lds
 
 distclean:     clean
        rm -f $(LIB) core *.bak $(obj).depend
index 7bb92a681e50beacfac26cce783f712e44542972..121c717d9db5d9d975c79d3ac09528b8d93bdef5 100644 (file)
@@ -44,8 +44,8 @@ all:  $(obj).depend $(LIB) $(obj)eeprom.srec $(obj)eeprom.bin
 $(LIB):        $(OBJS) $(SOBJS)
        $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
 
-$(obj)eeprom.srec:     $(obj)eeprom.o $(obj)eeprom_start.o
-       cd $(lnk) && $(LD) -T $(LDSCRIPT) -g -Ttext $(LOAD_ADDR) \
+$(obj)eeprom.srec:     $(obj)eeprom.o $(obj)eeprom_start.o $(obj)u-boot.lds
+       cd $(lnk) && $(LD) -T $(obj)u-boot.lds -g -Ttext $(LOAD_ADDR) \
                -o $(<:.o=) -e eeprom eeprom.o eeprom_start.o \
                -L$(obj)../../examples/standalone -lstubs \
                -L$(obj)../../lib_generic -lgeneric \
@@ -55,11 +55,14 @@ $(obj)eeprom.srec:  $(obj)eeprom.o $(obj)eeprom_start.o
 $(obj)eeprom.bin:      $(obj)eeprom.srec
        $(OBJCOPY) -I srec -O binary $< $@ 2>/dev/null
 
+$(obj)u-boot.lds: $(LDSCRIPT)
+       $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 clean:
        rm -f $(SOBJS) $(OBJS) $(obj)eeprom \
                $(obj)eeprom.srec $(obj)eeprom.bin \
-               $(obj)eeprom.o $(obj)eeprom_start.o
-
+               $(obj)eeprom.o $(obj)eeprom_start.o \
+                $(obj)u-boot.lds
 
 distclean:     clean
        rm -f $(LIB) core *.bak $(obj).depend
index 0c6d1d1aa76cdd15afd2658537b7e790e33f3594..7bc7315d5d28e62185faa5a4d441e144b363de4b 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -166,11 +166,21 @@ endif
 
 AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS)
 
-LDFLAGS += -Bstatic -T $(LDSCRIPT) $(PLATFORM_LDFLAGS)
+LDFLAGS += -Bstatic -T $(obj)u-boot.lds $(PLATFORM_LDFLAGS)
 ifneq ($(TEXT_BASE),)
 LDFLAGS += -Ttext $(TEXT_BASE)
 endif
 
+# Special flags for CPP when processing the linker script
+# Linker versions prior to 2.16 don't understand the builting
+# functions SORT_BY_ALIGNMENT() and SORT_BY_NAME(), so disable these
+ifeq ($(shell $(LD) -v | \
+       sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\) .*/[ \1 -lt 2 ] || [ \2 -lt 16 ] \&\& echo old_ld/p' | \
+       sh),old_ld)
+LDPPFLAGS += -D'SORT_BY_ALIGNMENT(x)=x' -D'SORT_BY_NAME(x)=x'
+endif
+
+
 # Location of a usable BFD library, where we define "usable" as
 # "built for ${HOST}, supports ${TARGET}".  Sensible values are
 # - When cross-compiling: the root of the cross-environment
index 822f82f2b23789b953c58fca8a51960411525ea3..f37425eba1ca19a461820a345322f2dded426a02 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS        = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_NAND_SPL
 CFLAGS += -DCONFIG_NAND_SPL
 
@@ -50,7 +50,7 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl
 $(nandobj)u-boot-spl.bin:      $(nandobj)u-boot-spl
        $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
 
-$(nandobj)u-boot-spl:  $(OBJS)
+$(nandobj)u-boot-spl:  $(OBJS) $(nandobj)u-boot.lds
        cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
@@ -60,6 +60,9 @@ $(nandobj)System.map: $(nandobj)u-boot-spl
                grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
                sort > $(nandobj)System.map
 
+$(nandobj)u-boot.lds: $(LDSCRIPT)
+       $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 # create symbolic links for common files
 
 # from cpu directory
index 293292732fc9999acc9a99c095c0d77db9a1ddc9..5fcf2905aff268a2fd36ba9e3f6509268a2b44d5 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS        = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_NAND_SPL
 CFLAGS += -DCONFIG_NAND_SPL
 
@@ -49,11 +49,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl
 $(nandobj)u-boot-spl.bin:      $(nandobj)u-boot-spl
        $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
 
-$(nandobj)u-boot-spl:  $(OBJS)
+$(nandobj)u-boot-spl:  $(OBJS) $(nandobj)u-boot.lds
        cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
+$(nandobj)u-boot.lds: $(LDSCRIPT)
+       $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 # create symbolic links for common files
 
 # from cpu directory
index 84b14548eea28826fb4a19e51be4b324ae69f5a0..f77e459448717c9f1da06ceb99c1e20f597bb658 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS        = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_NAND_SPL
 CFLAGS += -DCONFIG_NAND_SPL
 
@@ -54,11 +54,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl
 $(nandobj)u-boot-spl.bin:      $(nandobj)u-boot-spl
        $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
 
-$(nandobj)u-boot-spl:  $(OBJS)
+$(nandobj)u-boot-spl:  $(OBJS) $(nandobj)u-boot.lds
        cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
+$(nandobj)u-boot.lds: $(LDSCRIPT)
+       $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 # create symbolic links for common files
 
 # from cpu directory
index 8a062fe4cd9d45b805b5973e2647c8c5e0da37b3..bc2174401987a5e035532882b8162bef2467dd16 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS        = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_NAND_SPL
 CFLAGS += -DCONFIG_NAND_SPL
 
@@ -49,11 +49,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl
 $(nandobj)u-boot-spl.bin:      $(nandobj)u-boot-spl
        $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
 
-$(nandobj)u-boot-spl:  $(OBJS)
+$(nandobj)u-boot-spl:  $(OBJS) $(nandobj)u-boot.lds
        cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
+$(nandobj)u-boot.lds: $(LDSCRIPT)
+       $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 # create symbolic links for common files
 
 # from cpu directory
index 462005f4b27bd9190482af21b18fe00c642fc114..54ea7c7e51ee6b2f2da7957191a34ef19645a0fd 100644 (file)
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS        = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_NAND_SPL
 CFLAGS += -DCONFIG_NAND_SPL
 
@@ -49,11 +49,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl
 $(nandobj)u-boot-spl.bin:      $(nandobj)u-boot-spl
        $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
 
-$(nandobj)u-boot-spl:  $(OBJS)
+$(nandobj)u-boot-spl:  $(OBJS) $(nandobj)u-boot.lds
        cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
+$(nandobj)u-boot.lds: $(LDSCRIPT)
+       $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 # create symbolic links for common files
 
 # from cpu directory
index 1a8f6ff2c798a5bee6ed5ad32929baf5442083e7..a13e7e2f1fbf760d7be7b467c1e29a44787febd9 100644 (file)
@@ -29,7 +29,7 @@ PAD_TO := 0xfff04000
 include $(TOPDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS        = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_NAND_SPL
 CFLAGS += -DCONFIG_NAND_SPL
 
@@ -54,11 +54,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl
 $(nandobj)u-boot-spl.bin:      $(nandobj)u-boot-spl
        $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
 
-$(nandobj)u-boot-spl:  $(OBJS)
+$(nandobj)u-boot-spl:  $(OBJS) $(nandobj)u-boot.lds
        cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
+$(nandobj)u-boot.lds: $(LDSCRIPT)
+       $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 # create symbolic links for common files
 
 $(obj)start.S:
index a9572ba6ad762f0b3b5d4296106493687d59958e..0e13d5de2607552b45d074386e30948adca826fb 100644 (file)
@@ -4,7 +4,7 @@ include $(TOPDIR)/config.mk
 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS        = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_PRELOADER -DCONFIG_NAND_SPL
 CFLAGS += -DCONFIG_PRELOADER -DCONFIG_NAND_SPL
 
@@ -30,11 +30,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl
 $(nandobj)u-boot-spl.bin:      $(nandobj)u-boot-spl
        $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
 
-$(nandobj)u-boot-spl:  $(OBJS)
+$(nandobj)u-boot-spl:  $(OBJS) $(nandobj)u-boot.lds
        cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
                -Map $(nandobj)u-boot-spl.map \
                -o $@
 
+$(nandobj)u-boot.lds: $(LDSCRIPT)
+       $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 #########################################################################
 
 $(obj)%.o:     $(SRCTREE)/cpu/arm1136/%.S
index ae9eb2a94d3ce0ecd6f08e41cbd2b51e059a9e18..0fdda25ac566480c17b826718bc7abfca3e7fe75 100644 (file)
@@ -30,7 +30,7 @@ include $(TOPDIR)/config.mk
 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS        = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_NAND_SPL
 CFLAGS += -DCONFIG_NAND_SPL
 
@@ -54,11 +54,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl
 $(nandobj)u-boot-spl.bin:      $(nandobj)u-boot-spl
        $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
 
-$(nandobj)u-boot-spl:  $(OBJS)
+$(nandobj)u-boot-spl:  $(OBJS) $(nandobj)u-boot.lds
        cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
+$(nandobj)u-boot.lds: $(LDSCRIPT)
+       $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 # create symbolic links for common files
 
 # from cpu directory
index 20199c7f73aa227214b02107fbd143a787772359..6920fe886b5a651a0e629c92f3cf78531672cb12 100644 (file)
@@ -29,7 +29,7 @@ TEXT_BASE := 0xfff00000
 include $(TOPDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS        = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_NAND_SPL
 CFLAGS += -DCONFIG_NAND_SPL
 
@@ -54,11 +54,14 @@ $(nandobj)u-boot-spl-16k.bin:       $(nandobj)u-boot-spl
 $(nandobj)u-boot-spl.bin:      $(nandobj)u-boot-spl
        $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
 
-$(nandobj)u-boot-spl:  $(OBJS)
+$(nandobj)u-boot-spl:  $(OBJS) $(nandobj)u-boot.lds
        cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
+$(nandobj)u-boot.lds: $(LDSCRIPT)
+       $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 # create symbolic links for common files
 
 $(obj)start.S:
index 49a8e9072fae93027382735ddaa75b6ee6b5fc37..193efffb56507a3e822c59ca646bc4887346ff76 100644 (file)
@@ -3,7 +3,7 @@ include $(TOPDIR)/config.mk
 include $(TOPDIR)/onenand_ipl/board/$(BOARDDIR)/config.mk
 
 LDSCRIPT= $(TOPDIR)/onenand_ipl/board/$(BOARDDIR)/u-boot.onenand.lds
-LDFLAGS        = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
+LDFLAGS        = -Bstatic -T $(onenandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
 AFLAGS += -DCONFIG_PRELOADER -DCONFIG_ONENAND_IPL
 CFLAGS += -DCONFIG_PRELOADER -DCONFIG_ONENAND_IPL
 OBJCFLAGS += --gap-fill=0x00
@@ -34,10 +34,13 @@ $(onenandobj)onenand-ipl-4k.bin:    $(onenandobj)onenand-ipl
 $(onenandobj)onenand-ipl.bin:  $(onenandobj)onenand-ipl
        $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
 
-$(onenandobj)onenand-ipl:      $(OBJS)
+$(onenandobj)onenand-ipl:      $(OBJS) $(onenandobj)u-boot.lds
        cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \
                -Map $@.map -o $@
 
+$(onenandobj)u-boot.lds:       $(LDSCRIPT)
+       $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+
 # create symbolic links from common files
 
 # from cpu directory