Message ID | 20241107112646.32401-1-mpe@ellerman.id.au (mailing list archive) |
---|---|
State | Accepted |
Commit | a5371018eefdd81f4152926a6d2b9480a75ac2a6 |
Headers | show |
Series | powerpc/Makefile: Allow overriding CPP | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/github-powerpc_ppctests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_clang | success | Successfully ran 5 jobs. |
snowpatch_ozlabs/github-powerpc_selftests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_sparse | success | Successfully ran 4 jobs. |
snowpatch_ozlabs/github-powerpc_kernel_qemu | success | Successfully ran 21 jobs. |
On Thu, Nov 07, 2024 at 10:26:46PM +1100, Michael Ellerman wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Unlike all other arches, powerpc doesn't allow the user to override CPP, > because it sets it unconditionally in the arch Makefile. This can lead > to strange build failures. > > Instead add the required flags to KBUILD_CPPFLAGS, which are passed > to CPP, CC and AS invocations by the generic Makefile logic. > > Reported-by: Arnd Bergmann <arnd@arndb.de> > Closes: https://lore.kernel.org/all/20240607061629.530301-1-arnd@kernel.org > [mpe: Rebase, write change log] > Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> My builds are still green with this change applied. Reviewed-by: Nathan Chancellor <nathan@kernel.org> Tested-by: Nathan Chancellor <nathan@kernel.org> > --- > arch/powerpc/Makefile | 7 +++---- > arch/powerpc/kernel/vdso/Makefile | 2 +- > 2 files changed, 4 insertions(+), 5 deletions(-) > > diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile > index cbb353ddacb7..94a6ccb8ad12 100644 > --- a/arch/powerpc/Makefile > +++ b/arch/powerpc/Makefile > @@ -62,14 +62,14 @@ KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o > endif > > ifdef CONFIG_CPU_LITTLE_ENDIAN > -KBUILD_CFLAGS += -mlittle-endian > +KBUILD_CPPFLAGS += -mlittle-endian > KBUILD_LDFLAGS += -EL > LDEMULATION := lppc > GNUTARGET := powerpcle > MULTIPLEWORD := -mno-multiple > KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-save-toc-indirect) > else > -KBUILD_CFLAGS += $(call cc-option,-mbig-endian) > +KBUILD_CPPFLAGS += $(call cc-option,-mbig-endian) > KBUILD_LDFLAGS += -EB > LDEMULATION := ppc > GNUTARGET := powerpc > @@ -95,7 +95,7 @@ aflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mbig-endian) > aflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mlittle-endian > > ifeq ($(HAS_BIARCH),y) > -KBUILD_CFLAGS += -m$(BITS) > +KBUILD_CPPFLAGS += -m$(BITS) > KBUILD_AFLAGS += -m$(BITS) > KBUILD_LDFLAGS += -m elf$(BITS)$(LDEMULATION) > endif > @@ -168,7 +168,6 @@ KBUILD_CPPFLAGS += -I $(srctree)/arch/powerpc $(asinstr) > KBUILD_AFLAGS += $(AFLAGS-y) > KBUILD_CFLAGS += $(CC_FLAGS_NO_FPU) > KBUILD_CFLAGS += $(CFLAGS-y) > -CPP = $(CC) -E $(KBUILD_CFLAGS) > > CHECKFLAGS += -m$(BITS) -D__powerpc__ -D__powerpc$(BITS)__ > ifdef CONFIG_CPU_BIG_ENDIAN > diff --git a/arch/powerpc/kernel/vdso/Makefile b/arch/powerpc/kernel/vdso/Makefile > index 31ca5a547004..af130c82a71a 100644 > --- a/arch/powerpc/kernel/vdso/Makefile > +++ b/arch/powerpc/kernel/vdso/Makefile > @@ -50,7 +50,7 @@ ldflags-$(CONFIG_LD_IS_LLD) += $(call cc-option,--ld-path=$(LD),-fuse-ld=lld) > ldflags-$(CONFIG_LD_ORPHAN_WARN) += -Wl,--orphan-handling=$(CONFIG_LD_ORPHAN_WARN_LEVEL) > > # Filter flags that clang will warn are unused for linking > -ldflags-y += $(filter-out $(CC_AUTO_VAR_INIT_ZERO_ENABLER) $(CC_FLAGS_FTRACE) -Wa$(comma)%, $(KBUILD_CFLAGS)) > +ldflags-y += $(filter-out $(CC_AUTO_VAR_INIT_ZERO_ENABLER) $(CC_FLAGS_FTRACE) -Wa$(comma)%, $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS)) > > CC32FLAGS := -m32 > CC32FLAGSREMOVE := -mcmodel=medium -mabi=elfv1 -mabi=elfv2 -mcall-aixdesc > -- > 2.47.0 >
On Thu, Nov 07, 2024 at 10:26:46PM +1100, Michael Ellerman wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Unlike all other arches, powerpc doesn't allow the user to override CPP, > because it sets it unconditionally in the arch Makefile. This can lead > to strange build failures. > > Instead add the required flags to KBUILD_CPPFLAGS, which are passed > to CPP, CC and AS invocations by the generic Makefile logic. You can also use "CPP ?=" instead of "CPP =". Your solution is better I think, but, FYI, FFR :-) Segher
On Thu, 07 Nov 2024 22:26:46 +1100, Michael Ellerman wrote: > Unlike all other arches, powerpc doesn't allow the user to override CPP, > because it sets it unconditionally in the arch Makefile. This can lead > to strange build failures. > > Instead add the required flags to KBUILD_CPPFLAGS, which are passed > to CPP, CC and AS invocations by the generic Makefile logic. > > [...] Applied to powerpc/next. [1/1] powerpc/Makefile: Allow overriding CPP https://git.kernel.org/powerpc/c/a5371018eefdd81f4152926a6d2b9480a75ac2a6 cheers
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index cbb353ddacb7..94a6ccb8ad12 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -62,14 +62,14 @@ KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o endif ifdef CONFIG_CPU_LITTLE_ENDIAN -KBUILD_CFLAGS += -mlittle-endian +KBUILD_CPPFLAGS += -mlittle-endian KBUILD_LDFLAGS += -EL LDEMULATION := lppc GNUTARGET := powerpcle MULTIPLEWORD := -mno-multiple KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-save-toc-indirect) else -KBUILD_CFLAGS += $(call cc-option,-mbig-endian) +KBUILD_CPPFLAGS += $(call cc-option,-mbig-endian) KBUILD_LDFLAGS += -EB LDEMULATION := ppc GNUTARGET := powerpc @@ -95,7 +95,7 @@ aflags-$(CONFIG_CPU_BIG_ENDIAN) += $(call cc-option,-mbig-endian) aflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -mlittle-endian ifeq ($(HAS_BIARCH),y) -KBUILD_CFLAGS += -m$(BITS) +KBUILD_CPPFLAGS += -m$(BITS) KBUILD_AFLAGS += -m$(BITS) KBUILD_LDFLAGS += -m elf$(BITS)$(LDEMULATION) endif @@ -168,7 +168,6 @@ KBUILD_CPPFLAGS += -I $(srctree)/arch/powerpc $(asinstr) KBUILD_AFLAGS += $(AFLAGS-y) KBUILD_CFLAGS += $(CC_FLAGS_NO_FPU) KBUILD_CFLAGS += $(CFLAGS-y) -CPP = $(CC) -E $(KBUILD_CFLAGS) CHECKFLAGS += -m$(BITS) -D__powerpc__ -D__powerpc$(BITS)__ ifdef CONFIG_CPU_BIG_ENDIAN diff --git a/arch/powerpc/kernel/vdso/Makefile b/arch/powerpc/kernel/vdso/Makefile index 31ca5a547004..af130c82a71a 100644 --- a/arch/powerpc/kernel/vdso/Makefile +++ b/arch/powerpc/kernel/vdso/Makefile @@ -50,7 +50,7 @@ ldflags-$(CONFIG_LD_IS_LLD) += $(call cc-option,--ld-path=$(LD),-fuse-ld=lld) ldflags-$(CONFIG_LD_ORPHAN_WARN) += -Wl,--orphan-handling=$(CONFIG_LD_ORPHAN_WARN_LEVEL) # Filter flags that clang will warn are unused for linking -ldflags-y += $(filter-out $(CC_AUTO_VAR_INIT_ZERO_ENABLER) $(CC_FLAGS_FTRACE) -Wa$(comma)%, $(KBUILD_CFLAGS)) +ldflags-y += $(filter-out $(CC_AUTO_VAR_INIT_ZERO_ENABLER) $(CC_FLAGS_FTRACE) -Wa$(comma)%, $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS)) CC32FLAGS := -m32 CC32FLAGSREMOVE := -mcmodel=medium -mabi=elfv1 -mabi=elfv2 -mcall-aixdesc