aboutsummaryrefslogtreecommitdiff
path: root/ext2load/ld.script.in
diff options
context:
space:
mode:
Diffstat (limited to 'ext2load/ld.script.in')
-rw-r--r--ext2load/ld.script.in73
1 files changed, 73 insertions, 0 deletions
diff --git a/ext2load/ld.script.in b/ext2load/ld.script.in
new file mode 100644
index 0000000..8c5bb3f
--- /dev/null
+++ b/ext2load/ld.script.in
@@ -0,0 +1,73 @@
+OUTPUT_FORMAT("@@OUTPUTFORMAT@@")
+OUTPUT_ARCH(mips)
+ENTRY(_start)
+SECTIONS
+{
+ /* XXX: place the loader after the kernel */
+ . = @@LOADADDR@@;
+
+ /* Read-only sections, merged into text segment: */
+ .text : {
+ _ftext = .;
+ *(.text)
+ *(.rodata*)
+ } =0
+ _etext = .;
+ PROVIDE (etext = .);
+
+ . = ALIGN(16);
+
+ .data : {
+ _fdata = .;
+ *(.data)
+ CONSTRUCTORS
+ }
+ _gp = ALIGN(16) + 0x7ff0;
+ .lit8 : { *(.lit8) }
+ .lit4 : { *(.lit4) }
+ /* We want the small data sections together, so single-instruction offsets
+ can access them all, and initialized data all before uninitialized, so
+ we can shorten the on-disk segment size. */
+ .sdata : { *(.sdata) }
+ PROVIDE (edata = .);
+
+ __bss_start = .;
+ .sbss : {
+ *(.sbss)
+ *(.scommon)
+ }
+ .bss : {
+ _fbss = .;
+ *(.dynbss)
+ *(.bss .bss.*)
+ *(COMMON)
+ /* Align here to ensure that the .bss section occupies space up to
+ _end. Align after .bss to ensure correct alignment even if the
+ .bss section disappears because there are no input sections. */
+ . = ALIGN(32 / 8);
+ }
+ . = ALIGN(32 / 8);
+ __bss_stop = .;
+ _end = .;
+ PROVIDE (end = .);
+
+ /* Sections to be discarded */
+ /DISCARD/ : {
+ *(.text.exit)
+ *(.data.exit)
+ *(.exitcall.exit)
+ *(.stab)
+ *(.stabstr)
+ *(.pdr)
+ *(.note)
+ *(.reginfo)
+ *(.options)
+ *(.MIPS.options)
+ *(.debug*)
+ *(.line)
+ *(.mdebug*)
+ *(.comment*)
+ *(.gptab*)
+ *(.note)
+ }
+}