* [PATCH] powerpc/vdso32: Drop -mabi=elfv1 for 32 bit objects @ 2019-01-10 1:42 Joel Stanley 2019-01-10 7:10 ` Christophe Leroy 0 siblings, 1 reply; 4+ messages in thread From: Joel Stanley @ 2019-01-10 1:42 UTC (permalink / raw) To: linuxppc-dev; +Cc: Nick Desaulniers, Daniel Axtens From: Daniel Axtens <dja@axtens.net> All 64-bit objects need to specify the flag to be compiled correctly, we just don't need it for 32-bit objects. GCC just ignored it, but clang doesn't. Link: https://github.com/ClangBuiltLinux/linux/issues/240 Signed-off-by: Daniel Axtens <dja@axtens.net> Signed-off-by: Joel Stanley <joel@jms.id.au> --- arch/powerpc/kernel/vdso32/Makefile | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/powerpc/kernel/vdso32/Makefile b/arch/powerpc/kernel/vdso32/Makefile index 50112d4473bb..6bd41756e0c7 100644 --- a/arch/powerpc/kernel/vdso32/Makefile +++ b/arch/powerpc/kernel/vdso32/Makefile @@ -34,6 +34,20 @@ obj-y += vdso32_wrapper.o extra-y += vdso32.lds CPPFLAGS_vdso32.lds += -P -C -Upowerpc +# clang refuses to accept -mabi=elfv1 for when using the +# 64-bit target in 32-bit mode +ifdef CONFIG_CC_IS_CLANG +ifdef CONFIG_PPC64 +AFLAGS_REMOVE_getcpu.o += -mabi=elfv1 +endif +AFLAGS_REMOVE_sigtramp.o += -mabi=elfv1 +AFLAGS_REMOVE_gettimeofday.o += -mabi=elfv1 +AFLAGS_REMOVE_datapage.o += -mabi=elfv1 +AFLAGS_REMOVE_cacheflush.o += -mabi=elfv1 +AFLAGS_REMOVE_note.o += -mabi=elfv1 +endif + + # Force dependency (incbin is bad) $(obj)/vdso32_wrapper.o : $(obj)/vdso32.so -- 2.19.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] powerpc/vdso32: Drop -mabi=elfv1 for 32 bit objects 2019-01-10 1:42 [PATCH] powerpc/vdso32: Drop -mabi=elfv1 for 32 bit objects Joel Stanley @ 2019-01-10 7:10 ` Christophe Leroy 2019-01-10 14:45 ` Daniel Axtens 2019-01-10 15:28 ` Segher Boessenkool 0 siblings, 2 replies; 4+ messages in thread From: Christophe Leroy @ 2019-01-10 7:10 UTC (permalink / raw) To: Joel Stanley, linuxppc-dev; +Cc: Nick Desaulniers, Daniel Axtens Le 10/01/2019 à 02:42, Joel Stanley a écrit : > From: Daniel Axtens <dja@axtens.net> > > All 64-bit objects need to specify the flag to be compiled correctly, we > just don't need it for 32-bit objects. GCC just ignored it, but clang > doesn't. > > Link: https://github.com/ClangBuiltLinux/linux/issues/240 > Signed-off-by: Daniel Axtens <dja@axtens.net> > Signed-off-by: Joel Stanley <joel@jms.id.au> > --- > arch/powerpc/kernel/vdso32/Makefile | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/arch/powerpc/kernel/vdso32/Makefile b/arch/powerpc/kernel/vdso32/Makefile > index 50112d4473bb..6bd41756e0c7 100644 > --- a/arch/powerpc/kernel/vdso32/Makefile > +++ b/arch/powerpc/kernel/vdso32/Makefile > @@ -34,6 +34,20 @@ obj-y += vdso32_wrapper.o > extra-y += vdso32.lds > CPPFLAGS_vdso32.lds += -P -C -Upowerpc > > +# clang refuses to accept -mabi=elfv1 for when using the > +# 64-bit target in 32-bit mode > +ifdef CONFIG_CC_IS_CLANG If -mabi=elfv1 is unneeded even for GCC, why depend on CLANG ? > +ifdef CONFIG_PPC64 > +AFLAGS_REMOVE_getcpu.o += -mabi=elfv1 > +endif Why only this one is inside the ifdef ? powerpc Makefile only set -mabi=elfv1 when CONFIG_PPC64 is set, so all objects should be handled the same way. And would it harm just doing it all the time, regardless of CONFIG_PPC64 ? Christophe > +AFLAGS_REMOVE_sigtramp.o += -mabi=elfv1 > +AFLAGS_REMOVE_gettimeofday.o += -mabi=elfv1 > +AFLAGS_REMOVE_datapage.o += -mabi=elfv1 > +AFLAGS_REMOVE_cacheflush.o += -mabi=elfv1 > +AFLAGS_REMOVE_note.o += -mabi=elfv1 > +endif > + > + > # Force dependency (incbin is bad) > $(obj)/vdso32_wrapper.o : $(obj)/vdso32.so > > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] powerpc/vdso32: Drop -mabi=elfv1 for 32 bit objects 2019-01-10 7:10 ` Christophe Leroy @ 2019-01-10 14:45 ` Daniel Axtens 2019-01-10 15:28 ` Segher Boessenkool 1 sibling, 0 replies; 4+ messages in thread From: Daniel Axtens @ 2019-01-10 14:45 UTC (permalink / raw) To: Christophe Leroy, Joel Stanley, linuxppc-dev; +Cc: Nick Desaulniers Christophe Leroy <christophe.leroy@c-s.fr> writes: > Le 10/01/2019 à 02:42, Joel Stanley a écrit : >> From: Daniel Axtens <dja@axtens.net> >> >> All 64-bit objects need to specify the flag to be compiled correctly, we >> just don't need it for 32-bit objects. GCC just ignored it, but clang >> doesn't. >> >> Link: https://github.com/ClangBuiltLinux/linux/issues/240 >> Signed-off-by: Daniel Axtens <dja@axtens.net> >> Signed-off-by: Joel Stanley <joel@jms.id.au> >> --- >> arch/powerpc/kernel/vdso32/Makefile | 14 ++++++++++++++ >> 1 file changed, 14 insertions(+) >> >> diff --git a/arch/powerpc/kernel/vdso32/Makefile b/arch/powerpc/kernel/vdso32/Makefile >> index 50112d4473bb..6bd41756e0c7 100644 >> --- a/arch/powerpc/kernel/vdso32/Makefile >> +++ b/arch/powerpc/kernel/vdso32/Makefile >> @@ -34,6 +34,20 @@ obj-y += vdso32_wrapper.o >> extra-y += vdso32.lds >> CPPFLAGS_vdso32.lds += -P -C -Upowerpc >> >> +# clang refuses to accept -mabi=elfv1 for when using the >> +# 64-bit target in 32-bit mode >> +ifdef CONFIG_CC_IS_CLANG > > If -mabi=elfv1 is unneeded even for GCC, why depend on CLANG ? > >> +ifdef CONFIG_PPC64 >> +AFLAGS_REMOVE_getcpu.o += -mabi=elfv1 >> +endif > > Why only this one is inside the ifdef ? powerpc Makefile only set > -mabi=elfv1 when CONFIG_PPC64 is set, so all objects should be handled > the same way. > > And would it harm just doing it all the time, regardless of CONFIG_PPC64 ? I designed the patch to mirror some code earlier on, and to be conservative in what it did. I have no issue with it being restructured, but I probably won't have the time to do it for a month or so. I'm very happy for you or Joel to rework it and to test any resulting patches. Regards, Daniel > > Christophe > >> +AFLAGS_REMOVE_sigtramp.o += -mabi=elfv1 >> +AFLAGS_REMOVE_gettimeofday.o += -mabi=elfv1 >> +AFLAGS_REMOVE_datapage.o += -mabi=elfv1 >> +AFLAGS_REMOVE_cacheflush.o += -mabi=elfv1 >> +AFLAGS_REMOVE_note.o += -mabi=elfv1 >> +endif >> + >> + >> # Force dependency (incbin is bad) >> $(obj)/vdso32_wrapper.o : $(obj)/vdso32.so >> >> ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] powerpc/vdso32: Drop -mabi=elfv1 for 32 bit objects 2019-01-10 7:10 ` Christophe Leroy 2019-01-10 14:45 ` Daniel Axtens @ 2019-01-10 15:28 ` Segher Boessenkool 1 sibling, 0 replies; 4+ messages in thread From: Segher Boessenkool @ 2019-01-10 15:28 UTC (permalink / raw) To: Christophe Leroy Cc: Nick Desaulniers, linuxppc-dev, Joel Stanley, Daniel Axtens On Thu, Jan 10, 2019 at 08:10:43AM +0100, Christophe Leroy wrote: > Le 10/01/2019 à 02:42, Joel Stanley a écrit : > >From: Daniel Axtens <dja@axtens.net> > > > >All 64-bit objects need to specify the flag to be compiled correctly, we > >just don't need it for 32-bit objects. GCC just ignored it, but clang > >doesn't. > >+# clang refuses to accept -mabi=elfv1 for when using the > >+# 64-bit target in 32-bit mode > >+ifdef CONFIG_CC_IS_CLANG > > If -mabi=elfv1 is unneeded even for GCC, why depend on CLANG ? It is nonsensical to specify this flag when compiling -m32. Apparently clang uses -mabi= to set the current ABI, which isn't quite correct (although of course the name suggests that's what it does ;-) ) '-mabi=ABI-TYPE' Extend the current ABI with a particular extension, or remove such extension. Valid values are 'altivec', 'no-altivec', 'ibmlongdouble', 'ieeelongdouble', 'elfv1', 'elfv2'. (It is harmless to use it with -m32 on GCC, because the option just sets a flag, internally). > >+ifdef CONFIG_PPC64 > >+AFLAGS_REMOVE_getcpu.o += -mabi=elfv1 > >+endif Don't remove it, just never set it where not needed? Segher ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-01-10 16:45 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-01-10 1:42 [PATCH] powerpc/vdso32: Drop -mabi=elfv1 for 32 bit objects Joel Stanley 2019-01-10 7:10 ` Christophe Leroy 2019-01-10 14:45 ` Daniel Axtens 2019-01-10 15:28 ` Segher Boessenkool
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).