On Sun, 27 Nov 2016 09:04:30 +1100 Anton Blanchard <an...@samba.org> wrote:
> Hi, > > A recent binutils commit: > > https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=1a9ccd70f9a75dc6b48d340059f28ef3550c107b > > has broken kernel builds: > > /home/anton/gcc.install/bin/ld: arch/powerpc/boot/zImage.pseries: Not enough > room for program headers, try linking with -N > /home/anton/gcc.install/bin/ld: final link failed: Bad value > > I guess we have an issue with our linker script. We may need something like this (not boot tested). I'll have a better look tomorrow. --- arch/powerpc/boot/zImage.lds.S | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/arch/powerpc/boot/zImage.lds.S b/arch/powerpc/boot/zImage.lds.S index 861e721..8963544 100644 --- a/arch/powerpc/boot/zImage.lds.S +++ b/arch/powerpc/boot/zImage.lds.S @@ -7,6 +7,13 @@ OUTPUT_ARCH(powerpc:common) #endif ENTRY(_zimage_start) EXTERN(_zimage_start) + +PHDRS +{ + text PT_LOAD FLAGS(5); /* R_E */ + data PT_LOAD FLAGS(6); /* RW_ */ +} + SECTIONS { .text : @@ -15,7 +22,7 @@ SECTIONS *(.text) *(.fixup) _etext = .; - } + } :text . = ALIGN(4096); .data : { @@ -25,7 +32,7 @@ SECTIONS #ifndef CONFIG_PPC64_BOOT_WRAPPER *(.got2) #endif - } + } :data .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .dynamic : @@ -34,7 +41,6 @@ SECTIONS *(.dynamic) } .hash : { *(.hash) } - .interp : { *(.interp) } .rela.dyn : { #ifdef CONFIG_PPC64_BOOT_WRAPPER @@ -86,4 +92,9 @@ SECTIONS *(COMMON) _end = . ; } + + /DISCARD/ : + { + *(.interp) + } } -- 2.10.2