* [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds @ 2019-03-21 0:32 Joel Stanley 2019-03-21 23:34 ` Segher Boessenkool 2019-03-26 0:55 ` Michael Ellerman 0 siblings, 2 replies; 18+ messages in thread From: Joel Stanley @ 2019-03-21 0:32 UTC (permalink / raw) To: linuxppc-dev Segher added some workarounds for GCC 4.2 and bintuils 2.18. We now set 4.6 and 2.20 as the minimum, so they can be dropped. This is mostly a revert of c69cccc95fe4 ("powerpc: Fix build bug with binutils < 2.18 and GCC < 4.2"). Signed-off-by: Joel Stanley <joel@jms.id.au> --- arch/powerpc/kernel/vmlinux.lds.S | 35 ++++--------------------------- 1 file changed, 4 insertions(+), 31 deletions(-) diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index 060a1acd7c6d..0551e9846676 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S @@ -17,25 +17,6 @@ ENTRY(_stext) -PHDRS { - kernel PT_LOAD FLAGS(7); /* RWX */ - notes PT_NOTE FLAGS(0); - dummy PT_NOTE FLAGS(0); - - /* binutils < 2.18 has a bug that makes it misbehave when taking an - ELF file with all segments at load address 0 as input. This - happens when running "strip" on vmlinux, because of the AT() magic - in this linker script. People using GCC >= 4.2 won't run into - this problem, because the "build-id" support will put some data - into the "notes" segment (at a non-zero load address). - - To work around this, we force some data into both the "dummy" - segment and the kernel segment, so the dummy segment will get a - non-zero load address. It's not enough to always create the - "notes" segment, since if nothing gets assigned to it, its load - address will be zero. */ -} - #ifdef CONFIG_PPC64 OUTPUT_ARCH(powerpc:common64) jiffies = jiffies_64; @@ -77,7 +58,7 @@ SECTIONS #else /* !CONFIG_PPC64 */ HEAD_TEXT #endif - } :kernel + } __head_end = .; @@ -126,7 +107,7 @@ SECTIONS __got2_end = .; #endif /* CONFIG_PPC32 */ - } :kernel + } . = ALIGN(ETEXT_ALIGN_SIZE); _etext = .; @@ -177,15 +158,7 @@ SECTIONS #endif EXCEPTION_TABLE(0) - NOTES :kernel :notes - - /* The dummy segment contents for the bug workaround mentioned above - near PHDRS. */ - .dummy : AT(ADDR(.dummy) - LOAD_OFFSET) { - LONG(0) - LONG(0) - LONG(0) - } :kernel :dummy + NOTES /* * Init sections discarded at runtime @@ -200,7 +173,7 @@ SECTIONS #ifdef CONFIG_PPC64 *(.tramp.ftrace.init); #endif - } :kernel + } /* .exit.text is discarded at runtime, not link time, * to deal with references from __bug_table -- 2.20.1 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-21 0:32 [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds Joel Stanley @ 2019-03-21 23:34 ` Segher Boessenkool 2019-03-22 0:22 ` Michael Ellerman 2019-03-26 0:55 ` Michael Ellerman 1 sibling, 1 reply; 18+ messages in thread From: Segher Boessenkool @ 2019-03-21 23:34 UTC (permalink / raw) To: Joel Stanley; +Cc: linuxppc-dev On Thu, Mar 21, 2019 at 11:02:53AM +1030, Joel Stanley wrote: > Segher added some workarounds for GCC 4.2 and bintuils 2.18. We now set > 4.6 and 2.20 as the minimum, so they can be dropped. It was a bug in binutils _before_ 2.18, only seen by people using GCC _before_ 4.2. It's all ancient history by now, and good riddance :-) > Signed-off-by: Joel Stanley <joel@jms.id.au> Acked-by: Segher Boessenkool <segher@kernel.crashing.org> Segher ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-21 23:34 ` Segher Boessenkool @ 2019-03-22 0:22 ` Michael Ellerman 0 siblings, 0 replies; 18+ messages in thread From: Michael Ellerman @ 2019-03-22 0:22 UTC (permalink / raw) To: Segher Boessenkool, Joel Stanley; +Cc: linuxppc-dev Segher Boessenkool <segher@kernel.crashing.org> writes: > On Thu, Mar 21, 2019 at 11:02:53AM +1030, Joel Stanley wrote: >> Segher added some workarounds for GCC 4.2 and bintuils 2.18. We now set >> 4.6 and 2.20 as the minimum, so they can be dropped. > > It was a bug in binutils _before_ 2.18, only seen by people using GCC > _before_ 4.2. > > It's all ancient history by now, and good riddance :-) > >> Signed-off-by: Joel Stanley <joel@jms.id.au> > > Acked-by: Segher Boessenkool <segher@kernel.crashing.org> Thanks. I updated the change log slightly: powerpc/vmlinux.lds: Drop binutils < 2.18 workarounds Segher added some workarounds for binutils < 2.18 and GCC < 4.2. We now set GCC 4.6 and binutils 2.20 as the minimum, so the workarounds can be dropped. This is mostly a revert of c69cccc95fe4 ("powerpc: Fix build bug with binutils < 2.18 and GCC < 4.2"). cheers ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-21 0:32 [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds Joel Stanley 2019-03-21 23:34 ` Segher Boessenkool @ 2019-03-26 0:55 ` Michael Ellerman 2019-03-26 7:55 ` Christophe Leroy 2019-03-26 8:08 ` Christophe Leroy 1 sibling, 2 replies; 18+ messages in thread From: Michael Ellerman @ 2019-03-26 0:55 UTC (permalink / raw) To: Joel Stanley, linuxppc-dev Joel Stanley <joel@jms.id.au> writes: > Segher added some workarounds for GCC 4.2 and bintuils 2.18. We now set > 4.6 and 2.20 as the minimum, so they can be dropped. > > This is mostly a revert of c69cccc95fe4 ("powerpc: Fix build bug with > binutils < 2.18 and GCC < 4.2"). > > Signed-off-by: Joel Stanley <joel@jms.id.au> > --- > arch/powerpc/kernel/vmlinux.lds.S | 35 ++++--------------------------- > 1 file changed, 4 insertions(+), 31 deletions(-) Seems this breaks some toolchains, at least the one from kernel.org: /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld: .tmp_vmlinux1: Not enough room for program headers, try linking with -N /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld: final link failed: Bad value make[1]: *** [/kisskb/src/Makefile:1024: vmlinux] Error 1 http://kisskb.ellerman.id.au/kisskb/buildresult/13743374/ Not sure why. That's binutils 2.30. cheers ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-26 0:55 ` Michael Ellerman @ 2019-03-26 7:55 ` Christophe Leroy 2019-03-26 18:19 ` Segher Boessenkool 2019-03-26 8:08 ` Christophe Leroy 1 sibling, 1 reply; 18+ messages in thread From: Christophe Leroy @ 2019-03-26 7:55 UTC (permalink / raw) To: Michael Ellerman, Joel Stanley, linuxppc-dev On 03/26/2019 12:55 AM, Michael Ellerman wrote: > Joel Stanley <joel@jms.id.au> writes: >> Segher added some workarounds for GCC 4.2 and bintuils 2.18. We now set >> 4.6 and 2.20 as the minimum, so they can be dropped. >> >> This is mostly a revert of c69cccc95fe4 ("powerpc: Fix build bug with >> binutils < 2.18 and GCC < 4.2"). >> >> Signed-off-by: Joel Stanley <joel@jms.id.au> >> --- >> arch/powerpc/kernel/vmlinux.lds.S | 35 ++++--------------------------- >> 1 file changed, 4 insertions(+), 31 deletions(-) > > Seems this breaks some toolchains, at least the one from kernel.org: > > /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld: .tmp_vmlinux1: Not enough room for program headers, try linking with -N > /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld: final link failed: Bad value > make[1]: *** [/kisskb/src/Makefile:1024: vmlinux] Error 1 > > http://kisskb.ellerman.id.au/kisskb/buildresult/13743374/ > > Not sure why. > > That's binutils 2.30. > > cheers > Without the patch on PPC32: Program Header: LOAD off 0x00010000 vaddr 0xc0000000 paddr 0x00000000 align 2**16 filesz 0x003c2ce4 memsz 0x003e1a08 flags rwx NOTE off 0x0038dca8 vaddr 0xc037dca8 paddr 0x0037dca8 align 2**2 filesz 0x0000003c memsz 0x0000003c flags --- NOTE off 0x0038dce4 vaddr 0xc037dce4 paddr 0x0037dce4 align 2**0 filesz 0x0000000c memsz 0x0000000c flags --- With the patch: Program Header: LOAD off 0x00010000 vaddr 0xc0000000 paddr 0x00000000 align 2**16 filesz 0x003c2ce4 memsz 0x003e1a08 flags rwx NOTE off 0x0038dca8 vaddr 0xc037dca8 paddr 0x0037dca8 align 2**2 filesz 0x0000003c memsz 0x0000003c flags r-- STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4 filesz 0x00000000 memsz 0x00000000 flags rwx Christophe ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-26 7:55 ` Christophe Leroy @ 2019-03-26 18:19 ` Segher Boessenkool 2019-03-26 19:28 ` Christophe Leroy 0 siblings, 1 reply; 18+ messages in thread From: Segher Boessenkool @ 2019-03-26 18:19 UTC (permalink / raw) To: Christophe Leroy; +Cc: linuxppc-dev, Joel Stanley On Tue, Mar 26, 2019 at 07:55:33AM +0000, Christophe Leroy wrote: > STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4 > filesz 0x00000000 memsz 0x00000000 flags rwx You need to prevent this one somehow. What object file forces this? Setting the program headers manually works of course, but that also hides other problems. Segher ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-26 18:19 ` Segher Boessenkool @ 2019-03-26 19:28 ` Christophe Leroy 2019-03-26 20:12 ` Segher Boessenkool 0 siblings, 1 reply; 18+ messages in thread From: Christophe Leroy @ 2019-03-26 19:28 UTC (permalink / raw) To: Segher Boessenkool; +Cc: linuxppc-dev, Joel Stanley Le 26/03/2019 à 19:19, Segher Boessenkool a écrit : > On Tue, Mar 26, 2019 at 07:55:33AM +0000, Christophe Leroy wrote: >> STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4 >> filesz 0x00000000 memsz 0x00000000 flags rwx > > You need to prevent this one somehow. What object file forces this? mpc885_ads_defconfig Christophe > > Setting the program headers manually works of course, but that also hides > other problems. > > > Segher > ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-26 19:28 ` Christophe Leroy @ 2019-03-26 20:12 ` Segher Boessenkool 2019-03-26 22:29 ` Segher Boessenkool 2019-03-27 8:56 ` Christophe Leroy 0 siblings, 2 replies; 18+ messages in thread From: Segher Boessenkool @ 2019-03-26 20:12 UTC (permalink / raw) To: Christophe Leroy; +Cc: linuxppc-dev, Joel Stanley On Tue, Mar 26, 2019 at 08:28:58PM +0100, Christophe Leroy wrote: > > > Le 26/03/2019 à 19:19, Segher Boessenkool a écrit : > >On Tue, Mar 26, 2019 at 07:55:33AM +0000, Christophe Leroy wrote: > >> STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4 > >> filesz 0x00000000 memsz 0x00000000 flags rwx > > > >You need to prevent this one somehow. What object file forces this? > > mpc885_ads_defconfig No, which object file, ".o file". Not defconfig :-) Segher ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-26 20:12 ` Segher Boessenkool @ 2019-03-26 22:29 ` Segher Boessenkool 2019-03-26 22:59 ` Segher Boessenkool 2019-03-27 6:40 ` Christophe Leroy 2019-03-27 8:56 ` Christophe Leroy 1 sibling, 2 replies; 18+ messages in thread From: Segher Boessenkool @ 2019-03-26 22:29 UTC (permalink / raw) To: Christophe Leroy; +Cc: linuxppc-dev, Joel Stanley On Tue, Mar 26, 2019 at 03:12:31PM -0500, Segher Boessenkool wrote: > On Tue, Mar 26, 2019 at 08:28:58PM +0100, Christophe Leroy wrote: > > > > > > Le 26/03/2019 à 19:19, Segher Boessenkool a écrit : > > >On Tue, Mar 26, 2019 at 07:55:33AM +0000, Christophe Leroy wrote: > > >> STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4 > > >> filesz 0x00000000 memsz 0x00000000 flags rwx > > > > > >You need to prevent this one somehow. What object file forces this? > > > > mpc885_ads_defconfig > > No, which object file, ".o file". Not defconfig :-) I tried to reproduce this. It does not fail with a ppc6xx_defconfig build, and mpc885_ads_defconfig fails with INFO: Uncompressed kernel (size 0x435178) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0x500000) ln: failed to access 'arch/powerpc/boot/cuImage.mpc885ads': No such file or directory What is your GCC? Segher ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-26 22:29 ` Segher Boessenkool @ 2019-03-26 22:59 ` Segher Boessenkool 2019-03-27 6:40 ` Christophe Leroy 1 sibling, 0 replies; 18+ messages in thread From: Segher Boessenkool @ 2019-03-26 22:59 UTC (permalink / raw) To: Christophe Leroy; +Cc: linuxppc-dev, Joel Stanley On Tue, Mar 26, 2019 at 05:29:43PM -0500, Segher Boessenkool wrote: > On Tue, Mar 26, 2019 at 03:12:31PM -0500, Segher Boessenkool wrote: > > On Tue, Mar 26, 2019 at 08:28:58PM +0100, Christophe Leroy wrote: > > > > > > > > > Le 26/03/2019 à 19:19, Segher Boessenkool a écrit : > > > >On Tue, Mar 26, 2019 at 07:55:33AM +0000, Christophe Leroy wrote: > > > >> STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4 > > > >> filesz 0x00000000 memsz 0x00000000 flags rwx > > > > > > > >You need to prevent this one somehow. What object file forces this? > > > > > > mpc885_ads_defconfig > > > > No, which object file, ".o file". Not defconfig :-) > > I tried to reproduce this. It does not fail with a ppc6xx_defconfig > build, and mpc885_ads_defconfig fails with > > INFO: Uncompressed kernel (size 0x435178) overlaps the address of the wrapper(0x400000) > INFO: Fixing the link_address of wrapper to (0x500000) > ln: failed to access 'arch/powerpc/boot/cuImage.mpc885ads': No such file or directory (Fixed this by getting a working mkimage) > What is your GCC? That question remains -- all my powerpc kernel builds work just fine with that patch applied (recent GCC, recent binutils). Segher ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-26 22:29 ` Segher Boessenkool 2019-03-26 22:59 ` Segher Boessenkool @ 2019-03-27 6:40 ` Christophe Leroy 2019-03-27 12:47 ` Segher Boessenkool 1 sibling, 1 reply; 18+ messages in thread From: Christophe Leroy @ 2019-03-27 6:40 UTC (permalink / raw) To: Segher Boessenkool; +Cc: linuxppc-dev, Joel Stanley Le 26/03/2019 à 23:29, Segher Boessenkool a écrit : > On Tue, Mar 26, 2019 at 03:12:31PM -0500, Segher Boessenkool wrote: >> On Tue, Mar 26, 2019 at 08:28:58PM +0100, Christophe Leroy wrote: >>> >>> >>> Le 26/03/2019 à 19:19, Segher Boessenkool a écrit : >>>> On Tue, Mar 26, 2019 at 07:55:33AM +0000, Christophe Leroy wrote: >>>>> STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4 >>>>> filesz 0x00000000 memsz 0x00000000 flags rwx >>>> >>>> You need to prevent this one somehow. What object file forces this? >>> >>> mpc885_ads_defconfig >> >> No, which object file, ".o file". Not defconfig :-) > > I tried to reproduce this. It does not fail with a ppc6xx_defconfig > build, and mpc885_ads_defconfig fails with So far, the only defconfig which fails for me is ppc64_defconfig, like Michael. 885_ads is ok, I just noticed the STACK header in vmlinux that is not there when the patch is not applies. > > INFO: Uncompressed kernel (size 0x435178) overlaps the address of the wrapper(0x400000) > INFO: Fixing the link_address of wrapper to (0x500000) > ln: failed to access 'arch/powerpc/boot/cuImage.mpc885ads': No such file or directory > > What is your GCC? [root@localhost linux-powerpc]# powerpc64-linux-gcc -v Using built-in specs. COLLECT_GCC=powerpc64-linux-gcc COLLECT_LTO_WRAPPER=/opt/gcc-8.1.0-nolibc/powerpc64-linux/bin/../libexec/gcc/powerpc64-linux/8.1.0/lto-wrapper Target: powerpc64-linux Configured with: /home/arnd/git/gcc/configure --target=powerpc64-linux --enable-targets=all --prefix=/home/arnd/cross/x86_64/gcc-8.1.0-nolibc/powerpc64-linux --enable-languages=c --without-headers --disable-bootstrap --disable-nls --disable-threads --disable-shared --disable-libmudflap --disable-libssp --disable-libgomp --disable-decimal-float --disable-libquadmath --disable-libatomic --disable-libcc1 --disable-libmpx --enable-checking=release Thread model: single gcc version 8.1.0 (GCC) [root@localhost linux-powerpc]# powerpc64-linux-ld -v GNU ld (GNU Binutils) 2.30 Christophe ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-27 6:40 ` Christophe Leroy @ 2019-03-27 12:47 ` Segher Boessenkool 2019-03-27 18:21 ` Segher Boessenkool 0 siblings, 1 reply; 18+ messages in thread From: Segher Boessenkool @ 2019-03-27 12:47 UTC (permalink / raw) To: Christophe Leroy; +Cc: linuxppc-dev, Joel Stanley On Wed, Mar 27, 2019 at 07:40:32AM +0100, Christophe Leroy wrote: > Le 26/03/2019 à 23:29, Segher Boessenkool a écrit : > >I tried to reproduce this. It does not fail with a ppc6xx_defconfig > >build, and mpc885_ads_defconfig fails with > > So far, the only defconfig which fails for me is ppc64_defconfig, like > Michael. Oh, I misunderstood then. Let me try that :-) > 885_ads is ok, I just noticed the STACK header in vmlinux that is not > there when the patch is not applies. Right... The linker generates that by default, it's nothing to worry about. > >What is your GCC? > > [root@localhost linux-powerpc]# powerpc64-linux-gcc -v > Using built-in specs. > COLLECT_GCC=powerpc64-linux-gcc > COLLECT_LTO_WRAPPER=/opt/gcc-8.1.0-nolibc/powerpc64-linux/bin/../libexec/gcc/powerpc64-linux/8.1.0/lto-wrapper > Target: powerpc64-linux > Configured with: /home/arnd/git/gcc/configure --target=powerpc64-linux > --enable-targets=all > --prefix=/home/arnd/cross/x86_64/gcc-8.1.0-nolibc/powerpc64-linux > --enable-languages=c --without-headers --disable-bootstrap --disable-nls > --disable-threads --disable-shared --disable-libmudflap --disable-libssp > --disable-libgomp --disable-decimal-float --disable-libquadmath > --disable-libatomic --disable-libcc1 --disable-libmpx > --enable-checking=release > Thread model: single > gcc version 8.1.0 (GCC) Okay cool, a plain GCC build, importantly not a vendor compiler. Built with my scripts no less ;-) > [root@localhost linux-powerpc]# powerpc64-linux-ld -v > GNU ld (GNU Binutils) 2.30 Segher ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-27 12:47 ` Segher Boessenkool @ 2019-03-27 18:21 ` Segher Boessenkool 2019-03-28 6:19 ` Christophe Leroy 0 siblings, 1 reply; 18+ messages in thread From: Segher Boessenkool @ 2019-03-27 18:21 UTC (permalink / raw) To: Christophe Leroy; +Cc: linuxppc-dev, Joel Stanley On Wed, Mar 27, 2019 at 07:47:55AM -0500, Segher Boessenkool wrote: > On Wed, Mar 27, 2019 at 07:40:32AM +0100, Christophe Leroy wrote: > > Le 26/03/2019 à 23:29, Segher Boessenkool a écrit : > > >I tried to reproduce this. It does not fail with a ppc6xx_defconfig > > >build, and mpc885_ads_defconfig fails with > > > > So far, the only defconfig which fails for me is ppc64_defconfig, like > > Michael. > > Oh, I misunderstood then. Let me try that :-) Yeah, okay, we should have some PHDRS statement here still. You can drop the dummy segment, and the notes segment as well, or you can keep the notes section in both the notes and kernel segments. (You patch doesn't apply btw, whitespace damage I think; will you send a new one?) Segher ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-27 18:21 ` Segher Boessenkool @ 2019-03-28 6:19 ` Christophe Leroy 2019-03-28 15:11 ` Segher Boessenkool 0 siblings, 1 reply; 18+ messages in thread From: Christophe Leroy @ 2019-03-28 6:19 UTC (permalink / raw) To: Segher Boessenkool, Joel Stanley; +Cc: linuxppc-dev Le 27/03/2019 à 19:21, Segher Boessenkool a écrit : > On Wed, Mar 27, 2019 at 07:47:55AM -0500, Segher Boessenkool wrote: >> On Wed, Mar 27, 2019 at 07:40:32AM +0100, Christophe Leroy wrote: >>> Le 26/03/2019 à 23:29, Segher Boessenkool a écrit : >>>> I tried to reproduce this. It does not fail with a ppc6xx_defconfig >>>> build, and mpc885_ads_defconfig fails with >>> >>> So far, the only defconfig which fails for me is ppc64_defconfig, like >>> Michael. >> >> Oh, I misunderstood then. Let me try that :-) > > Yeah, okay, we should have some PHDRS statement here still. You can drop > the dummy segment, and the notes segment as well, or you can keep the notes > section in both the notes and kernel segments. Is the note segment useful at all ? I guess if we decide to keep it, we should have a reason. > > (You patch doesn't apply btw, whitespace damage I think; will you send a > new one?) Originally the patch is by Joel Stanley <joel@jms.id.au> I guess he will send a v2 taking into account the discussion ? Or maybe you can send it yourself as you are probably the best person to explain in details the change in the commit message. Christophe ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-28 6:19 ` Christophe Leroy @ 2019-03-28 15:11 ` Segher Boessenkool 0 siblings, 0 replies; 18+ messages in thread From: Segher Boessenkool @ 2019-03-28 15:11 UTC (permalink / raw) To: Christophe Leroy; +Cc: linuxppc-dev, Joel Stanley On Thu, Mar 28, 2019 at 07:19:57AM +0100, Christophe Leroy wrote: > Le 27/03/2019 à 19:21, Segher Boessenkool a écrit : > >Yeah, okay, we should have some PHDRS statement here still. You can drop > >the dummy segment, and the notes segment as well, or you can keep the notes > >section in both the notes and kernel segments. > > Is the note segment useful at all ? I guess if we decide to keep it, we > should have a reason. I don't know if it is. $ readelf -x17 powerpc64/kernel/vmlinux Hex dump of section '.notes': 0xc0000000010d4128 00000004 00000014 00000003 474e5500 ............GNU. 0xc0000000010d4138 ba254e47 396b1745 176695d8 6b54c9e3 .%NG9k.E.f..kT.. 0xc0000000010d4148 959cedd7 00000006 00000001 00000100 ................ 0xc0000000010d4158 4c696e75 78000000 00000000 Linux....... Does that look useful? There's a build-id in there it seems. I don't know if any tools look at that, or how they find it. > >(You patch doesn't apply btw, whitespace damage I think; will you send a > >new one?) > > Originally the patch is by Joel Stanley <joel@jms.id.au> > > I guess he will send a v2 taking into account the discussion ? Please do Joel :-) Thanks in advance, etc. > Or maybe you can send it yourself as you are probably the best person to > explain in details the change in the commit message. I have no way of testing things properly. Segher ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-26 20:12 ` Segher Boessenkool 2019-03-26 22:29 ` Segher Boessenkool @ 2019-03-27 8:56 ` Christophe Leroy 2019-03-27 9:09 ` Christophe Leroy 1 sibling, 1 reply; 18+ messages in thread From: Christophe Leroy @ 2019-03-27 8:56 UTC (permalink / raw) To: Segher Boessenkool; +Cc: linuxppc-dev, Joel Stanley Le 26/03/2019 à 21:12, Segher Boessenkool a écrit : > On Tue, Mar 26, 2019 at 08:28:58PM +0100, Christophe Leroy wrote: >> >> >> Le 26/03/2019 à 19:19, Segher Boessenkool a écrit : >>> On Tue, Mar 26, 2019 at 07:55:33AM +0000, Christophe Leroy wrote: >>>> STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4 >>>> filesz 0x00000000 memsz 0x00000000 flags rwx >>> >>> You need to prevent this one somehow. What object file forces this? >> >> mpc885_ads_defconfig > > No, which object file, ".o file". Not defconfig :-) > Ok, how to I know that ? Is it based on some file flags or some headers ? Here is the list of headers in vmlinux.o, is there one that shouldn't exist ? vmlinux.o: file format elf32-powerpc Sections: Idx Name Size VMA LMA File off Algn 0 .text 003320c0 00000000 00000000 00001000 2**12 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 1 .head.text 00002340 00000000 00000000 003330c0 2**0 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 2 .init.text 00017cb8 00000000 00000000 00335400 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 3 .text.unlikely 00004154 00000000 00000000 0034d0b8 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 4 .ref.text 000013f0 00000000 00000000 0035120c 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 5 .softirqentry.text 00000258 00000000 00000000 003525fc 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 6 .sched.text 00003930 00000000 00000000 00352854 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 7 .cpuidle.text 0000007c 00000000 00000000 00356184 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 8 .meminit.text 00000584 00000000 00000000 00356200 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 9 .exit.text 00000800 00000000 00000000 00356784 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 10 .rodata 0001d7a7 00000000 00000000 00356f90 2**4 CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA 11 .init.rodata 00000790 00000000 00000000 00374738 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA 12 .rodata.str1.4 00022329 00000000 00000000 00374ec8 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 13 __param 000003c0 00000000 00000000 003971f4 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA 14 .note.Linux 00000018 00000000 00000000 003975b4 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 15 __ex_table 00000ca8 00000000 00000000 003975cc 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA 16 __ftr_alt_97 00000008 00000000 00000000 00398274 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 17 __ftr_fixup 00000198 00000000 00000000 00398280 2**3 CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA 18 __reservedmem_of_table 000000c4 00000000 00000000 00398418 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA 19 __irqchip_of_table_end 000000c4 00000000 00000000 003984dc 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 20 __modver 00000008 00000000 00000000 003985a0 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA 21 __reservedmem_of_table_end 000000c4 00000000 00000000 003985a8 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 22 .eh_frame 00134eb8 00000000 00000000 0039866c 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA 23 .fixup 00000cc8 00000000 00000000 004cd524 2**0 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 24 .data 00013668 00000000 00000000 004cf000 2**12 CONTENTS, ALLOC, LOAD, RELOC, DATA 25 __bug_table 00006ce4 00000000 00000000 004e2668 2**0 CONTENTS, ALLOC, LOAD, RELOC, DATA 26 .data..read_mostly 00001ce8 00000000 00000000 004e9350 2**3 CONTENTS, ALLOC, LOAD, RELOC, DATA 27 .init.data 0000244c 00000000 00000000 004eb038 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 28 .init.setup 0000039c 00000000 00000000 004ed484 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 29 .initcallrootfs.init 00000004 00000000 00000000 004ed820 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 30 .data..page_aligned 00003000 00000000 00000000 004ee000 2**12 CONTENTS, ALLOC, LOAD, DATA 31 .initcall3.init 00000008 00000000 00000000 004f1000 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 32 .initcallearly.init 00000010 00000000 00000000 004f1008 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 33 .initcall6.init 00000120 00000000 00000000 004f1018 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 34 .initcall4.init 00000080 00000000 00000000 004f1138 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 35 .data.once 0000009e 00000000 00000000 004f11b8 2**0 CONTENTS, ALLOC, LOAD, DATA 36 .initcall1.init 00000048 00000000 00000000 004f1258 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 37 .initcall7.init 00000030 00000000 00000000 004f12a0 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 38 .machine.desc 000000e0 00000000 00000000 004f12d0 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 39 .data..cacheline_aligned 00005000 00000000 00000000 004f13b0 2**4 CONTENTS, ALLOC, LOAD, DATA 40 .data..ro_after_init 000004b8 00000000 00000000 004f63b0 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 41 .initcall2.init 00000018 00000000 00000000 004f6868 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 42 .initcall5.init 00000070 00000000 00000000 004f6880 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 43 .meminit.data 00000010 00000000 00000000 004f68f0 2**2 CONTENTS, ALLOC, LOAD, DATA 44 .ref.data 00000578 00000000 00000000 004f6900 2**2 CONTENTS, ALLOC, LOAD, DATA 45 .exitcall.exit 000000b0 00000000 00000000 004f6e78 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 46 .initcall0.init 0000000c 00000000 00000000 004f6f28 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 47 .con_initcall.init 00000004 00000000 00000000 004f6f34 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 48 .initcall7s.init 00000004 00000000 00000000 004f6f38 2**2 CONTENTS, ALLOC, LOAD, RELOC, DATA 49 .data..shared_aligned 00000118 00000000 00000000 004f6f40 2**4 CONTENTS, ALLOC, LOAD, DATA 50 .sdata 00000188 00000000 00000000 004f7058 2**3 CONTENTS, ALLOC, LOAD, RELOC, DATA 51 .sbss 000002d4 00000000 00000000 004f71e0 2**3 ALLOC 52 .bss 0001e728 00000000 00000000 004f71e0 2**4 ALLOC 53 .stab 00000270 00000000 00000000 004f71e0 2**2 CONTENTS, RELOC, READONLY, DEBUGGING 54 .stabstr 00000335 00000000 00000000 004f7450 2**0 CONTENTS, READONLY, DEBUGGING 55 .comment 0000339c 00000000 00000000 004f7785 2**0 CONTENTS, READONLY 56 .note.GNU-stack 00000000 00000000 00000000 004fab21 2**0 CONTENTS, READONLY, CODE 57 .debug_aranges 000077e8 00000000 00000000 004fab28 2**3 CONTENTS, RELOC, READONLY, DEBUGGING 58 .debug_info 030a43d8 00000000 00000000 00502310 2**0 CONTENTS, RELOC, READONLY, DEBUGGING 59 .debug_abbrev 0018bdc0 00000000 00000000 035a66e8 2**0 CONTENTS, READONLY, DEBUGGING 60 .debug_line 005d69b9 00000000 00000000 037324a8 2**0 CONTENTS, RELOC, READONLY, DEBUGGING 61 .debug_frame 00134eb8 00000000 00000000 03d08e64 2**2 CONTENTS, RELOC, READONLY, DEBUGGING 62 .debug_str 01b24fc1 00000000 00000000 03e3dd1c 2**0 CONTENTS, READONLY, DEBUGGING 63 .debug_loc 00242597 00000000 00000000 05962cdd 2**0 CONTENTS, RELOC, READONLY, DEBUGGING 64 .debug_ranges 001ea010 00000000 00000000 05ba5274 2**0 CONTENTS, RELOC, READONLY, DEBUGGING 65 .gnu.attributes 00000012 00000000 00000000 05d8f284 2**0 CONTENTS, READONLY Christophe ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-27 8:56 ` Christophe Leroy @ 2019-03-27 9:09 ` Christophe Leroy 0 siblings, 0 replies; 18+ messages in thread From: Christophe Leroy @ 2019-03-27 9:09 UTC (permalink / raw) To: Segher Boessenkool; +Cc: linuxppc-dev, Joel Stanley Le 27/03/2019 à 09:56, Christophe Leroy a écrit : > > > Le 26/03/2019 à 21:12, Segher Boessenkool a écrit : >> On Tue, Mar 26, 2019 at 08:28:58PM +0100, Christophe Leroy wrote: >>> >>> >>> Le 26/03/2019 à 19:19, Segher Boessenkool a écrit : >>>> On Tue, Mar 26, 2019 at 07:55:33AM +0000, Christophe Leroy wrote: >>>>> STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align >>>>> 2**4 >>>>> filesz 0x00000000 memsz 0x00000000 flags rwx >>>> >>>> You need to prevent this one somehow. What object file forces this? >>> >>> mpc885_ads_defconfig >> >> No, which object file, ".o file". Not defconfig :-) >> > > Ok, how to I know that ? Is it based on some file flags or some headers ? > > Here is the list of headers in vmlinux.o, is there one that shouldn't > exist ? > > > vmlinux.o: file format elf32-powerpc > > Sections: > Idx Name Size VMA LMA File off Algn > 0 .text 003320c0 00000000 00000000 00001000 2**12 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE > 1 .head.text 00002340 00000000 00000000 003330c0 2**0 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE > 2 .init.text 00017cb8 00000000 00000000 00335400 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE > 3 .text.unlikely 00004154 00000000 00000000 0034d0b8 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE > 4 .ref.text 000013f0 00000000 00000000 0035120c 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE > 5 .softirqentry.text 00000258 00000000 00000000 003525fc 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE > 6 .sched.text 00003930 00000000 00000000 00352854 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE > 7 .cpuidle.text 0000007c 00000000 00000000 00356184 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE > 8 .meminit.text 00000584 00000000 00000000 00356200 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE > 9 .exit.text 00000800 00000000 00000000 00356784 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE > 10 .rodata 0001d7a7 00000000 00000000 00356f90 2**4 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA > 11 .init.rodata 00000790 00000000 00000000 00374738 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA > 12 .rodata.str1.4 00022329 00000000 00000000 00374ec8 2**2 > CONTENTS, ALLOC, LOAD, READONLY, DATA > 13 __param 000003c0 00000000 00000000 003971f4 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA > 14 .note.Linux 00000018 00000000 00000000 003975b4 2**2 > CONTENTS, ALLOC, LOAD, READONLY, DATA > 15 __ex_table 00000ca8 00000000 00000000 003975cc 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA > 16 __ftr_alt_97 00000008 00000000 00000000 00398274 2**2 > CONTENTS, ALLOC, LOAD, READONLY, DATA > 17 __ftr_fixup 00000198 00000000 00000000 00398280 2**3 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA > 18 __reservedmem_of_table 000000c4 00000000 00000000 00398418 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA > 19 __irqchip_of_table_end 000000c4 00000000 00000000 003984dc 2**2 > CONTENTS, ALLOC, LOAD, READONLY, DATA > 20 __modver 00000008 00000000 00000000 003985a0 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA > 21 __reservedmem_of_table_end 000000c4 00000000 00000000 003985a8 > 2**2 > CONTENTS, ALLOC, LOAD, READONLY, DATA > 22 .eh_frame 00134eb8 00000000 00000000 0039866c 2**2 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, DATA > 23 .fixup 00000cc8 00000000 00000000 004cd524 2**0 > CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE > 24 .data 00013668 00000000 00000000 004cf000 2**12 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 25 __bug_table 00006ce4 00000000 00000000 004e2668 2**0 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 26 .data..read_mostly 00001ce8 00000000 00000000 004e9350 2**3 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 27 .init.data 0000244c 00000000 00000000 004eb038 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 28 .init.setup 0000039c 00000000 00000000 004ed484 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 29 .initcallrootfs.init 00000004 00000000 00000000 004ed820 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 30 .data..page_aligned 00003000 00000000 00000000 004ee000 2**12 > CONTENTS, ALLOC, LOAD, DATA > 31 .initcall3.init 00000008 00000000 00000000 004f1000 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 32 .initcallearly.init 00000010 00000000 00000000 004f1008 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 33 .initcall6.init 00000120 00000000 00000000 004f1018 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 34 .initcall4.init 00000080 00000000 00000000 004f1138 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 35 .data.once 0000009e 00000000 00000000 004f11b8 2**0 > CONTENTS, ALLOC, LOAD, DATA > 36 .initcall1.init 00000048 00000000 00000000 004f1258 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 37 .initcall7.init 00000030 00000000 00000000 004f12a0 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 38 .machine.desc 000000e0 00000000 00000000 004f12d0 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 39 .data..cacheline_aligned 00005000 00000000 00000000 004f13b0 2**4 > CONTENTS, ALLOC, LOAD, DATA > 40 .data..ro_after_init 000004b8 00000000 00000000 004f63b0 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 41 .initcall2.init 00000018 00000000 00000000 004f6868 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 42 .initcall5.init 00000070 00000000 00000000 004f6880 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 43 .meminit.data 00000010 00000000 00000000 004f68f0 2**2 > CONTENTS, ALLOC, LOAD, DATA > 44 .ref.data 00000578 00000000 00000000 004f6900 2**2 > CONTENTS, ALLOC, LOAD, DATA > 45 .exitcall.exit 000000b0 00000000 00000000 004f6e78 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 46 .initcall0.init 0000000c 00000000 00000000 004f6f28 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 47 .con_initcall.init 00000004 00000000 00000000 004f6f34 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 48 .initcall7s.init 00000004 00000000 00000000 004f6f38 2**2 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 49 .data..shared_aligned 00000118 00000000 00000000 004f6f40 2**4 > CONTENTS, ALLOC, LOAD, DATA > 50 .sdata 00000188 00000000 00000000 004f7058 2**3 > CONTENTS, ALLOC, LOAD, RELOC, DATA > 51 .sbss 000002d4 00000000 00000000 004f71e0 2**3 > ALLOC > 52 .bss 0001e728 00000000 00000000 004f71e0 2**4 > ALLOC > 53 .stab 00000270 00000000 00000000 004f71e0 2**2 > CONTENTS, RELOC, READONLY, DEBUGGING > 54 .stabstr 00000335 00000000 00000000 004f7450 2**0 > CONTENTS, READONLY, DEBUGGING > 55 .comment 0000339c 00000000 00000000 004f7785 2**0 > CONTENTS, READONLY > 56 .note.GNU-stack 00000000 00000000 00000000 004fab21 2**0 > CONTENTS, READONLY, CODE > 57 .debug_aranges 000077e8 00000000 00000000 004fab28 2**3 > CONTENTS, RELOC, READONLY, DEBUGGING > 58 .debug_info 030a43d8 00000000 00000000 00502310 2**0 > CONTENTS, RELOC, READONLY, DEBUGGING > 59 .debug_abbrev 0018bdc0 00000000 00000000 035a66e8 2**0 > CONTENTS, READONLY, DEBUGGING > 60 .debug_line 005d69b9 00000000 00000000 037324a8 2**0 > CONTENTS, RELOC, READONLY, DEBUGGING > 61 .debug_frame 00134eb8 00000000 00000000 03d08e64 2**2 > CONTENTS, RELOC, READONLY, DEBUGGING > 62 .debug_str 01b24fc1 00000000 00000000 03e3dd1c 2**0 > CONTENTS, READONLY, DEBUGGING > 63 .debug_loc 00242597 00000000 00000000 05962cdd 2**0 > CONTENTS, RELOC, READONLY, DEBUGGING > 64 .debug_ranges 001ea010 00000000 00000000 05ba5274 2**0 > CONTENTS, RELOC, READONLY, DEBUGGING > 65 .gnu.attributes 00000012 00000000 00000000 05d8f284 2**0 > CONTENTS, READONLY > Using readelf, I get the following output [root@localhost linux-powerpc]# powerpc64-linux-readelf -l vmlinux Elf file type is EXEC (Executable file) Entry point 0xc0000000 There are 3 program headers, starting at offset 52 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align LOAD 0x010000 0xc0000000 0x00000000 0x3f8ce4 0x417a08 RWE 0x10000 NOTE 0x3c3ca8 0xc03b3ca8 0x003b3ca8 0x0003c 0x0003c R 0x4 GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RWE 0x10 Section to Segment mapping: Segment Sections... 00 .head.text .text .rodata __param __modver __ex_table .notes .init.text .exit.text .init.data .init.setup .initcall.init .con_initcall.init __ftr_fixup .machine.desc .data .data..init_task .data..page_aligned .data..cacheline_aligned .data..read_mostly __bug_table .sbss .bss 01 .notes 02 Is it the section .note.GNU-stack which implies GNU_STACK program header ? That section seems to be present in most .o files. Christophe ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds 2019-03-26 0:55 ` Michael Ellerman 2019-03-26 7:55 ` Christophe Leroy @ 2019-03-26 8:08 ` Christophe Leroy 1 sibling, 0 replies; 18+ messages in thread From: Christophe Leroy @ 2019-03-26 8:08 UTC (permalink / raw) To: Michael Ellerman, Joel Stanley, linuxppc-dev Le 26/03/2019 à 01:55, Michael Ellerman a écrit : > Joel Stanley <joel@jms.id.au> writes: >> Segher added some workarounds for GCC 4.2 and bintuils 2.18. We now set >> 4.6 and 2.20 as the minimum, so they can be dropped. >> >> This is mostly a revert of c69cccc95fe4 ("powerpc: Fix build bug with >> binutils < 2.18 and GCC < 4.2"). >> >> Signed-off-by: Joel Stanley <joel@jms.id.au> >> --- >> arch/powerpc/kernel/vmlinux.lds.S | 35 ++++--------------------------- >> 1 file changed, 4 insertions(+), 31 deletions(-) > > Seems this breaks some toolchains, at least the one from kernel.org: > > /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld: .tmp_vmlinux1: Not enough room for program headers, try linking with -N > /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld: final link failed: Bad value > make[1]: *** [/kisskb/src/Makefile:1024: vmlinux] Error 1 > > http://kisskb.ellerman.id.au/kisskb/buildresult/13743374/ > > Not sure why. > > That's binutils 2.30. > ld doc says: 6586 @cindex not enough room for program headers 6587 @cindex program headers, not enough room 6588 When producing an ELF output file, if the linker script uses the 6589 @code{SIZEOF_HEADERS} builtin function, the linker must compute the 6590 number of program headers before it has determined all the section 6591 addresses and sizes. If the linker later discovers that it needs 6592 additional program headers, it will report an error @samp{not enough 6593 room for program headers}. To avoid this error, you must avoid using 6594 the @code{SIZEOF_HEADERS} function, or you must rework your linker 6595 script to avoid forcing the linker to use additional program headers, or 6596 you must define the program headers yourself using the @code{PHDRS} 6597 command (@pxref{PHDRS}). 6598 @end table What about just removing the dummy section, and keeping everything else ? : diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index 060a1acd7c6d..511bff8e4a8f 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S @@ -20,20 +20,6 @@ ENTRY(_stext) PHDRS { kernel PT_LOAD FLAGS(7); /* RWX */ notes PT_NOTE FLAGS(0); - dummy PT_NOTE FLAGS(0); - - /* binutils < 2.18 has a bug that makes it misbehave when taking an - ELF file with all segments at load address 0 as input. This - happens when running "strip" on vmlinux, because of the AT() magic - in this linker script. People using GCC >= 4.2 won't run into - this problem, because the "build-id" support will put some data - into the "notes" segment (at a non-zero load address). - - To work around this, we force some data into both the "dummy" - segment and the kernel segment, so the dummy segment will get a - non-zero load address. It's not enough to always create the - "notes" segment, since if nothing gets assigned to it, its load - address will be zero. */ } #ifdef CONFIG_PPC64 @@ -179,14 +165,6 @@ SECTIONS NOTES :kernel :notes - /* The dummy segment contents for the bug workaround mentioned above - near PHDRS. */ - .dummy : AT(ADDR(.dummy) - LOAD_OFFSET) { - LONG(0) - LONG(0) - LONG(0) - } :kernel :dummy - /* * Init sections discarded at runtime */ Christophe ^ permalink raw reply related [flat|nested] 18+ messages in thread
end of thread, other threads:[~2019-03-28 15:14 UTC | newest] Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-03-21 0:32 [PATCH] powerpc: vmlinux.lds: Drop Binutils 2.18 workarounds Joel Stanley 2019-03-21 23:34 ` Segher Boessenkool 2019-03-22 0:22 ` Michael Ellerman 2019-03-26 0:55 ` Michael Ellerman 2019-03-26 7:55 ` Christophe Leroy 2019-03-26 18:19 ` Segher Boessenkool 2019-03-26 19:28 ` Christophe Leroy 2019-03-26 20:12 ` Segher Boessenkool 2019-03-26 22:29 ` Segher Boessenkool 2019-03-26 22:59 ` Segher Boessenkool 2019-03-27 6:40 ` Christophe Leroy 2019-03-27 12:47 ` Segher Boessenkool 2019-03-27 18:21 ` Segher Boessenkool 2019-03-28 6:19 ` Christophe Leroy 2019-03-28 15:11 ` Segher Boessenkool 2019-03-27 8:56 ` Christophe Leroy 2019-03-27 9:09 ` Christophe Leroy 2019-03-26 8:08 ` Christophe Leroy
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).