summaryrefslogtreecommitdiffstats
path: root/src/kernel.ld
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel.ld')
-rw-r--r--src/kernel.ld71
1 files changed, 39 insertions, 32 deletions
diff --git a/src/kernel.ld b/src/kernel.ld
index d1f2cef42..c2bcc2304 100644
--- a/src/kernel.ld
+++ b/src/kernel.ld
@@ -28,52 +28,59 @@ SECTIONS
. = base_load_address;
.text ALIGN(0x1000): {
- *(.text.intvects)
- . = text_load_address;
+ *(.text.intvects)
+ . = text_load_address;
*(.text.kernelasm)
- *(.text)
- *(.text._*)
+ *(.text)
+ *(.text._*)
*(.text.*)
- *(.rodata)
- *(.rodata.*)
- . = ALIGN(0x8);
- ctor_start_address = .;
- *(.ctors)
- ctor_end_address = .;
}
-
- .data ALIGN(0x1000): {
- data_load_address = .;
- *(.data)
- *(.data.*)
- *(.branch_lt)
- toc_load_address = .;
- *(.toc)
- *(.opd)
- *(.got)
+ .rodata ALIGN(0x8): {
+ __minimum_data_start_addr = ALIGN(0x1000);
+ ctor_start_address = .;
+ *(.ctors)
+ ctor_end_address = .;
+ *(.rodata)
+ *(.rodata.*)
+ toc_load_address = .;
+ *(.toc)
+ *(.opd)
+ *(.got)
+ *(.plt)
+ *(.data.rel.ro.*)
+ *(.data.*traceData_codeInfo*)
+
+ . = __minimum_data_start_addr > . ? __minimum_data_start_addr : .;
+ }
+
+ .data ALIGN(0x8): {
+ data_load_address = .;
+ *(.data)
+ *(.data.*)
- *(.bss)
- *(.bss.*)
+ *(.bss)
+ *(.bss.*)
}
end_load_address = .;
- .dynstr : {
- *(.dynstr)
- }
-
.rela : {
- *(.rela.*)
+ *(.rela.*)
}
-
+
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
+ .hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
+ .eh_frame : { *(.eh_frame) }
/DISCARD/ : {
- *(.comment)
- *(.gnu.attributes)
- *(.dtors)
- *(.interp)
+ *(.comment)
+ *(.gnu.attributes)
+ *(.dtors)
+ *(.interp)
}
}
OpenPOWER on IntegriCloud