summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2019-02-07 16:16:52 +1100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-06-21 15:38:59 +0200
commite4c9414821d5bc8b787b88058e1f865e34dc893b (patch)
tree64f8fd2a2be9a37c62b6f576273e1b4709f53a54
parentf63e0e61fbcc9fb5cd0a87c1a1af74cc3d4965f3 (diff)
downloadlinux-stable-e4c9414821d5bc8b787b88058e1f865e34dc893b.tar.gz
linux-stable-e4c9414821d5bc8b787b88058e1f865e34dc893b.tar.bz2
linux-stable-e4c9414821d5bc8b787b88058e1f865e34dc893b.zip
powerpc: Fix defconfig choice logic when cross compiling
commit af5cd05de5dd38cf25d14ea4d30ae9b791d2420b upstream. Our logic for choosing defconfig doesn't work well in some situations. For example if you're on a ppc64le machine but you specify a non-empty CROSS_COMPILE, in order to use a non-default toolchain, then defconfig will give you ppc64_defconfig (big endian): $ make CROSS_COMPILE=~/toolchains/gcc-8/bin/powerpc-linux- defconfig *** Default configuration is based on 'ppc64_defconfig' This is because we assume that CROSS_COMPILE being set means we can't be on a ppc machine and rather than checking we just default to ppc64_defconfig. We should just ignore CROSS_COMPILE, instead check the machine with uname and if it's one of ppc, ppc64 or ppc64le then use that defconfig. If it's none of those then we fall back to ppc64_defconfig. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Alyssa Ross <hi@alyssa.is> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--arch/powerpc/Makefile9
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 9c78ef298257..cbc7c05a6165 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -29,11 +29,10 @@ endif
export CROSS32CC CROSS32AR
-ifeq ($(CROSS_COMPILE),)
-KBUILD_DEFCONFIG := $(shell uname -m)_defconfig
-else
-KBUILD_DEFCONFIG := ppc64_defconfig
-endif
+# If we're on a ppc/ppc64/ppc64le machine use that defconfig, otherwise just use
+# ppc64_defconfig because we have nothing better to go on.
+uname := $(shell uname -m)
+KBUILD_DEFCONFIG := $(if $(filter ppc%,$(uname)),$(uname),ppc64)_defconfig
ifeq ($(CONFIG_PPC64),y)
new_nm := $(shell if $(NM) --help 2>&1 | grep -- '--synthetic' > /dev/null; then echo y; else echo n; fi)