[PATCH] powerpc: Fix -mcpu= options for SPE-only compiler
Subsystems:
linux for powerpc (32-bit and 64-bit) , the rest
STALE2776d
4 messages,
2 authors,
2018-12-29 · open the first message on its own page
GCC for Debian's "powerpcspe" architecture only supports 32-bit
SPE targets, and using -mcpu=powerpc or -mcpu=powerpc64 is a fatal
error.
* Change the test for a biarch compiler to pass both the -m32 and -m64
options, so that it doesn't catch 32-bit-only compilers
* Add an ifdef CONFIG_PPC64 around the 64-bit CPU option definitions
Signed-off-by: Ben Hutchings <redacted>
---
arch/powerpc/Makefile | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 488c9edffa58..c2e815863500 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile @@ -12,7 +12,7 @@
# Rewritten by Cort Dougan and Paul Mackerras
#
- HAS_BIARCH := $( call cc-option-yn, -m32)
+ HAS_BIARCH := $( call cc-option-yn, -m32 -m64)
# Set default 32 bits cross compilers for vdso and boot wrapper
CROSS32_COMPILE ?= @@ -166,6 +166,7 @@ CFLAGS-$(CONFIG_PPC32) += $(call cc-option, $(MULTIPLEWORD))
CFLAGS-$(CONFIG_PPC32) += $( call cc-option,-mno-readonly-in-sdata)
+ ifdef CONFIG_PPC64
ifdef CONFIG_PPC_BOOK3S_64
ifdef CONFIG_CPU_LITTLE_ENDIAN
CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu= power8 @@ -177,6 +178,7 @@ endif
else
CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu= powerpc64
endif
+ endif
ifdef CONFIG_FUNCTION_TRACER
CC_FLAGS_FTRACE := -pg
Hi!
On Wed, Dec 26, 2018 at 02:15:11PM +0000, Ben Hutchings wrote: GCC for Debian's "powerpcspe" architecture only supports 32-bit
SPE targets, and using -mcpu=powerpc or -mcpu=powerpc64 is a fatal
error.
I don't see where your patch touches -mcpu=powerpc, and I don't see how
it would make a difference either?
quoted hunk +ifdef CONFIG_PPC64
ifdef CONFIG_PPC_BOOK3S_64
ifdef CONFIG_CPU_LITTLE_ENDIAN
CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power8 @@ -177,6 +178,7 @@ endif
else
CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64
endif
+ endif
How can CONFIG_PPC_BOOK3S_64 be true while CONFIG_PPC64 is fals? That
does not make a lot of sense.
Segher
On Wed, 2018-12-26 at 17:45 -0600, Segher Boessenkool wrote: Hi!
On Wed, Dec 26, 2018 at 02:15:11PM +0000, Ben Hutchings wrote: quoted GCC for Debian's "powerpcspe" architecture only supports 32-bit
SPE targets, and using -mcpu=powerpc or -mcpu=powerpc64 is a fatal
error.
I don't see where your patch touches -mcpu=powerpc, and I don't see how
it would make a difference either?
Look at the assignments that are conditional on HAS_BIARCH.
quoted +ifdef CONFIG_PPC64
ifdef CONFIG_PPC_BOOK3S_64
ifdef CONFIG_CPU_LITTLE_ENDIAN
CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power8 @@ -177,6 +178,7 @@ endif
else
CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64
endif
+ endif
How can CONFIG_PPC_BOOK3S_64 be true while CONFIG_PPC64 is fals? That
does not make a lot of sense.
But there is an "else" part here.
Ben.
--
Ben Hutchings
Life is what happens to you while you're busy making other plans.
- John Lennon
On Thu, Dec 27, 2018 at 02:32:07AM +0000, Ben Hutchings wrote: On Wed, 2018-12-26 at 17:45 -0600, Segher Boessenkool wrote: quoted Hi!
On Wed, Dec 26, 2018 at 02:15:11PM +0000, Ben Hutchings wrote: quoted GCC for Debian's "powerpcspe" architecture only supports 32-bit
SPE targets, and using -mcpu=powerpc or -mcpu=powerpc64 is a fatal
error.
I don't see where your patch touches -mcpu=powerpc, and I don't see how
it would make a difference either?
[ I now see that error fwiw. Yuck. ]
Look at the assignments that are conditional on HAS_BIARCH.
Sure, you change how HAS_BIARCH is set. That has more effects than just
not using -mcpu=powerpc (which is fine, but the message is confusing).
quoted quoted +ifdef CONFIG_PPC64
ifdef CONFIG_PPC_BOOK3S_64
ifdef CONFIG_CPU_LITTLE_ENDIAN
CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power8 @@ -177,6 +178,7 @@ endif
else
CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64
endif
+ endif
How can CONFIG_PPC_BOOK3S_64 be true while CONFIG_PPC64 is fals? That
does not make a lot of sense.
But there is an "else" part here.
Yeah I see. It would be better to have fewer nested conditionals here
instead of more...
Segher