diff options
author | Zong Li <zong@andestech.com> | 2018-03-15 09:50:41 +0100 |
---|---|---|
committer | Palmer Dabbelt <palmer@sifive.com> | 2018-04-03 05:00:54 +0200 |
commit | ab1ef68e54019937cf859f2c86c9ead6f3e62f19 (patch) | |
tree | 15fd30ddaaf18d61caf77f8748e291f3802987b5 /arch/riscv/Makefile | |
parent | Linux 4.16 (diff) | |
download | linux-ab1ef68e54019937cf859f2c86c9ead6f3e62f19.tar.xz linux-ab1ef68e54019937cf859f2c86c9ead6f3e62f19.zip |
RISC-V: Add sections of PLT and GOT for kernel module
The address of external symbols will locate more than 32-bit offset
in 64-bit kernel with sv39 or sv48 virtual addressing.
Module loader emits the GOT and PLT entries for data symbols and
function symbols respectively.
The PLT entry is a trampoline code for jumping to the 64-bit
real address. The GOT entry is just the data symbol address.
Signed-off-by: Zong Li <zong@andestech.com>
Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
Diffstat (limited to 'arch/riscv/Makefile')
-rw-r--r-- | arch/riscv/Makefile | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile index 6719dd30ec5b..c72d408c05c0 100644 --- a/arch/riscv/Makefile +++ b/arch/riscv/Makefile @@ -56,6 +56,11 @@ endif ifeq ($(CONFIG_CMODEL_MEDANY),y) KBUILD_CFLAGS += -mcmodel=medany endif +ifeq ($(CONFIG_MODULE_SECTIONS),y) + KBUILD_LDFLAGS_MODULE += -T $(srctree)/arch/riscv/kernel/module.lds +endif + +KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-relax) # GCC versions that support the "-mstrict-align" option default to allowing # unaligned accesses. While unaligned accesses are explicitly allowed in the |