Refactor linker-generated arrays
authorAlbert ARIBAUD <albert.u.boot@aribaud.net>
Mon, 25 Feb 2013 00:59:00 +0000 (00:59 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Tue, 12 Mar 2013 22:28:40 +0000 (23:28 +0100)
Refactor linker-generated array code so that symbols
which were previously linker-generated are now compiler-
generated. This causes relocation records of type
R_ARM_ABS32 to become R_ARM_RELATIVE, which makes
code which uses LGA able to run before relocation as
well as after.

Note: this affects more than ARM targets, as linker-
lists span possibly all target architectures, notably
PowerPC.

Conflicts:
arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
board/ait/cam_enc_4xx/u-boot-spl.lds
board/davinci/da8xxevm/u-boot-spl-da850evm.lds
board/davinci/da8xxevm/u-boot-spl-hawk.lds
board/vpac270/u-boot-spl.lds

Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
177 files changed:
.gitignore
Makefile
arch/arm/cpu/arm920t/ep93xx/u-boot.lds
arch/arm/cpu/armv7/am33xx/u-boot-spl.lds
arch/arm/cpu/ixp/u-boot.lds
arch/arm/cpu/u-boot.lds
arch/avr32/cpu/u-boot.lds
arch/blackfin/cpu/u-boot.lds
arch/microblaze/cpu/u-boot.lds
arch/mips/cpu/u-boot.lds
arch/nds32/cpu/n1213/u-boot.lds
arch/nios2/cpu/u-boot.lds
arch/powerpc/cpu/74xx_7xx/u-boot.lds
arch/powerpc/cpu/mpc512x/u-boot.lds
arch/powerpc/cpu/mpc5xx/u-boot.lds
arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
arch/powerpc/cpu/mpc5xxx/u-boot.lds
arch/powerpc/cpu/mpc8220/u-boot.lds
arch/powerpc/cpu/mpc824x/u-boot.lds
arch/powerpc/cpu/mpc8260/u-boot.lds
arch/powerpc/cpu/mpc83xx/u-boot.lds
arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
arch/powerpc/cpu/mpc85xx/u-boot.lds
arch/powerpc/cpu/mpc86xx/u-boot.lds
arch/powerpc/cpu/ppc4xx/u-boot.lds
arch/sandbox/cpu/u-boot.lds
arch/sh/cpu/sh2/u-boot.lds
arch/sh/cpu/sh3/u-boot.lds
arch/sh/cpu/sh4/u-boot.lds
arch/x86/cpu/u-boot.lds
board/BuS/eb_cpu5282/u-boot.lds
board/LEOX/elpt860/u-boot.lds
board/RPXClassic/u-boot.lds
board/RPXClassic/u-boot.lds.debug
board/RPXlite/u-boot.lds
board/RPXlite/u-boot.lds.debug
board/RPXlite_dw/u-boot.lds
board/RPXlite_dw/u-boot.lds.debug
board/RRvision/u-boot.lds
board/actux1/u-boot.lds
board/actux2/u-boot.lds
board/actux3/u-boot.lds
board/adder/u-boot.lds
board/altera/nios2-generic/u-boot.lds
board/amcc/acadia/u-boot-nand.lds
board/amcc/bamboo/u-boot-nand.lds
board/amcc/canyonlands/u-boot-nand.lds
board/amcc/kilauea/u-boot-nand.lds
board/amcc/sequoia/u-boot-nand.lds
board/amcc/sequoia/u-boot-ram.lds
board/astro/mcf5373l/u-boot.lds
board/cobra5272/u-boot.lds
board/cogent/u-boot.lds
board/cogent/u-boot.lds.debug
board/cray/L1/u-boot.lds.debug
board/dave/PPChameleonEVB/u-boot.lds
board/dvlhost/u-boot.lds
board/eltec/mhpc/u-boot.lds
board/eltec/mhpc/u-boot.lds.debug
board/emk/top860/u-boot.lds
board/ep88x/u-boot.lds
board/esd/dasa_sim/u-boot.lds
board/esd/pmc440/u-boot-nand.lds
board/esd/tasreg/u-boot.lds
board/esteem192e/u-boot.lds
board/evb64260/u-boot.lds
board/fads/u-boot.lds
board/flagadm/u-boot.lds
board/flagadm/u-boot.lds.debug
board/freescale/m5208evbe/u-boot.lds
board/freescale/m52277evb/u-boot.lds
board/freescale/m5235evb/u-boot.lds
board/freescale/m5249evb/u-boot.lds
board/freescale/m5253demo/u-boot.lds
board/freescale/m5253evbe/u-boot.lds
board/freescale/m5271evb/u-boot.lds
board/freescale/m5272c3/u-boot.lds
board/freescale/m5275evb/u-boot.lds
board/freescale/m5282evb/u-boot.lds
board/freescale/m53017evb/u-boot.lds
board/freescale/m5329evb/u-boot.lds
board/freescale/m5373evb/u-boot.lds
board/freescale/m54418twr/u-boot.lds
board/freescale/m54451evb/u-boot.lds
board/freescale/m54455evb/u-boot.lds
board/freescale/m547xevb/u-boot.lds
board/freescale/m548xevb/u-boot.lds
board/freescale/mx31ads/u-boot.lds
board/gaisler/gr_cpci_ax2000/u-boot.lds
board/gaisler/gr_ep2s60/u-boot.lds
board/gaisler/gr_xc3s_1500/u-boot.lds
board/gaisler/grsim/u-boot.lds
board/gaisler/grsim_leon2/u-boot.lds
board/gen860t/u-boot-flashenv.lds
board/gen860t/u-boot.lds
board/genietv/u-boot.lds
board/genietv/u-boot.lds.debug
board/hermes/u-boot.lds
board/hermes/u-boot.lds.debug
board/hymod/u-boot.lds
board/hymod/u-boot.lds.debug
board/icu862/u-boot.lds
board/icu862/u-boot.lds.debug
board/idmr/u-boot.lds
board/ip860/u-boot.lds
board/ip860/u-boot.lds.debug
board/ivm/u-boot.lds
board/ivm/u-boot.lds.debug
board/korat/u-boot-F7FC.lds
board/kup/kup4k/u-boot.lds
board/kup/kup4k/u-boot.lds.debug
board/kup/kup4x/u-boot.lds
board/kup/kup4x/u-boot.lds.debug
board/lwmon/u-boot.lds
board/lwmon/u-boot.lds.debug
board/manroland/uc100/u-boot.lds
board/matrix_vision/mvsmr/u-boot.lds
board/mbx8xx/u-boot.lds
board/mbx8xx/u-boot.lds.debug
board/mousse/u-boot.lds
board/mpl/pip405/u-boot.lds.debug
board/mvblue/u-boot.lds
board/netphone/u-boot.lds
board/netphone/u-boot.lds.debug
board/netta/u-boot.lds
board/netta/u-boot.lds.debug
board/netta2/u-boot.lds
board/netta2/u-boot.lds.debug
board/netvia/u-boot.lds
board/netvia/u-boot.lds.debug
board/nx823/u-boot.lds
board/nx823/u-boot.lds.debug
board/openrisc/openrisc-generic/u-boot.lds
board/quantum/u-boot.lds
board/r360mpi/u-boot.lds
board/rbc823/u-boot.lds
board/renesas/sh7752evb/u-boot.lds
board/renesas/sh7757lcr/u-boot.lds
board/rsdproto/u-boot.lds
board/samsung/smdk5250/smdk5250-uboot-spl.lds
board/samsung/smdk6400/u-boot-nand.lds
board/sandburst/karef/u-boot.lds.debug
board/sandburst/metrobox/u-boot.lds.debug
board/sandpoint/u-boot.lds
board/sixnet/u-boot.lds
board/snmc/qs850/u-boot.lds
board/snmc/qs860t/u-boot.lds
board/spc1920/u-boot.lds
board/spd8xx/u-boot.lds
board/spd8xx/u-boot.lds.debug
board/stx/stxxtc/u-boot.lds
board/stx/stxxtc/u-boot.lds.debug
board/svm_sc8xx/u-boot.lds
board/tqc/tqm8xx/u-boot.lds
board/v37/u-boot.lds
board/w7o/u-boot.lds.debug
board/xes/xpedite1000/u-boot.lds.debug
common/cmd_help.c
config.mk
doc/README.commands
helper.mk [deleted file]
include/command.h
include/env_callback.h
include/linker_lists.h
nand_spl/board/freescale/mpc8536ds/Makefile
nand_spl/board/freescale/mpc8569mds/Makefile
nand_spl/board/freescale/mpc8572ds/Makefile
nand_spl/board/freescale/mx31pdk/Makefile
nand_spl/board/freescale/mx31pdk/u-boot.lds
nand_spl/board/freescale/p1010rdb/Makefile
nand_spl/board/freescale/p1023rds/Makefile
nand_spl/board/freescale/p1_p2_rdb/Makefile
nand_spl/board/karo/tx25/Makefile
nand_spl/board/karo/tx25/u-boot.lds
nand_spl/board/samsung/smdk6400/u-boot.lds
spl/.gitignore

index e40eb7b6690f9c37eb27c2454770516fa6d01a9c..be09894a0b67e7b6bd56486086a121c7d89f67fb 100644 (file)
@@ -44,7 +44,6 @@
 /u-boot.dtb
 /u-boot.sb
 /u-boot.geany
-/include/u-boot.lst
 
 #
 # Generated files
index 55bd55c8c097f882b4d083d87b616d1af35b38bb..6a4e364664f31e5c3a69a7d741c2f770b93856cc 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -556,10 +556,8 @@ GEN_UBOOT = \
                        $(PLATFORM_LIBS) -Wl,-Map -Wl,u-boot.map -o u-boot
 else
 GEN_UBOOT = \
-               UNDEF_LST=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
-               sed  -n -e 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p'|sort|uniq`;\
                cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
-                       $$UNDEF_LST $(__OBJS) \
+                       $(__OBJS) \
                        --start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
                        -Map u-boot.map -o u-boot
 endif
@@ -592,11 +590,7 @@ $(SUBDIR_EXAMPLES): $(obj)u-boot
 $(LDSCRIPT):   depend
                $(MAKE) -C $(dir $@) $(notdir $@)
 
-# The following line expands into whole rule which generates u-boot.lst,
-# the file containing u-boots LG-array linker section. This is included into
-# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
-$(eval $(call make_u_boot_list, $(obj)include/u-boot.lst, $(LIBBOARD) $(LIBS)))
-$(obj)u-boot.lds: $(LDSCRIPT) $(obj)include/u-boot.lst
+$(obj)u-boot.lds: $(LDSCRIPT)
                $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 nand_spl:      $(TIMESTAMP_FILE) $(VERSION_FILE) depend
@@ -832,7 +826,6 @@ clean:
               $(obj)board/matrix_vision/*/bootscript.img                 \
               $(obj)board/voiceblue/eeprom                               \
               $(obj)u-boot.lds                                           \
-              $(obj)include/u-boot.lst                                   \
               $(obj)arch/blackfin/cpu/bootrom-asm-offsets.[chs]          \
               $(obj)arch/blackfin/cpu/init.{lds,elf}
        @rm -f $(obj)include/bmp_logo.h
@@ -870,7 +863,7 @@ clobber:    tidy
        @rm -f $(obj)nand_spl/{u-boot.{lds,lst},System.map}
        @rm -f $(obj)nand_spl/{u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map}
        @rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.map}
-       @rm -f $(obj)spl/{u-boot-spl.lds,u-boot.lst}
+       @rm -f $(obj)spl/u-boot-spl.lds
        @rm -f $(obj)MLO MLO.byteswap
        @rm -f $(obj)SPL
        @rm -f $(obj)tools/xway-swap-bytes
index 008ae891cafd8e47b8dc44ad9fc4b0918f37cdb1..c19285d2108ebf93b1ddc212d31ac08ff30ac5dd 100644 (file)
@@ -51,7 +51,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN(4);
index 1c3deefa7daf034ee6ab3ccc1a63222c1f4d4e1f..69f6d48dab1b8ac831b5f35d52f99e1af95c2751 100644 (file)
@@ -49,7 +49,7 @@ SECTIONS
        .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
 
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        } >.sram
 
        . = ALIGN(4);
index bba91d5d2465a8a68cea365c4f106b0f1f54a843..5e66dd142ce36e01534cc57628bcd0857a6499bf 100644 (file)
@@ -49,7 +49,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN(4);
index e1bc8e7a417c5786fa2c793f9f66f94bbbbb1c82..d4ad3529b250b4056a6ebb45a2725bf0aad7e21a 100644 (file)
@@ -52,7 +52,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN(4);
index 0b16d2a883d9bc3e9303889962ee73bf8aaee018..4a3fc2a1c65d7cb6a58d77155708f187d3ee5b93 100644 (file)
@@ -50,7 +50,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN(4);
index 58db838fb02bbd950b2fed3ead12858e22477791..77f48c1a1276be7512107949d1f4dd671cd9db50 100644 (file)
@@ -114,7 +114,7 @@ SECTIONS
 
 
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        } >ram_data
 
        .text_l1 :
index fe3d97dad88218bcad7811cfc420dbb6ffe56067..1ae4184fb04a3d983c4abaa8a291d3f9e42c6007 100644 (file)
@@ -54,7 +54,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        .bss ALIGN(0x4):
index 10513abd2c5c46e35d0f4d32438f0c57f3d8bb86..ca18d463e9b2b754f57d719f13623a3c618f9307 100644 (file)
@@ -64,7 +64,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN(4);
index cef19c51ee5fa2d43837106d8f0908b25ed2f69a..57909481a968e03f2ed0acbef435eafe23352363 100644 (file)
@@ -55,7 +55,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN(4);
index d0eb80de0e9804d3c84de41c0bc9b496db6ab3aa..f937396233edadf16a5eec49170fbff15fdb6c77 100644 (file)
@@ -48,7 +48,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        /* INIT DATA sections - "Small" data (see the gcc -G option)
index ecee439579ee0c32084da892d8cb931968bf5039..c58d9797573222a0f10f98b73898a38cbe137be1 100644 (file)
@@ -65,7 +65,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 7faefba5558d2ce25f23a9c64dfd3e8ec0ff8a6d..a34501b6315c1576f8b0604482cf33f42629123c 100644 (file)
@@ -60,7 +60,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index c91e146d26281cc293e295e20dc3c33ea23b8087..0d87c8cf1e5088616d76a7aed53359622c6d9dfc 100644 (file)
@@ -68,7 +68,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index ac7844dcf46077ef13c3aa01a37e3ff2c4ab2f36..cdb36c088466480dd27429815c8b2bb33324ab61 100644 (file)
@@ -68,7 +68,7 @@ SECTIONS
   . = .;
 
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 1f46eadb5d09f7b3055b631846f09e8fb5266f28..6bd646b93ee128375df69bdea441cb81c2b3b6d3 100644 (file)
@@ -63,7 +63,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index c1479544f95946e5a591cbb5813c574f0cdf895d..6e9967cf879311f52e511e4463253df257cced94 100644 (file)
@@ -62,7 +62,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index a7130125c7c1d2ccf07c7c79cf62c266fb83352f..699fb85857bd56cdc2e1bf1076322883e0ac5341 100644 (file)
@@ -63,7 +63,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 42385fcc192324d584aea866627089b119b27ff6..2709f37667192b46f77154769c0c17430bcbdccd 100644 (file)
@@ -62,7 +62,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index d699def9ddf28eb53f4539648fe05d2fe98fdeaa..905823cb9a3153d207812fdb26de36ca2eae8ce6 100644 (file)
@@ -61,7 +61,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index f7c4a22d29b42a80497bc578781bb47969103eb7..3bb757231b4dd63ae2507e35b1837165fef9b532 100644 (file)
@@ -72,7 +72,7 @@ SECTIONS
   . = .;
 
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 46dbaed1e06918cb6b7668113a4968e355ae2e7a..87522b83d009b2ffb0083d78eb3be9a259b0f3a2 100644 (file)
@@ -54,7 +54,7 @@ SECTIONS
        _edata  =  .;
 
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN(8);
index 4a40a1f51bea936d189a1374909cd1dee7097abd..8c6e66ec1b5cb8932e457092a1ce3c1c4c4386d2 100644 (file)
@@ -80,7 +80,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 8bfadf28dc2c2a8224814fea092d4af222d28309..81804e357c8b7bb7d0df83ee358d5a9cab65e485 100644 (file)
@@ -67,7 +67,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index a96ddd5577b66a46d7c66d7dfdb52f07cc246a49..2cadcc94d5aa3e1adc7ed27c6e2f5bc32bcf25da 100644 (file)
@@ -81,7 +81,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 1b781ebf6ac17df8539f98e8a750d48a9ec5dde9..94c26f1aad0e8fc0a4f8180364b80e357fbd3d54 100644 (file)
@@ -27,7 +27,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        __u_boot_sandbox_option_start = .;
index 17f8091ea4ebfbc2c02e4b7ab2f7f10bcbff608f..9bf1d8562197001b106cda5c5f5486fba82576c9 100644 (file)
@@ -74,7 +74,7 @@ SECTIONS
 
 
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        PROVIDE (reloc_dst_end = .);
index c8319610c2fe20d21b1a27f4290cc40ef68ecd04..29352ad821ded3c43d13c4985689caa265f760a9 100644 (file)
@@ -80,7 +80,7 @@ SECTIONS
 
 
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        PROVIDE (reloc_dst_end = .);
index 0ecafcf5d94253ff74ab0846bcfee9618b9b85c8..cf3da0db1473fab69f7c2867dba323bb2d508fa8 100644 (file)
@@ -77,7 +77,7 @@ SECTIONS
 
 
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        PROVIDE (reloc_dst_end = .);
index 54f2fb76f7bb2398f3587e4b9865d8d36b9012d4..ef5aa951c9517d5d4c194af08551380df94f86dd 100644 (file)
@@ -36,7 +36,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN(4);
index 0c92d31f616415efa03377446929559a92acb8bf..43bd9b74ac90cda054452ca55ce7686afa96cc69 100644 (file)
@@ -68,7 +68,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 2bb876d689e0e7372324632c9d714a9b32fd9e53..3ff38713f01f6fb2ed8ad062965bf65d7087a3a5 100644 (file)
@@ -89,7 +89,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 18f962cfa5801fd2f9cee4a7220afa0a71609e96..c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index dc8c4e958f1c7c58250914c6b822a92db922f087..e88bd977d9ec82245c03fcd978952b8ccf2a0a35 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 18f962cfa5801fd2f9cee4a7220afa0a71609e96..c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index dc8c4e958f1c7c58250914c6b822a92db922f087..e88bd977d9ec82245c03fcd978952b8ccf2a0a35 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 18f962cfa5801fd2f9cee4a7220afa0a71609e96..c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index b43a1e4281fffb7e438167283addf21e0d1a0fa8..88c410cd9285b3c2c3c3119606911b07b2af2657 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 748e5113ef61859566fdada7f573490bbaaf8bd5..f9d2ec2aa9883eae5f6136476d192630c0c4c710 100644 (file)
@@ -74,7 +74,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 572bcea5d01eaa1feb60f779c0bae2b27c0ff9f9..7cf5b46b885870858e455d866ed4d91952eadb70 100644 (file)
@@ -57,7 +57,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN (4);
index 6272a10d1cb40557d06a1a896e219e994863a49b..e9b5547b7afe65ee0d5f09bcfe44f05abe2ffe2e 100644 (file)
@@ -57,7 +57,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN (4);
index 488e1e7e5b5def83f7cdfc75c4842995ac8ddb49..b79ea3ce2fdd13bc66067c076276594eba78beb1 100644 (file)
@@ -57,7 +57,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN (4);
index 73e2f3f9cfdc417fb23e3f70f0b1d36e21191aec..5e0ed002ec99f06ae91c9d1cf8043aed62064ab5 100644 (file)
@@ -65,7 +65,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 289386b35c837c7452b5bf022ea8861b62b67507..900fe65dc288525dd28af9f5d28dc4d16c6b91f6 100644 (file)
@@ -49,7 +49,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        /* INIT DATA sections - "Small" data (see the gcc -G option)
index beba978f8385d790933e694aab3da65ed6204395..3861b67a01aca9fbba66eb79e173cb927350b21b 100644 (file)
@@ -74,7 +74,7 @@ SECTIONS
   . = .;
 
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 2dd00d7f420102f9be41038fd913b229671fa481..6308d49c1dcea2cf300980963119aa2bc401d00c 100644 (file)
@@ -75,7 +75,7 @@ SECTIONS
   . = .;
 
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 8ac5116296020be60075de4bff84b8ced9eb3b98..5fc906277b98cc136288b1364407f0ddb512a5a6 100644 (file)
@@ -75,7 +75,7 @@ SECTIONS
   . = .;
 
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index beba978f8385d790933e694aab3da65ed6204395..3861b67a01aca9fbba66eb79e173cb927350b21b 100644 (file)
@@ -74,7 +74,7 @@ SECTIONS
   . = .;
 
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 18266efd094f4b93181a61e75f78b887da9f8987..b4600de69532e2feea50e95e7bbdb2047260ba23 100644 (file)
@@ -75,7 +75,7 @@ SECTIONS
   . = .;
 
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 6b02784926f741b6fea77b24a9816038762664d3..521d12a56f80b4ec2f5f2793d1ec2d6a8e3c1800 100644 (file)
@@ -66,7 +66,7 @@ SECTIONS
   . = .;
 
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index bc40fd649d67cc4097f7458a513786b17242d942..5ee8fcc50bf216d70cd303daa039b27ec2be2fd5 100644 (file)
@@ -72,7 +72,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index d054f20bce087b4476d98e8f345ed8d966313949..7421eeca67cd02b2f199404be116f1829d1bc045 100644 (file)
@@ -71,7 +71,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 2a6027f814d83ab4707c1043d888b6c5062fe9ab..357f59da7ed53806d8890ed88c1f6bf08a8e9cc3 100644 (file)
@@ -73,7 +73,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index dc8c4e958f1c7c58250914c6b822a92db922f087..e88bd977d9ec82245c03fcd978952b8ccf2a0a35 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index d7a2e560084621905bf1b76952243e654321a863..99cbed4b4714c285cd5251898729e40bf3fdf03d 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 8a306d6076f0ef6ec4ce49004adc3c018c0d5489..987b52d25cc872e46e920612d152c563d2635d95 100644 (file)
@@ -77,7 +77,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 6dc26c872750dbd9d390065b4b942a71ff65e7e0..eb83b6f2ce3a90a281126f9644bf3693d451789d 100644 (file)
@@ -57,7 +57,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN (4);
index c8d38942c96d46216896859e59b2f6a408d1b34a..bd74d746a367f11dcb50339d9d4d57f83ea41e77 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 92796e674448973b8237e56f5f07380f6d5d49e7..614bbb20b63e5ee056bcd85ea4764ffa54b92969 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 22626d392ae2bf5d7d5bf72f949bcd55d006b2bd..ea04eca3aac8730942421f9333162fa1850a7b74 100644 (file)
@@ -70,7 +70,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 1dcc22a1918ab44593980990914b60d7a5618204..e5fa63edd6669e9479a5597761bed739ba7a61b3 100644 (file)
@@ -65,7 +65,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 7eca18390b11a32aadab8e42ce592158f2333d13..cca527f26a89a44bd3a5a298bbbb9bdaccb47574 100644 (file)
@@ -76,7 +76,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index ca7df4592ea4d14075ada0d9e2a71a365474366c..4469b80dc952842b7af5cacde73881ddf5ad3eed 100644 (file)
@@ -104,7 +104,7 @@ SECTIONS
   . = .;
 
   .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 0d6a0f3a3b27ff5c25f155be98e360e2b7522089..7642bba7eef1d3acd2a068a2381f6c8d7b9f137b 100644 (file)
@@ -68,7 +68,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index fe5cf095fcb3081d925f61a38a8779f5ada5e54e..357a794e6960c154e7ac202afc054e5decc11dd3 100644 (file)
@@ -77,7 +77,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index eac9c070e3ab42e449f1dc64c27b7df0143b14d9..e2cfcfefec07b4d233dd5d77d0f6e1f30d8a15dd 100644 (file)
@@ -73,7 +73,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 6022dbce72227772b5c6cbd8bc0ae2cb6811b0f4..450103d377b460fa999cee8a662d0af5c37906fa 100644 (file)
@@ -71,7 +71,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index c8d38942c96d46216896859e59b2f6a408d1b34a..bd74d746a367f11dcb50339d9d4d57f83ea41e77 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 92796e674448973b8237e56f5f07380f6d5d49e7..614bbb20b63e5ee056bcd85ea4764ffa54b92969 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 2c151f20f57ced21ffc1e1140f995ed357dada3f..f3c9ed8c6138f644ea3de0fe15a8a89c0ff64f98 100644 (file)
@@ -72,7 +72,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index dbd6f6ab201981987deaaa8e55fe172ed6832f3d..ae0a48dfbbad8f9bc39090c23a37db0576018e57 100644 (file)
@@ -71,7 +71,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 00932ae68de2bdb276fffc052b6cbfa416bc1745..603858bc0cabd8086649004f6983eec5f25d9272 100644 (file)
@@ -71,7 +71,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index d054f20bce087b4476d98e8f345ed8d966313949..7421eeca67cd02b2f199404be116f1829d1bc045 100644 (file)
@@ -71,7 +71,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index f8116f601ee24ca8711f95fad1a0c817bf84a3c9..6838247a8b31d8c540877f816041a589cc2506f5 100644 (file)
@@ -72,7 +72,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index d054f20bce087b4476d98e8f345ed8d966313949..7421eeca67cd02b2f199404be116f1829d1bc045 100644 (file)
@@ -71,7 +71,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 133ec01036b8a04d7be97551078aa6d2f3c6e801..e222e80f82bf61816cafe417021fc8a6315023fe 100644 (file)
@@ -71,7 +71,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index d054f20bce087b4476d98e8f345ed8d966313949..7421eeca67cd02b2f199404be116f1829d1bc045 100644 (file)
@@ -71,7 +71,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index fc68de1ba15c3ba06c74b2956449d009096994c7..c18758a911449fe9927d130f07fed8951d8ae26c 100644 (file)
@@ -71,7 +71,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index ad49874c5abdec0087478da98cce00c1c65620d5..20f6c47bed9e5a4d20ac9dc4343b46eb51fced28 100644 (file)
@@ -71,7 +71,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index d25a36f6518763a4db6b9d09f9df235380ef2c12..15dfa7dd7cf7f06d0b8f21736438cda3001c5801 100644 (file)
@@ -74,7 +74,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 6616594e7b0385642bb2fc2db6bb54c5549e1616..5013ff4a69665c2024bc7c1ab40c912368c6f64f 100644 (file)
@@ -72,7 +72,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index bc40fd649d67cc4097f7458a513786b17242d942..5ee8fcc50bf216d70cd303daa039b27ec2be2fd5 100644 (file)
@@ -72,7 +72,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 36a4c264b9255f54793b36a2e11b95141aa58f15..2df386bcb0662ef32446d3132f190e7e373e860f 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 91328a4af66faca84e711392469fbb2ed331a1a9..4440d611b75273ac5e9434b777f5f3e9f264006c 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 36a4c264b9255f54793b36a2e11b95141aa58f15..2df386bcb0662ef32446d3132f190e7e373e860f 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index de4d0eb9077646eccf8a00157c11ed9aac1bf391..269bf8a9e563506994d8a23db0df4bfbef8e58a7 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index fbbe0c5dc5ad928bf6e30748a68ea2c0fa9cafe4..68bdad4a46cc5cd52f214fae64b17e845a112534 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 12d7c1256f4f2bef532ac99c95344c01e655d18a..2d08fea52245e0b81bf1d50db1ab247506ef29e6 100644 (file)
@@ -60,7 +60,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = ALIGN(4);
index 774c494f03547220dc9f956a2426ee011bb13109..dac87db6207487052fbba16fa4bae0362940bc24 100644 (file)
@@ -88,7 +88,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        .data   :
index f6d13014f311b407ad4a9185e07c0c4535993ce7..78e0e2df6c4cc342b6772506bbebe726f55ad47d 100644 (file)
@@ -88,7 +88,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        .data   :
index 7df6e833926f59f99a31dfd7c4ac9a1e7e7d486f..87ea473b0a9b42158748fc0a3f1c311a23fa563a 100644 (file)
@@ -88,7 +88,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        .data   :
index b241cbc1d044fbef9628dd279b994a23e76d9a8e..e854a169a86ec07abaaf3f9c4386e9ab845e4900 100644 (file)
@@ -87,7 +87,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        .data   :
index 63c15b9117a40d3b4329fff5e6a9ef9e00be5456..f247e56b0a2f25721f155e51bbdcf032918c910c 100644 (file)
@@ -87,7 +87,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        .data   :
index 1cbe7e32bad40a178bbd1bceadd817c5ad6210d7..b06144196f473a4a3ed90095a2baa9a54c6613be 100644 (file)
@@ -73,7 +73,7 @@ SECTIONS
   . = .;
 
   .u_boot_list : {
-               #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index dd89c70f56fe028d2a99940dac7d11ff724755a9..9e9449d1a13223b4332e0801bf83ed1b41fbf71a 100644 (file)
@@ -74,7 +74,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 124b1835164e98f8d07d0700c1130758e71f9561..958dd8482e2c9a0dc2d963bf92c52b90e72985e6 100644 (file)
@@ -83,7 +83,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index e1cf2496506f0ef8ce3aa72b0998a269d07e7a53..a3aeb604cc36af720aa8936c764d7c6f4e25fe9d 100644 (file)
@@ -110,7 +110,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index f02eb1c2aa1fc1ff7b42622e01d8be4d7a60bd8a..b2bb50d596e2def00295382b4f092096203afcc2 100644 (file)
@@ -75,7 +75,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index e84cc7991e7b45247d58102e26d37c5b1178e253..4383c492c3bf5b31577292ec80199e6973f7778d 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 7afae0a6257e6131f04519ac79b51d5f7ee4be85..3133c55a08692a14220e9ec805a368b2791f6475 100644 (file)
@@ -113,7 +113,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index dc8c4e958f1c7c58250914c6b822a92db922f087..e88bd977d9ec82245c03fcd978952b8ccf2a0a35 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 6778eb13add674fcd6fa4091f466ae5e776ec704..40f4a38f55c47e0f652cad9c84ae570d18b58ce9 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 3e075a85bd14f27342f838ceeb0a8aebb2288b44..99952885173d1908f43100f26d0de924fb736320 100644 (file)
@@ -110,7 +110,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 0d6a0f3a3b27ff5c25f155be98e360e2b7522089..6d138313e2811e27196b2b61da1f5dfff01bd5f6 100644 (file)
@@ -68,7 +68,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 18f962cfa5801fd2f9cee4a7220afa0a71609e96..c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index e47aff0fa795f38cfa8ceab5c70e2b2bfe94fbec..0b3417753161e8a15cdc05ff26cacd89435965fc 100644 (file)
@@ -110,7 +110,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 4cca65274810f2ce42ab44d2a3e0e52d97213b95..dcd53ec9af06117a117828c7dfd5bb37307d8a66 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 53a19b2947316c3c01057fced4c61e0d5c5d9373..bae9fb28ee1aa9ddfa25b7683e3955da6252ea54 100644 (file)
@@ -110,7 +110,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 033cff42d9b6797445eea0d8809ee7b7196f84ab..b6fa79f0a213d22db43c0ba43776cab3fb12d6fc 100644 (file)
@@ -110,7 +110,7 @@ SECTIONS
   . = .;
 
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 18f962cfa5801fd2f9cee4a7220afa0a71609e96..c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index b43a1e4281fffb7e438167283addf21e0d1a0fa8..88c410cd9285b3c2c3c3119606911b07b2af2657 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 18f962cfa5801fd2f9cee4a7220afa0a71609e96..c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index b43a1e4281fffb7e438167283addf21e0d1a0fa8..88c410cd9285b3c2c3c3119606911b07b2af2657 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index bc71b0d2c1f4721dbae607e36b777ad3fd5ac997..30523dca469e22f67e6a2ffcd607516e67b053e3 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 0a3e6466a9c4f01d46f344b4f8ee20ea6a2ff799..1d1b76ad7c0dd62de3e24a8085454a477413a79c 100644 (file)
@@ -110,7 +110,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index e32ae37ea492fbc31c41b6b177a19b971fb4c6cc..8c75dea0fd074b81eb331576ad487e3a3d554440 100644 (file)
@@ -72,7 +72,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 5a3a9eabbfd29daf1e4b0a961f60b17fb9e377cf..57077701cab72aa4186be72a88980125d92108db 100644 (file)
@@ -77,7 +77,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 18f962cfa5801fd2f9cee4a7220afa0a71609e96..c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 4155b604fb84b9d4df0eca28e05cc95d7ae1a581..063f2cc92fa7983699354ace4cd32870129d6b07 100644 (file)
@@ -110,7 +110,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 43f91f1a3cc10bb78a153198c1c1a093b102a754..080829b4360607f7a8777a60026ce4db165b5678 100644 (file)
@@ -63,7 +63,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index d7a2e560084621905bf1b76952243e654321a863..99cbed4b4714c285cd5251898729e40bf3fdf03d 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index c378564f6da16fed847e0b62fc0820c23597901a..e186ee6657ff89ecbd9cafc621bd547a9adb92d4 100644 (file)
@@ -73,7 +73,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index cdc1fdac2c47d22ca3d200967c056b6df13f3173..ddb5a72b2ba8a77c5eede85e4313b5e41c707a9f 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 900da64859525681ad4cb572432ca4ed019bac7f..e1fe052c37464561897979e22d1514cd6f08f14e 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index cdc1fdac2c47d22ca3d200967c056b6df13f3173..ddb5a72b2ba8a77c5eede85e4313b5e41c707a9f 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 900da64859525681ad4cb572432ca4ed019bac7f..e1fe052c37464561897979e22d1514cd6f08f14e 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index cdc1fdac2c47d22ca3d200967c056b6df13f3173..ddb5a72b2ba8a77c5eede85e4313b5e41c707a9f 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 900da64859525681ad4cb572432ca4ed019bac7f..e1fe052c37464561897979e22d1514cd6f08f14e 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index cdc1fdac2c47d22ca3d200967c056b6df13f3173..ddb5a72b2ba8a77c5eede85e4313b5e41c707a9f 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 6cbf4dc66e3e03e54a2462d6cbce11940c57efa3..3243fc0f36cc1c460b0865c2fad9f53bc74b188b 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index c8d38942c96d46216896859e59b2f6a408d1b34a..bd74d746a367f11dcb50339d9d4d57f83ea41e77 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 92796e674448973b8237e56f5f07380f6d5d49e7..614bbb20b63e5ee056bcd85ea4764ffa54b92969 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 4cffacbd46ab953a0dbdc2d82ca3b2e164d132af..9024f30b30f605fa14abfae72ba630cadd371e28 100644 (file)
@@ -29,7 +29,7 @@ SECTIONS
 
         . = ALIGN(4);
         .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
         }
 
        .rodata : {
index 18f962cfa5801fd2f9cee4a7220afa0a71609e96..c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 3ef0d9e0b7ae24e12d9aa7b101d527445fb45dab..9262aa55fb05da272d7bf2f953e80b531b13f72f 100644 (file)
@@ -71,7 +71,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index a86b568f6eb3c71f93a852b2c7cce15782e5d9c5..c6560c60da4145e080466b3df0d6214d4a1803b8 100644 (file)
@@ -80,7 +80,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
   . = .;
index 28449b677ae20bb9cb0fc5abf4dc9601da121ae1..5bbb63f853c921a3b424e9d0598139ef69c8a018 100644 (file)
@@ -78,7 +78,7 @@ SECTIONS
        PROVIDE (_egot = .);
 
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        PROVIDE (reloc_dst_end = .);
index cf406ce966f66b099a3ea71805bb4d7d107d519c..0717d041ca8e576222c4a64ef5cacdb906dbfae7 100644 (file)
@@ -79,7 +79,7 @@ SECTIONS
 
 
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        PROVIDE (reloc_dst_end = .);
index ff950294f3fa8a36d6cb7b094f2670344f1eb38b..46625462b45f632f0b2ee195cb4bd3aeb7636169 100644 (file)
@@ -100,7 +100,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 951d8cec1d84eb4c9d0eb2eb2134f64b1fdc7f41..4ef6a5197665eb28c888c185263c066911d19dce 100644 (file)
@@ -49,7 +49,7 @@ SECTIONS
        . = ALIGN(4);
 
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        } >.sram
        . = ALIGN(4);
 
index fbb442a02baea1f8c51e73c35c504809f5ebb792..ae32b1625e2dcb1dbf6fe6f204f22ff3b8dde2e5 100644 (file)
@@ -50,7 +50,7 @@ SECTIONS
 
        . = align(4);
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
 
        . = align(4);
index 7a0757f1462f5d7e05c6a4226904de61d323159a..6b99f135ada4107439b33495e7d1c9c65bdeb34c 100644 (file)
@@ -118,7 +118,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 07bd6fe19fb6fbf372fb6dbdf4dfa32081894df3..0b4192e8675576f74ba868820b8e56e6b4e214fe 100644 (file)
@@ -118,7 +118,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index ae3afa113064261b7ebd26857d6b087bb3bdb02f..ca13619659dd0b0c85b643b9668db4d83fb63006 100644 (file)
@@ -71,7 +71,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 6cf7a017386d24e3c28d8ef84998e76941943be8..fa4de9d9c5c7c82850a3c843bbd6ab5e8907eda4 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index f57f8a0258dd11b0f395f24f623638717fd41fd6..5929335bf527df0b5396198253e9a4a8bcb57cc7 100644 (file)
@@ -72,7 +72,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 18f962cfa5801fd2f9cee4a7220afa0a71609e96..c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 18f962cfa5801fd2f9cee4a7220afa0a71609e96..c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index f69e39d583d8661463e2957e639f884c27d04a34..b2ad3434fdc028a0e8a624ca1fad80619e5646aa 100644 (file)
@@ -78,7 +78,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 4155b604fb84b9d4df0eca28e05cc95d7ae1a581..063f2cc92fa7983699354ace4cd32870129d6b07 100644 (file)
@@ -110,7 +110,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index cdc1fdac2c47d22ca3d200967c056b6df13f3173..ddb5a72b2ba8a77c5eede85e4313b5e41c707a9f 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 900da64859525681ad4cb572432ca4ed019bac7f..e1fe052c37464561897979e22d1514cd6f08f14e 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 163587512bafef14105a5998bfe25f21b4c45ba8..ebfa890211ba550a9d3d46872e28be611b982524 100644 (file)
@@ -86,7 +86,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index e1e1ccd48275086bb8e83e34b8fe6441e1590abf..bab452cc69f933da80959f358dbc6691076638df 100644 (file)
@@ -82,7 +82,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index fd2d72e8ae01dc2447edacf74775e73c9972108a..9504fcd9f4b0f452c2019a33eead5bebc1f8e46e 100644 (file)
@@ -69,7 +69,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index 2ce5a9a71c9b458ad941cf0fc1be9b8e2d9e2111..18b77520542cf4c72c4bef53ef0de833f1650007 100644 (file)
@@ -109,7 +109,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index c4e5706543bf2fc749377c83b7017972896db880..c02581d9820f011b0fcedb5008328255a11f65c9 100644 (file)
@@ -114,7 +114,7 @@ SECTIONS
 
   . = ALIGN(4);
   .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
   }
 
 
index f832a96971ea57b50b17052bc2d4e7f852cb5b0f..d9bdc4d17b4d6cf3adb177751c78f503514c0fa1 100644 (file)
@@ -41,7 +41,7 @@ U_BOOT_CMD(
 );
 
 /* This does not use the U_BOOT_CMD macro as ? can't be used in symbol names */
-ll_entry_declare(cmd_tbl_t, question_mark, cmd, cmd) = {
+ll_entry_declare(cmd_tbl_t, question_mark, cmd) = {
        "?",    CONFIG_SYS_MAXARGS,     1,      do_help,
        "alias for 'help'",
 #ifdef  CONFIG_SYS_LONGHELP
index b7cd4814fe74e87633dc15d9c1c8f388c5b8da78..bb5c69a15d9f67376ca58534b189707dc714db72 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -23,8 +23,6 @@
 
 #########################################################################
 
-include $(TOPDIR)/helper.mk
-
 ifeq ($(CURDIR),$(SRCTREE))
 dir :=
 else
index 923418b1a455a4dc610c4efd4c5f59b5d5da6263..9eb367104fd9a1bc77ede04bc11c1ead51b602b9 100644 (file)
@@ -15,24 +15,22 @@ help:        Long description. This is a string
 
 **** Behind the scene ******
 
-The structure created is named with a special prefix (__u_boot_list_cmd_)
-and placed by the linker in a special section.
+The structure created is named with a special prefix and placed by
+the linker in a special section using the linker lists mechanism
+(see include/linker_lists.h)
 
 This makes it possible for the final link to extract all commands
 compiled into any object code and construct a static array so the
-command can be found in an array starting at _u_boot_list_cmd__start.
+command array can be iterated over using the linker lists macros.
 
-To ensure that the linker does not discard these symbols when linking
-full U-Boot we generate a list of all the commands we have built (based
-on the sections mentioned above) and use that to force the linker to
-first enter the symbol as undefined in the output object so that there
-is then a need for the symbol to be kept (this is the UNDEF_SYM logic in
-the Makefile).
+The linker lists feature ensures that the linker does not discard
+these symbols when linking full U-Boot even though they are not
+referenced in the source code as such.
 
 If a new board is defined do not forget to define the command section
 by writing in u-boot.lds ($(TOPDIR)/board/boardname/u-boot.lds) these
 3 lines:
 
        .u_boot_list : {
-       #include "u-boot.lst";
+               KEEP(*(SORT(.u_boot_list*)));
        }
diff --git a/helper.mk b/helper.mk
deleted file mode 100644 (file)
index 79a1da0..0000000
--- a/helper.mk
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# Copyright (C) 2012 Marek Vasut <marex@denx.de>
-#
-# See file CREDITS for list of people who contributed to this
-# project.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-#########################################################################
-
-##
-# make_u_boot_list - Generate contents of u_boot_list section
-# 1:           The name of the resulting file (usually u-boot.lst)
-# 2:           Files to analyze for possible u_boot_list entries
-#
-# This function generates the contents of the u_boot_list section,
-# including all the border symbols for it's subsections. The operation
-# of this function is as follows, numbering goes per lines:
-#
-# 1) Dump the ELF header sections from all files supplied via $(2)
-# 2) Filter out all other stuff that does not belong into .u_boot_list
-#    section.
-# 3) Fix up the lines so that the resulting output is is in format
-#    ".u_boot_list.*".
-# 4) Remove the last .something$, since that only contains the name
-#    of the variable to be put into a subsection. This name is irelevant
-#    for generation of border symbols, thus of no interest, remove it.
-# 5) Take each line and for every dot "." in that line, print the whole
-#    line until that dot "." . This is important so that we have all
-#    parent border symbols generated as well.
-# 6) Load every line and firstly append "\a" at the end and print the
-#    line. Next, append "@" at the end and print the line. Finally,
-#    append "~" at the end of line. This will make sense in conjunction
-#    with 6) and 7).
-# 7) Sort the lines. It is imperative to use LC_COLLATE=C here because
-#    with this, the "\a" symbol is first and "~" symbol is last. Any
-#    other symbols fall inbetween. Symbols like "@", which marks the
-#    end of current line (representing current section) and ".", which
-#    means the line continues and thus represents subsection.
-# 8) With such ordering, all lines ending with "\a" will float at the
-#    begining of all lines with the same prefix. Thus it is easy to
-#    replace "\a" with __start and make it the __start border symbol.
-#    Very similarly for "~", which will be always at the bottom and so
-#    can be replaced by "__end" and made into the __end border symbol.
-#    Finally, every line ending with "@" symbol will be transformed
-#    into " *(SORT(${line}*)); " format, which in the linker parlance
-#    will allow it to trap all symbols relevant to the subsection.
-#
-define make_u_boot_list
-$(1): $(2)
-       $(OBJDUMP) -h $(2) | \
-       sed -n -e '/.*\.u_boot_list[^ ]\+/ ! {d;n}' \
-               -e 's/.*\(\.u_boot_list[^ ]\+\).*$$$$/\1/' \
-               -e 's/\.[^\.]\+$$$$//' \
-               -e ':s /^.\+$$$$/ { p;s/^\(.*\)\.[^\.]*$$$$/\1/;b s }' | \
-       sed -n -e 'h;s/$$$$/\a/p;g;s/$$$$/@/p;g;s/$$$$/~/p;' | \
-       LC_COLLATE=C sort -u | \
-       sed -n -e '/\a$$$$/ { s/\./_/g;s/\a$$$$/__start = .;/p; }'\
-               -e '/~$$$$/ { s/\./_/g;s/~$$$$/__end = .;/p; }'\
-               -e '/@$$$$/ { s/\(.*\)@$$$$/*(SORT(\1.*));/p }' > $(1)
-endef
index 3785eb987f4863352d7de87fa3853725ad819b4d..65692fd2a69f59b911fc64301e82b3bd21b95b93 100644 (file)
@@ -175,7 +175,7 @@ int cmd_process(int flag, int argc, char * const argv[],
                                        _usage, _help, NULL)
 
 #define U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, _comp) \
-       ll_entry_declare(cmd_tbl_t, _name, cmd, cmd) =                  \
+       ll_entry_declare(cmd_tbl_t, _name, cmd) =                       \
                U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd,  \
                                                _usage, _help, _comp);
 
index 62428d1e0c22534d147c5800389bfb05a47d1246..e89b6dadc9421f9bf9dc8435795f99d588283a1f 100644 (file)
@@ -83,7 +83,7 @@ void env_callback_init(ENTRY *var_entry);
        }
 #else
 #define U_BOOT_ENV_CALLBACK(name, callback) \
-       ll_entry_declare(struct env_clbk_tbl, name, env_clbk, env_clbk) = \
+       ll_entry_declare(struct env_clbk_tbl, name, env_clbk) = \
        {#name, callback}
 #endif
 
index 0b405d78ea34df1c528fbc4e24ed2aad756ac4a2..6c28bf961b0b96dc5d067a84d5c315dc0ef4bef0 100644 (file)
  * published by the Free Software Foundation; either version 2 of
  * the License, or (at your option) any later version.
  */
+
+/*
+ * There is no use in including this from ASM files, but that happens
+ * anyway, e.g. PPC kgdb.S includes command.h which incluse us.
+ * So just don't define anything when included from ASM.
+ */
+
+#if !defined(__ASSEMBLY__)
+
+/**
+ * A linker list is constructed by grouping together linker input
+ * sections, each containning one entry of the list. Each input section
+ * contains a constant initialized variable which holds the entry's
+ * content. Linker list input sections are constructed from the list
+ * and entry names, plus a prefix which allows grouping all lists
+ * together. Assuming _list and _entry are the list and entry names,
+ * then the corresponding input section name is
+ *
+ *   _u_boot_list + _2_ + @_list + _2_ + @_entry
+ *
+ * and the C variable name is
+ *
+ *   .u_boot_list_ + 2_ + @_list + _2_ + @_entry
+ *
+ * This ensures uniqueness for both input section and C variable name.
+ *
+ * Note that the names differ only in the first character, "." for the
+ * setion and "_" for the variable, so that the linker cannot confuse
+ * section and symbol names. From now on, both names will be referred
+ * to as
+ *
+ *   %u_boot_list_ + 2_ + @_list + _2_ + @_entry
+ *
+ * Entry variables need never be referred to directly.
+ *
+ * The naming scheme for input sections allows grouping all linker lists
+ * into a single linker output section and grouping all entries for a
+ * single list.
+ *
+ * Note the two '_2_' constant components in the names: their presence
+ * allows putting a start and end symbols around a list, by mapping
+ * these symbols to sections names with components "1" (before) and
+ * "3" (after) instead of "2" (within).
+ * Start and end symbols for a list can generally be defined as
+ *
+ *   %u_boot_list_2_ + @_list + _1_...
+ *   %u_boot_list_2_ + @_list + _3_...
+ *
+ * Start and end symbols for the whole of the linker lists area can be
+ * defined as
+ *
+ *   %u_boot_list_1_...
+ *   %u_boot_list_3_...
+ *
+ * Here is an example of the sorted sections which result from a list
+ * "array" made up of three entries : "first", "second" and "third",
+ * iterated at least once.
+ *
+ *   .u_boot_list_2_array_1
+ *   .u_boot_list_2_array_2_first
+ *   .u_boot_list_2_array_2_second
+ *   .u_boot_list_2_array_2_third
+ *   .u_boot_list_2_array_3
+ *
+ * If lists must be divided into sublists (e.g. for iterating only on
+ * part of a list), one can simply give the list a name of the form
+ * 'outer_2_inner', where 'outer' is the global list name and 'inner'
+ * is the sub-list name. Iterators for the whole list should use the
+ * global list name ("outer"); iterators for only a sub-list should use
+ * the full sub-list name ("outer_2_inner").
+ *
+ *  Here is an example of the sections generated from a global list
+ * named "drivers", two sub-lists named "i2c" and "pci", and iterators
+ * defined for the whole list and each sub-list:
+ *
+ *   %u_boot_list_2_drivers_1
+ *   %u_boot_list_2_drivers_2_i2c_1
+ *   %u_boot_list_2_drivers_2_i2c_2_first
+ *   %u_boot_list_2_drivers_2_i2c_2_first
+ *   %u_boot_list_2_drivers_2_i2c_2_second
+ *   %u_boot_list_2_drivers_2_i2c_2_third
+ *   %u_boot_list_2_drivers_2_i2c_3
+ *   %u_boot_list_2_drivers_2_pci_1
+ *   %u_boot_list_2_drivers_2_pci_2_first
+ *   %u_boot_list_2_drivers_2_pci_2_second
+ *   %u_boot_list_2_drivers_2_pci_2_third
+ *   %u_boot_list_2_drivers_2_pci_3
+ *   %u_boot_list_2_drivers_3
+ */
+
 #ifndef __LINKER_LISTS_H__
 #define __LINKER_LISTS_H__
 
  * ll_entry_declare() - Declare linker-generated array entry
  * @_type:     Data type of the entry
  * @_name:     Name of the entry
- * @_section_u:        Subsection of u_boot_list in which this entry is placed
- *             (with underscores instead of dots, for name concatenation)
- * @_section_d:        Subsection of u_boot_list in which this entry is placed
- *             (with dots, for section concatenation)
+ * @_list:     name of the list. Should contain only characters allowed
+ *             in a C variable name!
  *
  * This macro declares a variable that is placed into a linker-generated
  * array. This is a basic building block for more advanced use of linker-
  * generated arrays. The user is expected to build their own macro wrapper
  * around this one.
  *
- * A variable declared using this macro must be compile-time initialized
- * and is as such placed into subsection of special section, .u_boot_list.
- * The subsection is specified by the _section_[u,d] parameter, see below.
- * The base name of the variable is _name, yet the actual variable is
- * declared as concatenation of
- *
- *   %_u_boot_list_ + @_section_u + _ + @_name
- *
- * which ensures name uniqueness. This variable shall never be refered
- * directly though.
+ * A variable declared using this macro must be compile-time initialized.
  *
  * Special precaution must be made when using this macro:
- * 1) The _type must not contain the "static" keyword, otherwise the entry
- *    is not generated.
  *
- * 2) The @_section_u and @_section_d variables must match, the only difference
- *    is that in @_section_u is every dot "." character present in @_section_d
- *    replaced by a single underscore "_" character in @_section_u. The actual
- *    purpose of these parameters is to select proper subsection in the global
- *    .u_boot_list section.
+ * 1) The _type must not contain the "static" keyword, otherwise the
+ *    entry is generated and can be iterated but is listed in the map
+ *    file and cannot be retrieved by name.
  *
- * 3) In case a section is declared that contains some array elements AND a
- *    subsection of this section is declared and contains some elements, it is
- *    imperative that the elements are of the same type.
+ * 2) In case a section is declared that contains some array elements AND
+ *    a subsection of this section is declared and contains some elements,
+ *    it is imperative that the elements are of the same type.
  *
  * 4) In case an outer section is declared that contains some array elements
- *    AND am inner subsection of this section is declared and contains some
+ *    AND an inner subsection of this section is declared and contains some
  *    elements, then when traversing the outer section, even the elements of
  *    the inner sections are present in the array.
  *
  *         .y = 4,
  * };
  */
-#define ll_entry_declare(_type, _name, _section_u, _section_d)         \
-       _type _u_boot_list_##_section_u##_##_name __attribute__((       \
-                       unused, aligned(4),                             \
-                       section(".u_boot_list."#_section_d"."#_name)))
+#define ll_entry_declare(_type, _name, _list)                          \
+       _type _u_boot_list_2_##_list##_2_##_name __aligned(4)           \
+                       __attribute__((unused,                          \
+                       section(".u_boot_list_2_"#_list"_2_"#_name)))
+
+/**
+ * We need a 0-byte-size type for iterator symbols, and the compiler
+ * does not allow defining objects of C type 'void'. Using an empty
+ * struct is allowed by the compiler, but causes gcc versions 4.4 and
+ * below to complain about aliasing. Therefore we use the next best
+ * thing: zero-sized arrays, which are both 0-byte-size and exempt from
+ * aliasing warnings.
+ */
 
 /**
  * ll_entry_start() - Point to first entry of linker-generated array
  * @_type:     Data type of the entry
- * @_section_u:        Subsection of u_boot_list in which this entry is placed
- *             (with underscores instead of dots)
+ * @_list:     Name of the list in which this entry is placed
  *
  * This function returns (_type *) pointer to the very first entry of a
  * linker-generated array placed into subsection of .u_boot_list section
- * specified by _section_u argument.
+ * specified by _list argument.
+ *
+ * Since this macro defines an array start symbol, its leftmost index
+ * must be 2 and its rightmost index must be 1.
  *
  * Example:
  * struct my_sub_cmd *msc = ll_entry_start(struct my_sub_cmd, cmd_sub);
  */
-#define ll_entry_start(_type, _section_u)                              \
-       ({                                                              \
-               extern _type _u_boot_list_##_section_u##__start;        \
-               _type *_ll_result = &_u_boot_list_##_section_u##__start;\
-               _ll_result;                                             \
-       })
+#define ll_entry_start(_type, _list)                                   \
+({                                                                     \
+       static char start[0] __aligned(4) __attribute__((unused,        \
+               section(".u_boot_list_2_"#_list"_1")));                 \
+       (_type *)&start;                                                \
+})
 
 /**
- * ll_entry_count() - Return the number of elements in linker-generated array
+ * ll_entry_end() - Point after last entry of linker-generated array
  * @_type:     Data type of the entry
- * @_section_u:        Subsection of u_boot_list in which this entry is placed
+ * @_list:     Name of the list in which this entry is placed
  *             (with underscores instead of dots)
  *
+ * This function returns (_type *) pointer after the very last entry of
+ * a linker-generated array placed into subsection of .u_boot_list
+ * section specified by _list argument.
+ *
+ * Since this macro defines an array end symbol, its leftmost index
+ * must be 2 and its rightmost index must be 3.
+ *
+ * Example:
+ * struct my_sub_cmd *msc = ll_entry_end(struct my_sub_cmd, cmd_sub);
+ */
+#define ll_entry_end(_type, _list)                                     \
+({                                                                     \
+       static char end[0] __aligned(4) __attribute__((unused,  \
+               section(".u_boot_list_2_"#_list"_3")));                 \
+       (_type *)&end;                                                  \
+})
+/**
+ * ll_entry_count() - Return the number of elements in linker-generated array
+ * @_type:     Data type of the entry
+ * @_list:     Name of the list of which the number of elements is computed
+ *
  * This function returns the number of elements of a linker-generated array
- * placed into subsection of .u_boot_list section specified by _section_u
+ * placed into subsection of .u_boot_list section specified by _list
  * argument. The result is of an unsigned int type.
  *
  * Example:
  * for (i = 0; i < count; i++, msc++)
  *         printf("Entry %i, x=%i y=%i\n", i, msc->x, msc->y);
  */
-#define ll_entry_count(_type, _section_u)                              \
+#define ll_entry_count(_type, _list)                                   \
        ({                                                              \
-               extern _type _u_boot_list_##_section_u##__start;        \
-               extern _type _u_boot_list_##_section_u##__end;          \
-               unsigned int _ll_result =                               \
-                       &_u_boot_list_##_section_u##__end -             \
-                       &_u_boot_list_##_section_u##__start;            \
+               _type *start = ll_entry_start(_type, _list);            \
+               _type *end = ll_entry_end(_type, _list);                \
+               unsigned int _ll_result = end - start;                  \
                _ll_result;                                             \
        })
 
-
 /**
  * ll_entry_get() - Retrieve entry from linker-generated array by name
  * @_type:     Data type of the entry
  * @_name:     Name of the entry
- * @_section_u:        Subsection of u_boot_list in which this entry is placed
- *             (with underscores instead of dots)
+ * @_list:     Name of the list in which this entry is placed
  *
  * This function returns a pointer to a particular entry in LG-array
  * identified by the subsection of u_boot_list where the entry resides
  * ...
  * struct my_sub_cmd *c = ll_entry_get(struct my_sub_cmd, my_sub_cmd, cmd_sub);
  */
-#define ll_entry_get(_type, _name, _section_u)                         \
+#define ll_entry_get(_type, _name, _list)                              \
        ({                                                              \
-               extern _type _u_boot_list_##_section_u##_##_name;       \
-               _type *_ll_result = &_u_boot_list_##_section_u##_##_name;\
+               extern _type _u_boot_list_2_##_list##_2_##_name;        \
+               _type *_ll_result =                                     \
+                       &_u_boot_list_2_##_list##_2_##_name;    \
                _ll_result;                                             \
        })
 
+/**
+ * ll_start() - Point to first entry of first linker-generated array
+ * @_type:     Data type of the entry
+ *
+ * This function returns (_type *) pointer to the very first entry of
+ * the very first linker-generated array.
+ *
+ * Since this macro defines the start of the linker-generated arrays,
+ * its leftmost index must be 1.
+ *
+ * Example:
+ * struct my_sub_cmd *msc = ll_start(struct my_sub_cmd);
+ */
+#define ll_start(_type)                                                        \
+({                                                                     \
+       static char start[0] __aligned(4) __attribute__((unused,        \
+               section(".u_boot_list_1")));                            \
+       (_type *)&start;                                                \
+})
+
+/**
+ * ll_entry_end() - Point after last entry of last linker-generated array
+ * @_type:     Data type of the entry
+ *
+ * This function returns (_type *) pointer after the very last entry of
+ * the very last linker-generated array.
+ *
+ * Since this macro defines the end of the linker-generated arrays,
+ * its leftmost index must be 3.
+ *
+ * Example:
+ * struct my_sub_cmd *msc = ll_end(struct my_sub_cmd);
+ */
+#define ll_end(_type)                                                  \
+({                                                                     \
+       static char end[0] __aligned(4) __attribute__((unused,  \
+               section(".u_boot_list_3")));                            \
+       (_type *)&end;                                                  \
+})
+
+#endif /* __ASSEMBLY__ */
+
 #endif /* __LINKER_LISTS_H__ */
index 9c778261b6f7e8fa19d8c7dc7a0274b8d7a4074f..3a2a2d4b17e2a89f1bf7e1f81ed00853166d1cf8 100644 (file)
@@ -32,7 +32,6 @@ include $(TOPDIR)/config.mk
 nandobj        := $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
-LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
                $(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS += -DCONFIG_NAND_SPL
@@ -62,11 +61,7 @@ $(nandobj)u-boot-spl:        $(OBJS) $(nandobj)u-boot-nand_spl.lds
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
-# The following line expands into whole rule which generates $(LSTSCRIPT),
-# the file containing u-boots LG-array linker section. This is included into
-# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
-$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
        $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(nandobj)/board/$(BOARDDIR) \
                -ansi -D__ASSEMBLY__ -P - <$< >$@
 
index 9c778261b6f7e8fa19d8c7dc7a0274b8d7a4074f..3a2a2d4b17e2a89f1bf7e1f81ed00853166d1cf8 100644 (file)
@@ -32,7 +32,6 @@ include $(TOPDIR)/config.mk
 nandobj        := $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
-LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
                $(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS += -DCONFIG_NAND_SPL
@@ -62,11 +61,7 @@ $(nandobj)u-boot-spl:        $(OBJS) $(nandobj)u-boot-nand_spl.lds
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
-# The following line expands into whole rule which generates $(LSTSCRIPT),
-# the file containing u-boots LG-array linker section. This is included into
-# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
-$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
        $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(nandobj)/board/$(BOARDDIR) \
                -ansi -D__ASSEMBLY__ -P - <$< >$@
 
index 9c778261b6f7e8fa19d8c7dc7a0274b8d7a4074f..3a2a2d4b17e2a89f1bf7e1f81ed00853166d1cf8 100644 (file)
@@ -32,7 +32,6 @@ include $(TOPDIR)/config.mk
 nandobj        := $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
-LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
                $(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS += -DCONFIG_NAND_SPL
@@ -62,11 +61,7 @@ $(nandobj)u-boot-spl:        $(OBJS) $(nandobj)u-boot-nand_spl.lds
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
-# The following line expands into whole rule which generates $(LSTSCRIPT),
-# the file containing u-boots LG-array linker section. This is included into
-# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
-$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
        $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(nandobj)/board/$(BOARDDIR) \
                -ansi -D__ASSEMBLY__ -P - <$< >$@
 
index fd0dfc19d86ea8d949c80f4790fa57576371f90c..3d57059f50835a0ffca594841387ffc440cbd9dc 100644 (file)
@@ -6,7 +6,6 @@ include $(TOPDIR)/config.mk
 nandobj        := $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
           $(LDFLAGS_FINAL)
 AFLAGS += -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
@@ -38,11 +37,7 @@ $(nandobj)u-boot-spl:        $(OBJS) $(nandobj)u-boot.lds
                -Map $(nandobj)u-boot-spl.map \
                -o $@
 
-# The following line expands into whole rule which generates $(LSTSCRIPT),
-# the file containing u-boots LG-array linker section. This is included into
-# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
-$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
-$(nandobj)u-boot.lds: $(LDSCRIPT) $(LSTSCRIPT)
+$(nandobj)u-boot.lds: $(LDSCRIPT)
        $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(nandobj)/board/$(BOARDDIR) \
                -ansi -D__ASSEMBLY__ -P - <$< >$@
 
index a26110f393d8c452c3746eed59b28c5c621fdb38..06561769309f4ef88899b79754b946245ae397d5 100644 (file)
@@ -49,7 +49,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-               #include <u-boot.lst>
+               *(SORT(.u_boot_list*));
        }
 
        . = ALIGN(4);
index c3495ec0dff7dcb72fedaa09d6cf7b14850d482a..f7bdf9207d14674ced54773703cc190068f392bc 100644 (file)
@@ -32,7 +32,6 @@ include $(TOPDIR)/config.mk
 nandobj        := $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
-LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(LDFLAGS) \
           $(LDFLAGS_FINAL)
 AFLAGS += -DCONFIG_NAND_SPL
@@ -62,11 +61,7 @@ $(nandobj)u-boot-spl:        $(OBJS) $(nandobj)u-boot-nand_spl.lds
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
-# The following line expands into whole rule which generates $(LSTSCRIPT),
-# the file containing u-boots LG-array linker section. This is included into
-# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
-$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
        $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(nandobj)board/$(BOARDDIR) \
                 -ansi -D__ASSEMBLY__ -P - <$< >$@
 
index 9b2c0d7f35711b81fcef00fc19bfb9cf64299370..fb7d5612a1ce017cbb80ac857915d5326d8fb03f 100644 (file)
@@ -27,7 +27,6 @@ include $(TOPDIR)/config.mk
 nandobj        := $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
-LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
                $(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS += -DCONFIG_NAND_SPL
@@ -57,11 +56,7 @@ $(nandobj)u-boot-spl:        $(OBJS) $(nandobj)u-boot-nand_spl.lds
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
-# The following line expands into whole rule which generates $(LSTSCRIPT),
-# the file containing u-boots LG-array linker section. This is included into
-# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
-$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
        $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(nandobj)/board/$(BOARDDIR) \
                -ansi -D__ASSEMBLY__ -P - <$< >$@
 
index 9c778261b6f7e8fa19d8c7dc7a0274b8d7a4074f..3a2a2d4b17e2a89f1bf7e1f81ed00853166d1cf8 100644 (file)
@@ -32,7 +32,6 @@ include $(TOPDIR)/config.mk
 nandobj        := $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
-LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
                $(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS += -DCONFIG_NAND_SPL
@@ -62,11 +61,7 @@ $(nandobj)u-boot-spl:        $(OBJS) $(nandobj)u-boot-nand_spl.lds
                -Map $(nandobj)u-boot-spl.map \
                -o $(nandobj)u-boot-spl
 
-# The following line expands into whole rule which generates $(LSTSCRIPT),
-# the file containing u-boots LG-array linker section. This is included into
-# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
-$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
        $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(nandobj)/board/$(BOARDDIR) \
                -ansi -D__ASSEMBLY__ -P - <$< >$@
 
index 82489d2405ef370df9282a517685966e32c48b50..9f9c5893cf0b387fcd2fbc33a075000dc4775e64 100644 (file)
@@ -27,7 +27,6 @@ include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 nandobj        := $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
           $(LDFLAGS_FINAL)
 AFLAGS += -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
@@ -59,11 +58,7 @@ $(nandobj)u-boot-spl:        $(OBJS) $(nandobj)u-boot.lds
                -Map $(nandobj)u-boot-spl.map \
                -o $@
 
-# The following line expands into whole rule which generates $(LSTSCRIPT),
-# the file containing u-boots LG-array linker section. This is included into
-# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
-$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
-$(nandobj)u-boot.lds: $(LDSCRIPT) $(LSTSCRIPT)
+$(nandobj)u-boot.lds: $(LDSCRIPT)
        $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(nandobj)/board/$(BOARDDIR) \
                -ansi -D__ASSEMBLY__ -P - <$< >$@
 
index ee361314fdaeb143a3832f42b8dcc90eb2f98067..ea84d64f3f1b0b4e0e3d3402da59e46b2a9ad916 100644 (file)
@@ -49,7 +49,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+       *(SORT(.u_boot_list*));
        }
 
        . = ALIGN(4);
index 2ed646630c9b31bb0aa793cc9bae1c81c1de35ca..66b412e4aa964b15cc060113b32c0ee3302d4263 100644 (file)
@@ -53,7 +53,7 @@ SECTIONS
 
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+       *(SORT(.u_boot_list*));
        }
 
        . = ALIGN(4);
index 8cf487e5c8ff06c6ca29afa81bcefea7c9fac8ac..7c8814709f63ea6e6eee98cbf7786280e8ba5bc7 100644 (file)
@@ -2,4 +2,3 @@ u-boot-spl
 u-boot-spl.bin
 u-boot-spl.lds
 u-boot-spl.map
-u-boot.lst