Messages in this thread | | | Subject | Re: [PATCH 1/2] powerpc/vdso64: link vdso64 with linker | From | Christophe Leroy <> | Date | Fri, 23 Apr 2021 19:18:34 +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? > > 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?
One comment on your rebased patch:
> diff --git a/arch/powerpc/include/asm/vdso.h b/arch/powerpc/include/asm/vdso.h > index 8542e9bbeead..0bd06ec06aaa 100644 > --- a/arch/powerpc/include/asm/vdso.h > +++ b/arch/powerpc/include/asm/vdso.h > @@ -25,19 +25,7 @@ int vdso_getcpu_init(void); > > #else /* __ASSEMBLY__ */ > > -#ifdef __VDSO64__ > -#define V_FUNCTION_BEGIN(name) \ > - .globl name; \ > - name: \ > - > -#define V_FUNCTION_END(name) \ > - .size name,.-name; > - > -#define V_LOCAL_FUNC(name) (name) > -#endif /* __VDSO64__ */ > - > -#ifdef __VDSO32__ > - > +#if defined(__VDSO32__) || defined (__VDSO64__)
You always have either __VDSO32__ or __VDSO64__ so this #if is pointless
> #define V_FUNCTION_BEGIN(name) \ > .globl name; \ > .type name,@function; \ > @@ -47,8 +35,7 @@ int vdso_getcpu_init(void); > .size name,.-name; > > #define V_LOCAL_FUNC(name) (name) > - > -#endif /* __VDSO32__ */ > +#endif /* __VDSO{32|64}__ */ > > #endif /* __ASSEMBLY__ */ >
Christophe
| |