Move the definition of CONFIG_CPU_*_ENDIAN to Kconfig, the best place for CONFIG options.
I slightly simplified the test code. You can use the -P option to suppress linemarker generation. The grep command is unneeded. $ echo __XTENSA_EB__ | xtensa-linux-gcc -E - # 1 "<stdin>" # 1 "<built-in>" # 1 "<command-line>" # 1 "<stdin>" 1 $ echo __XTENSA_EB__ | xtensa-linux-gcc -E -P - 1 Signed-off-by: Masahiro Yamada <masahi...@kernel.org> --- If I understood correctly, xtensa compilers can support either big-endian or little-endian. We cannot change it via a command option. Actually, it does not understand -mbig-endian or -mlittle-endian. (Is this correct?) $ xtensa-linux-gcc -mbig-endian /dev/null -c -o /dev/null xtensa-linux-gcc: error: unrecognized command-line option '-mbig-endian' I see -mbig-endian / -mlittle-endian in old GCC manual. https://gcc.gnu.org/onlinedocs/gcc-3.3.5/gcc/Xtensa-Options.html But, I cannot see them in recent gcc manuals. So, I have no idea better than checking __XTENSA_EB__ or __XTENSA_EL__. I just moved the logic to Kconfig from Makefile. arch/xtensa/Kconfig | 6 ++++++ arch/xtensa/Makefile | 9 +-------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig index 9ad6b7b82707..37b04ccc0a7f 100644 --- a/arch/xtensa/Kconfig +++ b/arch/xtensa/Kconfig @@ -84,6 +84,12 @@ config KASAN_SHADOW_OFFSET hex default 0x6e400000 +config CPU_BIG_ENDIAN + def_bool $(success,test "$(shell,echo __XTENSA_EB__ | $(CC) -E -P -)" = 1) + +config CPU_LITTLE_ENDIAN + def_bool !CPU_BIG_ENDIAN + menu "Processor type and features" choice diff --git a/arch/xtensa/Makefile b/arch/xtensa/Makefile index cf0940708702..f43c731dec89 100644 --- a/arch/xtensa/Makefile +++ b/arch/xtensa/Makefile @@ -52,14 +52,7 @@ ifneq ($(CONFIG_LD_NO_RELAX),) KBUILD_LDFLAGS := --no-relax endif -ifeq ($(shell echo __XTENSA_EB__ | $(CC) -E - | grep -v "\#"),1) -CHECKFLAGS += -D__XTENSA_EB__ -KBUILD_CPPFLAGS += -DCONFIG_CPU_BIG_ENDIAN -endif -ifeq ($(shell echo __XTENSA_EL__ | $(CC) -E - | grep -v "\#"),1) -CHECKFLAGS += -D__XTENSA_EL__ -KBUILD_CPPFLAGS += -DCONFIG_CPU_LITTLE_ENDIAN -endif +CHECKFLAGS += -D $(if $(CONFIG_CPU_BIG_ENDIAN),__XTENSA_EB__,__XTENSA_EL__) vardirs := $(patsubst %,arch/xtensa/variants/%/,$(variant-y)) plfdirs := $(patsubst %,arch/xtensa/platforms/%/,$(platform-y)) -- 2.27.0