diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2012-03-19 17:38:32 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2012-03-19 17:38:32 +0000 |
commit | 227e066fd9009304a6c891f3cb9faf2854a5ece1 (patch) | |
tree | b8c52235f5a79e4ba42e7efbf3ffa12f32b30de6 /sys/arch/sgi/stand/bootecoff/ld.script | |
parent | 5f9c7bf79f6f68b257dd9c5b019b47217ab87267 (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.script | 71 |
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) + } +} |