aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWANG Rui <wangrui@loongson.cn>2023-11-21 15:03:25 +0800
committerHuacai Chen <chenhuacai@loongson.cn>2023-11-21 15:03:25 +0800
commitcbfd44bd5c6eec0aada0c39130f0b8d7ecba0529 (patch)
treea34b70ec61f978fdff6cd03fa993fcfb788d8e4e
parentd3ec75bc635cb0cb8185b63293d33a3d1b942d22 (diff)
downloadlinux-cbfd44bd5c6eec0aada0c39130f0b8d7ecba0529.tar.gz
LoongArch: Explicitly set -fdirect-access-external-data for vmlinux
After this llvm commit [1], The -fno-pic does not imply direct access external data. Explicitly set -fdirect-access-external-data for vmlinux that can avoids GOT entries. Link: https://github.com/llvm/llvm-project/commit/47eeee297775347cbdb7624d6a766c2a3eec4a59 Suggested-by: Xi Ruoyao <xry111@xry111.site> Signed-off-by: WANG Rui <wangrui@loongson.cn> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
-rw-r--r--arch/loongarch/Makefile1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
index a8d65eaf1211f3..204b94b2e6aaa6 100644
--- a/arch/loongarch/Makefile
+++ b/arch/loongarch/Makefile
@@ -68,6 +68,7 @@ LDFLAGS_vmlinux += -static -n -nostdlib
ifdef CONFIG_AS_HAS_EXPLICIT_RELOCS
cflags-y += $(call cc-option,-mexplicit-relocs)
KBUILD_CFLAGS_KERNEL += $(call cc-option,-mdirect-extern-access)
+KBUILD_CFLAGS_KERNEL += $(call cc-option,-fdirect-access-external-data)
KBUILD_AFLAGS_MODULE += $(call cc-option,-fno-direct-access-external-data)
KBUILD_CFLAGS_MODULE += $(call cc-option,-fno-direct-access-external-data)
KBUILD_AFLAGS_MODULE += $(call cc-option,-mno-relax) $(call cc-option,-Wa$(comma)-mno-relax)