summaryrefslogtreecommitdiff
path: root/sys/arch/sgi/stand/bootecoff/ld.script
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2012-03-19 17:38:32 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2012-03-19 17:38:32 +0000
commit227e066fd9009304a6c891f3cb9faf2854a5ece1 (patch)
treeb8c52235f5a79e4ba42e7efbf3ffa12f32b30de6 /sys/arch/sgi/stand/bootecoff/ld.script
parent5f9c7bf79f6f68b257dd9c5b019b47217ab87267 (diff)
Teach the bootblocks how to load kernel from tftp (i.e. when OSLoadPartition
is bootp() instead of a disk). Kind of ugly because of the usual `can't seek' problem causing kernels with symbols to be read from the network twice. While there, add a 32 bit ECOFF boot block, not hooked to the build yet, to be used shortly.
Diffstat (limited to 'sys/arch/sgi/stand/bootecoff/ld.script')
-rw-r--r--sys/arch/sgi/stand/bootecoff/ld.script71
1 files changed, 71 insertions, 0 deletions
diff --git a/sys/arch/sgi/stand/bootecoff/ld.script b/sys/arch/sgi/stand/bootecoff/ld.script
new file mode 100644
index 00000000000..deee3ac2bf1
--- /dev/null
+++ b/sys/arch/sgi/stand/bootecoff/ld.script
@@ -0,0 +1,71 @@
+OUTPUT_FORMAT("ecoff-bigmips", "ecoff-bigmips",
+ "ecoff-littlemips")
+OUTPUT_ARCH(mips)
+ENTRY(_start)
+SECTIONS
+{
+ /* Read-only sections, merged into text segment: */
+ . = 0x88002000 + SIZEOF_HEADERS;
+ .text :
+ {
+ _ftext = . ;
+ *(.text)
+ *(.rodata)
+ *(.rodata1)
+ *(.rodata.str1.4)
+ *(.reginfo)
+ *(.init)
+ *(.stub)
+ /* .gnu.warning sections are handled specially by elf32.em. */
+ *(.gnu.warning)
+ } =0
+ _etext = .;
+ PROVIDE (etext = .);
+ .fini : { *(.fini) } =0
+ .data :
+ {
+ _fdata = . ;
+ *(.data)
+ CONSTRUCTORS
+ }
+ .data1 : { *(.data1) }
+ .ctors : { *(.ctors) }
+ .dtors : { *(.dtors) }
+ _gp = ALIGN(16) + 0x7ff0;
+ .got :
+ {
+ *(.got.plt) *(.got)
+ }
+ /* 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) }
+ .lit8 : { *(.lit8) }
+ .lit4 : { *(.lit4) }
+ _edata = .;
+ PROVIDE (edata = .);
+ __bss_start = .;
+ _fbss = .;
+ .sbss : { *(.sbss) *(.scommon) }
+ .bss :
+ {
+ *(.dynbss)
+ *(.bss)
+ *(COMMON)
+ }
+ _end = . ;
+ PROVIDE (end = .);
+ /DISCARD/ : {
+ *(.pdr)
+ *(.mdebug.abi32)
+ *(.comment)
+ *(.stab)
+ *(.stabstr)
+ *(.debug)
+ *(.debug_srcinfo)
+ *(.debug_aranges)
+ *(.debug_pubnames)
+ *(.debug_sfnames)
+ *(.line)
+ }
+}