summaryrefslogtreecommitdiffstats
path: root/arch/riscv/kernel/module.lds
diff options
context:
space:
mode:
authorZong Li <zong@andestech.com>2018-03-15 16:50:41 +0800
committerPalmer Dabbelt <palmer@sifive.com>2018-04-02 20:00:54 -0700
commitab1ef68e54019937cf859f2c86c9ead6f3e62f19 (patch)
tree15fd30ddaaf18d61caf77f8748e291f3802987b5 /arch/riscv/kernel/module.lds
parent0adb32858b0bddf4ada5f364a84ed60b196dbcda (diff)
downloadlinux-stable-ab1ef68e54019937cf859f2c86c9ead6f3e62f19.tar.gz
linux-stable-ab1ef68e54019937cf859f2c86c9ead6f3e62f19.tar.bz2
linux-stable-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/kernel/module.lds')
-rw-r--r--arch/riscv/kernel/module.lds7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/riscv/kernel/module.lds b/arch/riscv/kernel/module.lds
new file mode 100644
index 000000000000..7ef580e62883
--- /dev/null
+++ b/arch/riscv/kernel/module.lds
@@ -0,0 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/* Copyright (C) 2017 Andes Technology Corporation */
+
+SECTIONS {
+ .plt (NOLOAD) : { BYTE(0) }
+ .got (NOLOAD) : { BYTE(0) }
+}