|
@@ -82,6 +82,22 @@ ifdef CONFIG_CC_STACKPROTECTOR
|
|
|
endif
|
|
|
endif
|
|
|
|
|
|
+ifdef CONFIG_X86_X32
|
|
|
+ x32_ld_ok := $(call try-run,\
|
|
|
+ /bin/echo -e '1: .quad 1b' | \
|
|
|
+ $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" - && \
|
|
|
+ $(OBJCOPY) -O elf32-x86-64 "$$TMP" "$$TMPO" && \
|
|
|
+ $(LD) -m elf32_x86_64 "$$TMPO" -o "$$TMP",y,n)
|
|
|
+ ifeq ($(x32_ld_ok),y)
|
|
|
+ CONFIG_X86_X32_ABI := y
|
|
|
+ KBUILD_AFLAGS += -DCONFIG_X86_X32_ABI
|
|
|
+ KBUILD_CFLAGS += -DCONFIG_X86_X32_ABI
|
|
|
+ else
|
|
|
+ $(warning CONFIG_X86_X32 enabled but no binutils support)
|
|
|
+ endif
|
|
|
+endif
|
|
|
+export CONFIG_X86_X32_ABI
|
|
|
+
|
|
|
# Don't unroll struct assignments with kmemcheck enabled
|
|
|
ifeq ($(CONFIG_KMEMCHECK),y)
|
|
|
KBUILD_CFLAGS += $(call cc-option,-fno-builtin-memcpy)
|