* [PATCH] powerpc/Makefile: Allow overriding CPP
@ 2024-11-07 11:26 Michael Ellerman
2024-11-07 17:52 ` Nathan Chancellor
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Michael Ellerman @ 2024-11-07 11:26 UTC (permalink / raw)
To: linuxppc-dev; +Cc: arnd, nathan
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>
---
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
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] powerpc/Makefile: Allow overriding CPP
2024-11-07 11:26 [PATCH] powerpc/Makefile: Allow overriding CPP Michael Ellerman
@ 2024-11-07 17:52 ` Nathan Chancellor
2024-11-07 19:14 ` Segher Boessenkool
2024-11-17 12:09 ` Michael Ellerman
2 siblings, 0 replies; 4+ messages in thread
From: Nathan Chancellor @ 2024-11-07 17:52 UTC (permalink / raw)
To: Michael Ellerman; +Cc: linuxppc-dev, arnd
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
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] powerpc/Makefile: Allow overriding CPP
2024-11-07 11:26 [PATCH] powerpc/Makefile: Allow overriding CPP Michael Ellerman
2024-11-07 17:52 ` Nathan Chancellor
@ 2024-11-07 19:14 ` Segher Boessenkool
2024-11-17 12:09 ` Michael Ellerman
2 siblings, 0 replies; 4+ messages in thread
From: Segher Boessenkool @ 2024-11-07 19:14 UTC (permalink / raw)
To: Michael Ellerman; +Cc: linuxppc-dev, arnd, nathan
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] powerpc/Makefile: Allow overriding CPP
2024-11-07 11:26 [PATCH] powerpc/Makefile: Allow overriding CPP Michael Ellerman
2024-11-07 17:52 ` Nathan Chancellor
2024-11-07 19:14 ` Segher Boessenkool
@ 2024-11-17 12:09 ` Michael Ellerman
2 siblings, 0 replies; 4+ messages in thread
From: Michael Ellerman @ 2024-11-17 12:09 UTC (permalink / raw)
To: linuxppc-dev, Michael Ellerman; +Cc: arnd, nathan
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
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-11-17 12:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-07 11:26 [PATCH] powerpc/Makefile: Allow overriding CPP Michael Ellerman
2024-11-07 17:52 ` Nathan Chancellor
2024-11-07 19:14 ` Segher Boessenkool
2024-11-17 12:09 ` Michael Ellerman
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).