On Fri, Dec 16, 2016 at 03:23:30PM +1030, Joel Stanley wrote: > Since Binutils 1a9ccd70f9a7[1] u-boot will not link targets that set > CONFIG_SYS_TEXT_BASE=0 with the following error: > > LD u-boot > arm-linux-gnueabi-ld.bfd: u-boot: Not enough room for program headers, try > linking with -N > arm-linux-gnueabi-ld.bfd: final link failed: Bad value > > The issue can reproduced the bad binutils and the rock2_defconfig target. > > This issue was also encountered by the powerpc kernel[2], with the fix > being to pass --no-dynamic-linker for linkers newer than 2.26 when this > flag was introduced. The option tells ld that the PIE or shared lib does > not need loaded program headers. > > Ubuntu Zesty's Binutils 2.27.51.20161202 hits this error. > > [1] > https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=1a9ccd70f9a7 > [2] > https://git.kernel.org/cgit/linux/kernel/git/powerpc/linux.git/commit/?h=next&id=ff45000fcb56b5b0f1a14a865d3541746d838a0a > > Signed-off-by: Joel Stanley <[email protected]> > --- > v2: > - use ld-option to test for the flag instead of the version, as suggested by > Måns > - update commit message with clarification from Alan > > Makefile | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/Makefile b/Makefile > index dfed58bec661..c98a8361654a 100644 > --- a/Makefile > +++ b/Makefile > @@ -793,6 +793,10 @@ ALL-y += $(CONFIG_BUILD_TARGET:"%"=%) > endif > > LDFLAGS_u-boot += $(LDFLAGS_FINAL) > + > +# Avoid 'Not enough room for program headers' error on binutils 2.28 onwards. > +LDFLAGS_u-boot += $(call ld-option, --no-dynamic-linker) > + > ifneq ($(CONFIG_SYS_TEXT_BASE),) > LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE) > endif
I had to think about this a bit and poke around. I think we need to be adjusting LDFLAGS_$(SPL_BIN) in scripts/Makefile.spl for safety here as well since if CONFIG_SPL_TEXT_BASE=0 (which seems just as possible as CONFIG_SYS_TEXT_BASE=0) we would hit the same condition. Thanks! -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

