summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorHuacai Chen <chenhuacai@loongson.cn>2024-11-22 15:47:47 +0800
committerHuacai Chen <chenhuacai@loongson.cn>2024-11-26 18:06:03 +0800
commite67e0eb6a98b261caf45048f9eb95fd7609289c0 (patch)
tree0369bfafef6960d3c09e9c9860438f164ba3b41e /arch
parent1b9bc4207e81206ea6b6a906e01438b7782c3a58 (diff)
downloadlinux-e67e0eb6a98b261caf45048f9eb95fd7609289c0.tar.gz
linux-e67e0eb6a98b261caf45048f9eb95fd7609289c0.tar.bz2
linux-e67e0eb6a98b261caf45048f9eb95fd7609289c0.zip
LoongArch: Explicitly specify code model in Makefile
LoongArch's toolchain may change the default code model from normal to medium. This is unnecessary for kernel, and generates some relocations which cannot be handled by the module loader. So explicitly specify the code model to normal in Makefile (for Rust 'normal' is 'small'). Cc: stable@vger.kernel.org Tested-by: Haiyong Sun <sunhaiyong@loongson.cn> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Diffstat (limited to 'arch')
-rw-r--r--arch/loongarch/Makefile4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
index ae3f80622f4c..567bd122a9ee 100644
--- a/arch/loongarch/Makefile
+++ b/arch/loongarch/Makefile
@@ -59,7 +59,7 @@ endif
ifdef CONFIG_64BIT
ld-emul = $(64bit-emul)
-cflags-y += -mabi=lp64s
+cflags-y += -mabi=lp64s -mcmodel=normal
endif
cflags-y += -pipe $(CC_FLAGS_NO_FPU)
@@ -104,7 +104,7 @@ ifdef CONFIG_OBJTOOL
KBUILD_CFLAGS += -fno-jump-tables
endif
-KBUILD_RUSTFLAGS += --target=loongarch64-unknown-none-softfloat
+KBUILD_RUSTFLAGS += --target=loongarch64-unknown-none-softfloat -Ccode-model=small
KBUILD_RUSTFLAGS_KERNEL += -Zdirect-access-external-data=yes
KBUILD_RUSTFLAGS_MODULE += -Zdirect-access-external-data=no