]> git.sur5r.net Git - u-boot/commit
Fix all linker scripts for older binutils versions (pre-2.16)
authorWolfgang Denk <wd@denx.de>
Mon, 17 Aug 2009 12:00:53 +0000 (14:00 +0200)
committerWolfgang Denk <wd@denx.de>
Fri, 21 Aug 2009 21:13:34 +0000 (23:13 +0200)
commit1aada9cd643567d351667138851e9231ccfa245a
treed307bc75577677a3fdf1d3e3ccd075287977a24f
parentf772acf8a584067033eff1e231fcd1fb3a00d3d9
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>
14 files changed:
Makefile
board/netstar/Makefile
board/voiceblue/Makefile
config.mk
nand_spl/board/amcc/acadia/Makefile
nand_spl/board/amcc/bamboo/Makefile
nand_spl/board/amcc/canyonlands/Makefile
nand_spl/board/amcc/kilauea/Makefile
nand_spl/board/amcc/sequoia/Makefile
nand_spl/board/freescale/mpc8313erdb/Makefile
nand_spl/board/freescale/mx31pdk/Makefile
nand_spl/board/samsung/smdk6400/Makefile
nand_spl/board/sheldon/simpc8313/Makefile
onenand_ipl/board/apollon/Makefile