KBUILD_USERCFLAGS and KBUILD_USERLDFLAGS pick up the flags that select the target ABI for userspace programs: --target= under clang, -m32/-m64, or CONFIG_ARCH_USERFLAGS. Collect those in KBUILD_USERABI and export it, so programs built outside of kbuild's userprogs can be compiled for the same ABI without also inheriting kbuild's warning and language flags.
No functional change: KBUILD_USERCFLAGS and KBUILD_USERLDFLAGS keep the same value. Assisted-by: LLM Signed-off-by: Sasha Levin <[email protected]> --- Makefile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 7c855e6fe5448..8c94aff229b21 100644 --- a/Makefile +++ b/Makefile @@ -650,7 +650,7 @@ export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AW export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD TAR export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS KBUILD_PROCMACROLDFLAGS LDFLAGS_MODULE -export KBUILD_USERCFLAGS KBUILD_USERLDFLAGS +export KBUILD_USERCFLAGS KBUILD_USERLDFLAGS KBUILD_USERABI export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE @@ -1270,15 +1270,17 @@ endif USERFLAGS_FROM_KERNEL := --target=% ifdef CONFIG_ARCH_USERFLAGS -KBUILD_USERCFLAGS += $(CONFIG_ARCH_USERFLAGS) -KBUILD_USERLDFLAGS += $(CONFIG_ARCH_USERFLAGS) +KBUILD_USERABI := $(CONFIG_ARCH_USERFLAGS) else +KBUILD_USERABI := # If not overridden also inherit the bit size USERFLAGS_FROM_KERNEL += -m32 -m64 endif -KBUILD_USERCFLAGS += $(filter $(USERFLAGS_FROM_KERNEL), $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS)) -KBUILD_USERLDFLAGS += $(filter $(USERFLAGS_FROM_KERNEL), $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS)) +KBUILD_USERABI += $(filter $(USERFLAGS_FROM_KERNEL), $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS)) + +KBUILD_USERCFLAGS += $(KBUILD_USERABI) +KBUILD_USERLDFLAGS += $(KBUILD_USERABI) # userspace programs are linked via the compiler, use the correct linker ifdef CONFIG_CC_IS_CLANG -- 2.53.0

