Commit 1aada9cd643567d351667138851e9231ccfa245a

Authored by Wolfgang Denk
1 parent f772acf8a5

Fix all linker scripts for older binutils versions (pre-2.16)

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>

Showing 14 changed files with 85 additions and 32 deletions Side-by-side Diff

... ... @@ -326,11 +326,13 @@
326 326 cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \
327 327 --start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
328 328 -Map u-boot.map -o u-boot
329   -$(obj)u-boot: depend $(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT)
  329 +$(obj)u-boot: depend $(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds
330 330 $(GEN_UBOOT)
331 331 ifeq ($(CONFIG_KALLSYMS),y)
332   - smap=`$(call SYSTEM_MAP,u-boot) | awk '$$2 ~ /[tTwW]/ {printf $$1 $$3 "\\\\000"}'` ; \
333   - $(CC) $(CFLAGS) -DSYSTEM_MAP="\"$${smap}\"" -c common/system_map.c -o $(obj)common/system_map.o
  332 + smap=`$(call SYSTEM_MAP,u-boot) | \
  333 + awk '$$2 ~ /[tTwW]/ {printf $$1 $$3 "\\\\000"}'` ; \
  334 + $(CC) $(CFLAGS) -DSYSTEM_MAP="\"$${smap}\"" \
  335 + -c common/system_map.c -o $(obj)common/system_map.o
334 336 $(GEN_UBOOT) $(obj)common/system_map.o
335 337 endif
336 338  
... ... @@ -349,6 +351,9 @@
349 351 $(LDSCRIPT): depend
350 352 $(MAKE) -C $(dir $@) $(notdir $@)
351 353  
  354 +$(obj)u-boot.lds: $(LDSCRIPT)
  355 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
  356 +
352 357 $(NAND_SPL): $(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk
353 358 $(MAKE) -C nand_spl/board/$(BOARDDIR) all
354 359  
355 360  
356 361  
... ... @@ -3653,10 +3658,12 @@
3653 3658 $(obj)board/trab/trab_fkt $(obj)board/voiceblue/eeprom \
3654 3659 $(obj)board/armltd/{integratorap,integratorcp}/u-boot.lds \
3655 3660 $(obj)lib_blackfin/u-boot.lds \
  3661 + $(obj)u-boot.lds \
3656 3662 $(obj)cpu/blackfin/bootrom-asm-offsets.[chs]
3657 3663 @rm -f $(obj)include/bmp_logo.h
3658   - @rm -f $(obj)nand_spl/{u-boot-spl,u-boot-spl.map,System.map}
  3664 + @rm -f $(obj)nand_spl/{u-boot.lds,u-boot-spl,u-boot-spl.map,System.map}
3659 3665 @rm -f $(obj)onenand_ipl/onenand-{ipl,ipl.bin,ipl-2k.bin,ipl-4k.bin,ipl.map}
  3666 + @rm -f $(obj)onenand_ipl/u-boot.lds
3660 3667 @rm -f $(TIMESTAMP_FILE) $(VERSION_FILE)
3661 3668 @find $(OBJTREE) -type f \
3662 3669 \( -name 'core' -o -name '*.bak' -o -name '*~' \
board/netstar/Makefile
... ... @@ -50,8 +50,8 @@
50 50 $(LIB): $(OBJS) $(SOBJS)
51 51 $(AR) $(ARFLAGS) $@ $^
52 52  
53   -$(obj)eeprom.srec: $(obj)eeprom.o $(obj)eeprom_start.o
54   - cd $(lnk) && $(LD) -T $(LDSCRIPT) -g -Ttext $(LOAD_ADDR) \
  53 +$(obj)eeprom.srec: $(obj)eeprom.o $(obj)eeprom_start.o $(obj)u-boot.lds
  54 + cd $(lnk) && $(LD) -T $(obj)u-boot.lds -g -Ttext $(LOAD_ADDR) \
55 55 -o $(<:.o=) -e eeprom eeprom.o eeprom_start.o \
56 56 -L$(obj)../../examples/standalone -lstubs \
57 57 -L$(obj)../../lib_generic -lgeneric \
58 58  
... ... @@ -78,10 +78,13 @@
78 78 $(obj)crc32.o: $(SRCTREE)/lib_generic/crc32.c
79 79 $(HOSTCC) $(HOSTCFLAGS) -DUSE_HOSTCC -o $@ -c $<
80 80  
  81 +$(obj)u-boot.lds: $(LDSCRIPT)
  82 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
  83 +
81 84 clean:
82 85 rm -f $(SOBJS) $(OBJS) $(obj)eeprom $(obj)eeprom.srec \
83 86 $(obj)eeprom.bin $(obj)crcek $(obj)crcek.srec \
84   - $(obj)crcek.bin
  87 + $(obj)crcek.bin $(obj)u-boot.lds
85 88  
86 89 distclean: clean
87 90 rm -f $(LIB) core *.bak $(obj).depend
board/voiceblue/Makefile
... ... @@ -44,8 +44,8 @@
44 44 $(LIB): $(OBJS) $(SOBJS)
45 45 $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
46 46  
47   -$(obj)eeprom.srec: $(obj)eeprom.o $(obj)eeprom_start.o
48   - cd $(lnk) && $(LD) -T $(LDSCRIPT) -g -Ttext $(LOAD_ADDR) \
  47 +$(obj)eeprom.srec: $(obj)eeprom.o $(obj)eeprom_start.o $(obj)u-boot.lds
  48 + cd $(lnk) && $(LD) -T $(obj)u-boot.lds -g -Ttext $(LOAD_ADDR) \
49 49 -o $(<:.o=) -e eeprom eeprom.o eeprom_start.o \
50 50 -L$(obj)../../examples/standalone -lstubs \
51 51 -L$(obj)../../lib_generic -lgeneric \
52 52  
... ... @@ -55,11 +55,14 @@
55 55 $(obj)eeprom.bin: $(obj)eeprom.srec
56 56 $(OBJCOPY) -I srec -O binary $< $@ 2>/dev/null
57 57  
  58 +$(obj)u-boot.lds: $(LDSCRIPT)
  59 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
  60 +
58 61 clean:
59 62 rm -f $(SOBJS) $(OBJS) $(obj)eeprom \
60 63 $(obj)eeprom.srec $(obj)eeprom.bin \
61   - $(obj)eeprom.o $(obj)eeprom_start.o
62   -
  64 + $(obj)eeprom.o $(obj)eeprom_start.o \
  65 + $(obj)u-boot.lds
63 66  
64 67 distclean: clean
65 68 rm -f $(LIB) core *.bak $(obj).depend
... ... @@ -166,10 +166,20 @@
166 166  
167 167 AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS)
168 168  
169   -LDFLAGS += -Bstatic -T $(LDSCRIPT) $(PLATFORM_LDFLAGS)
  169 +LDFLAGS += -Bstatic -T $(obj)u-boot.lds $(PLATFORM_LDFLAGS)
170 170 ifneq ($(TEXT_BASE),)
171 171 LDFLAGS += -Ttext $(TEXT_BASE)
172 172 endif
  173 +
  174 +# Special flags for CPP when processing the linker script
  175 +# Linker versions prior to 2.16 don't understand the builting
  176 +# functions SORT_BY_ALIGNMENT() and SORT_BY_NAME(), so disable these
  177 +ifeq ($(shell $(LD) -v | \
  178 + sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\) .*/[ \1 -lt 2 ] || [ \2 -lt 16 ] \&\& echo old_ld/p' | \
  179 + sh),old_ld)
  180 +LDPPFLAGS += -D'SORT_BY_ALIGNMENT(x)=x' -D'SORT_BY_NAME(x)=x'
  181 +endif
  182 +
173 183  
174 184 # Location of a usable BFD library, where we define "usable" as
175 185 # "built for ${HOST}, supports ${TARGET}". Sensible values are
nand_spl/board/amcc/acadia/Makefile
... ... @@ -25,7 +25,7 @@
25 25 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
26 26  
27 27 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
28   -LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
  28 +LDFLAGS = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
29 29 AFLAGS += -DCONFIG_NAND_SPL
30 30 CFLAGS += -DCONFIG_NAND_SPL
31 31  
... ... @@ -50,7 +50,7 @@
50 50 $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
51 51 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
52 52  
53   -$(nandobj)u-boot-spl: $(OBJS)
  53 +$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot.lds
54 54 cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
55 55 -Map $(nandobj)u-boot-spl.map \
56 56 -o $(nandobj)u-boot-spl
... ... @@ -59,6 +59,9 @@
59 59 @$(NM) $< | \
60 60 grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
61 61 sort > $(nandobj)System.map
  62 +
  63 +$(nandobj)u-boot.lds: $(LDSCRIPT)
  64 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
62 65  
63 66 # create symbolic links for common files
64 67  
nand_spl/board/amcc/bamboo/Makefile
... ... @@ -25,7 +25,7 @@
25 25 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
26 26  
27 27 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
28   -LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
  28 +LDFLAGS = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
29 29 AFLAGS += -DCONFIG_NAND_SPL
30 30 CFLAGS += -DCONFIG_NAND_SPL
31 31  
32 32  
... ... @@ -49,10 +49,13 @@
49 49 $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
50 50 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
51 51  
52   -$(nandobj)u-boot-spl: $(OBJS)
  52 +$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot.lds
53 53 cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
54 54 -Map $(nandobj)u-boot-spl.map \
55 55 -o $(nandobj)u-boot-spl
  56 +
  57 +$(nandobj)u-boot.lds: $(LDSCRIPT)
  58 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
56 59  
57 60 # create symbolic links for common files
58 61  
nand_spl/board/amcc/canyonlands/Makefile
... ... @@ -25,7 +25,7 @@
25 25 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
26 26  
27 27 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
28   -LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
  28 +LDFLAGS = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
29 29 AFLAGS += -DCONFIG_NAND_SPL
30 30 CFLAGS += -DCONFIG_NAND_SPL
31 31  
32 32  
... ... @@ -54,10 +54,13 @@
54 54 $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
55 55 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
56 56  
57   -$(nandobj)u-boot-spl: $(OBJS)
  57 +$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot.lds
58 58 cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
59 59 -Map $(nandobj)u-boot-spl.map \
60 60 -o $(nandobj)u-boot-spl
  61 +
  62 +$(nandobj)u-boot.lds: $(LDSCRIPT)
  63 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
61 64  
62 65 # create symbolic links for common files
63 66  
nand_spl/board/amcc/kilauea/Makefile
... ... @@ -25,7 +25,7 @@
25 25 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
26 26  
27 27 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
28   -LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
  28 +LDFLAGS = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
29 29 AFLAGS += -DCONFIG_NAND_SPL
30 30 CFLAGS += -DCONFIG_NAND_SPL
31 31  
32 32  
... ... @@ -49,10 +49,13 @@
49 49 $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
50 50 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
51 51  
52   -$(nandobj)u-boot-spl: $(OBJS)
  52 +$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot.lds
53 53 cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
54 54 -Map $(nandobj)u-boot-spl.map \
55 55 -o $(nandobj)u-boot-spl
  56 +
  57 +$(nandobj)u-boot.lds: $(LDSCRIPT)
  58 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
56 59  
57 60 # create symbolic links for common files
58 61  
nand_spl/board/amcc/sequoia/Makefile
... ... @@ -25,7 +25,7 @@
25 25 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
26 26  
27 27 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
28   -LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
  28 +LDFLAGS = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
29 29 AFLAGS += -DCONFIG_NAND_SPL
30 30 CFLAGS += -DCONFIG_NAND_SPL
31 31  
32 32  
... ... @@ -49,10 +49,13 @@
49 49 $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
50 50 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
51 51  
52   -$(nandobj)u-boot-spl: $(OBJS)
  52 +$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot.lds
53 53 cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
54 54 -Map $(nandobj)u-boot-spl.map \
55 55 -o $(nandobj)u-boot-spl
  56 +
  57 +$(nandobj)u-boot.lds: $(LDSCRIPT)
  58 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
56 59  
57 60 # create symbolic links for common files
58 61  
nand_spl/board/freescale/mpc8313erdb/Makefile
... ... @@ -29,7 +29,7 @@
29 29 include $(TOPDIR)/config.mk
30 30  
31 31 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
32   -LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
  32 +LDFLAGS = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
33 33 AFLAGS += -DCONFIG_NAND_SPL
34 34 CFLAGS += -DCONFIG_NAND_SPL
35 35  
36 36  
... ... @@ -54,10 +54,13 @@
54 54 $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
55 55 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
56 56  
57   -$(nandobj)u-boot-spl: $(OBJS)
  57 +$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot.lds
58 58 cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
59 59 -Map $(nandobj)u-boot-spl.map \
60 60 -o $(nandobj)u-boot-spl
  61 +
  62 +$(nandobj)u-boot.lds: $(LDSCRIPT)
  63 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
61 64  
62 65 # create symbolic links for common files
63 66  
nand_spl/board/freescale/mx31pdk/Makefile
... ... @@ -4,7 +4,7 @@
4 4 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
5 5  
6 6 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
7   -LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
  7 +LDFLAGS = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
8 8 AFLAGS += -DCONFIG_PRELOADER -DCONFIG_NAND_SPL
9 9 CFLAGS += -DCONFIG_PRELOADER -DCONFIG_NAND_SPL
10 10  
11 11  
... ... @@ -30,10 +30,13 @@
30 30 $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
31 31 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
32 32  
33   -$(nandobj)u-boot-spl: $(OBJS)
  33 +$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot.lds
34 34 cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
35 35 -Map $(nandobj)u-boot-spl.map \
36 36 -o $@
  37 +
  38 +$(nandobj)u-boot.lds: $(LDSCRIPT)
  39 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
37 40  
38 41 #########################################################################
39 42  
nand_spl/board/samsung/smdk6400/Makefile
... ... @@ -30,7 +30,7 @@
30 30 include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
31 31  
32 32 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
33   -LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
  33 +LDFLAGS = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
34 34 AFLAGS += -DCONFIG_NAND_SPL
35 35 CFLAGS += -DCONFIG_NAND_SPL
36 36  
37 37  
... ... @@ -54,10 +54,13 @@
54 54 $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
55 55 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
56 56  
57   -$(nandobj)u-boot-spl: $(OBJS)
  57 +$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot.lds
58 58 cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
59 59 -Map $(nandobj)u-boot-spl.map \
60 60 -o $(nandobj)u-boot-spl
  61 +
  62 +$(nandobj)u-boot.lds: $(LDSCRIPT)
  63 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
61 64  
62 65 # create symbolic links for common files
63 66  
nand_spl/board/sheldon/simpc8313/Makefile
... ... @@ -29,7 +29,7 @@
29 29 include $(TOPDIR)/config.mk
30 30  
31 31 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
32   -LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
  32 +LDFLAGS = -Bstatic -T $(nandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
33 33 AFLAGS += -DCONFIG_NAND_SPL
34 34 CFLAGS += -DCONFIG_NAND_SPL
35 35  
36 36  
... ... @@ -54,10 +54,13 @@
54 54 $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
55 55 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
56 56  
57   -$(nandobj)u-boot-spl: $(OBJS)
  57 +$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot.lds
58 58 cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) \
59 59 -Map $(nandobj)u-boot-spl.map \
60 60 -o $(nandobj)u-boot-spl
  61 +
  62 +$(nandobj)u-boot.lds: $(LDSCRIPT)
  63 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
61 64  
62 65 # create symbolic links for common files
63 66  
onenand_ipl/board/apollon/Makefile
... ... @@ -3,7 +3,7 @@
3 3 include $(TOPDIR)/onenand_ipl/board/$(BOARDDIR)/config.mk
4 4  
5 5 LDSCRIPT= $(TOPDIR)/onenand_ipl/board/$(BOARDDIR)/u-boot.onenand.lds
6   -LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
  6 +LDFLAGS = -Bstatic -T $(onenandobj)u-boot.lds -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
7 7 AFLAGS += -DCONFIG_PRELOADER -DCONFIG_ONENAND_IPL
8 8 CFLAGS += -DCONFIG_PRELOADER -DCONFIG_ONENAND_IPL
9 9 OBJCFLAGS += --gap-fill=0x00
10 10  
... ... @@ -34,9 +34,12 @@
34 34 $(onenandobj)onenand-ipl.bin: $(onenandobj)onenand-ipl
35 35 $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
36 36  
37   -$(onenandobj)onenand-ipl: $(OBJS)
  37 +$(onenandobj)onenand-ipl: $(OBJS) $(onenandobj)u-boot.lds
38 38 cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \
39 39 -Map $@.map -o $@
  40 +
  41 +$(onenandobj)u-boot.lds: $(LDSCRIPT)
  42 + $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
40 43  
41 44 # create symbolic links from common files
42 45