aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv/conf/init-link.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/riscv/conf/init-link.S')
-rw-r--r--arch/riscv/conf/init-link.S30
1 files changed, 30 insertions, 0 deletions
diff --git a/arch/riscv/conf/init-link.S b/arch/riscv/conf/init-link.S
new file mode 100644
index 0000000..642e831
--- /dev/null
+++ b/arch/riscv/conf/init-link.S
@@ -0,0 +1,30 @@
+OUTPUT_ARCH(riscv)
+ENTRY(main)
+
+SECTIONS {
+ . = ABSOLUTE(PM_KERN);
+ __init_start = .;
+
+ /* objcopy only copies these three sections (as far as I'm aware) into the
+ produces binary, so __init_end should point to the correct location in the
+ final binary
+ */
+ .text ALIGN(4K) : AT(0) {
+ *(.init.start)
+ *(.text*);
+ }
+
+ .rodata : {
+ *(.rodata*)
+ }
+
+ .data : {
+ *(.data*)
+ }
+
+ .bss : {
+ *(.bss*) *(COMMON)
+ }
+
+ __init_end = . ;
+}