Messages in this thread | | | Subject | Re: [PATCH 1/2] powerpc/vdso64: link vdso64 with linker | From | Christophe Leroy <> | Date | Fri, 23 Apr 2021 09:40:01 +0200 |
| |
Le 23/04/2021 à 00:44, Nick Desaulniers a écrit : > On Wed, Sep 2, 2020 at 11:02 AM Christophe Leroy > <christophe.leroy@csgroup.eu> wrote: >> >> >> >> Le 02/09/2020 à 19:41, Nick Desaulniers a écrit : >>> On Wed, Sep 2, 2020 at 5:14 AM Michael Ellerman <mpe@ellerman.id.au> wrote: >>>> >>>> Nick Desaulniers <ndesaulniers@google.com> writes: >>>>> Fixes: commit f2af201002a8 ("powerpc/build: vdso linker warning for orphan sections") >>>> >>>> I think I'll just revert that for v5.9 ? >>> >>> SGTM; you'll probably still want these changes with some modifications >>> at some point; vdso32 did have at least one orphaned section, and will >>> be important for hermetic builds. Seeing crashes in supported >>> versions of the tools ties our hands at the moment. >>> >> >> Keeping the tool problem aside with binutils 2.26, do you have a way to >> really link an elf32ppc object when building vdso32 for PPC64 ? > > Sorry, I'm doing a bug scrub and found > https://github.com/ClangBuiltLinux/linux/issues/774 still open (and my > reply to this thread still in Drafts; never sent). With my patches > rebased: > $ file arch/powerpc/kernel/vdso32/vdso32.so > arch/powerpc/kernel/vdso32/vdso32.so: ELF 32-bit MSB shared object, > PowerPC or cisco 4500, version 1 (SYSV), dynamically linked, stripped > > Are you still using 2.26?
Yes, our production kernels and applications are built with gcc 5.5 and binutils 2.26
> > I'm not able to repro Nathan's reported issue from > https://lore.kernel.org/lkml/20200902052123.GA2687902@ubuntu-n2-xlarge-x86/, > so I'm curious if I should resend the rebased patches as v2? >
I can't remember what was all this discussion about.
I gave a try to your rebased patches.
Still an issue with binutils 2.26:
VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg ppc-linux-ld: warning: orphan section `.rela.got' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn'. ppc-linux-ld: warning: orphan section `.rela.plt' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn'. ppc-linux-ld: warning: orphan section `.glink' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.glink'. ppc-linux-ld: warning: orphan section `.iplt' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.iplt'. ppc-linux-ld: warning: orphan section `.rela.iplt' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn'. ppc-linux-ld: warning: orphan section `.rela.text' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn'. /bin/sh: line 1: 7850 Segmentation fault (core dumped) ppc-linux-ld -EB -m elf32ppc -shared -soname linux-vdso32.so.1 --eh-frame-hdr --orphan-handling=warn -T arch/powerpc/kernel/vdso32/vdso32.lds arch/powerpc/kernel/vdso32/sigtramp.o arch/powerpc/kernel/vdso32/gettimeofday.o arch/powerpc/kernel/vdso32/datapage.o arch/powerpc/kernel/vdso32/cacheflush.o arch/powerpc/kernel/vdso32/note.o arch/powerpc/kernel/vdso32/getcpu.o arch/powerpc/kernel/vdso32/vgettimeofday.o -o arch/powerpc/kernel/vdso32/vdso32.so.dbg make[2]: *** [arch/powerpc/kernel/vdso32/vdso32.so.dbg] Error 139 make[2]: *** Deleting file `arch/powerpc/kernel/vdso32/vdso32.so.dbg'
With gcc 10.1 and binutils 2.34 I get:
PPC32 build:
VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg powerpc64-linux-ld: warning: orphan section `.rela.got' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.rela.plt' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.glink' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.glink' powerpc64-linux-ld: warning: orphan section `.iplt' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.iplt' powerpc64-linux-ld: warning: orphan section `.rela.iplt' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.rela.branch_lt' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.rela.text' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn'
PPC64 build:
VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg powerpc64-linux-ld: warning: orphan section `.rela.got' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.rela.plt' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.glink' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.glink' powerpc64-linux-ld: warning: orphan section `.iplt' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.iplt' powerpc64-linux-ld: warning: orphan section `.rela.iplt' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.rela.branch_lt' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.rela.text' from `arch/powerpc/kernel/vdso32/sigtramp.o' being placed in section `.rela.dyn' VDSOSYM include/generated/vdso32-offsets.h VDSO64L arch/powerpc/kernel/vdso64/vdso64.so.dbg powerpc64-linux-ld: warning: orphan section `.iplt' from `linker stubs' being placed in section `.iplt' powerpc64-linux-ld: warning: orphan section `.rela.iplt' from `linker stubs' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.rela.branch_lt' from `linker stubs' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.rela.branch_lt' from `linker stubs' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.plt' from `linker stubs' being placed in section `.plt' powerpc64-linux-ld: warning: orphan section `.rela.plt' from `linker stubs' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.rela.got' from `linker stubs' being placed in section `.rela.dyn' powerpc64-linux-ld: warning: orphan section `.rela.opd' from `linker stubs' being placed in section `.rela.dyn'
Christophe
| |