1 /* Simple linker script for the ROS kernel.
2 See the GNU ld 'info' manual ("info ld") to learn the syntax. */
4 OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
11 /* Entry Linked and loaded at 0x00100000 (includes multiboot) */
15 *(.boottext .bootdata)
18 /* Needed this for syslinux, which was sitting around 16MB phys. This just
19 * jumps us forward to the 32MB mark, both physically and virtually. */
22 /* Link the main kernel for the space after entry + KERNBASE. We'll still
23 * load it adjacent in physical memory */
26 .text : AT(ADDR(.text) - KERNBASE) {
27 *(.text .stub .text.* .gnu.linkonce.t.*)
30 PROVIDE(etext = .); /* Define the 'etext' symbol to this value */
32 INCLUDE kern/linker_tables.ld
35 *(.rodata .rodata.* .gnu.linkonce.r.*)
38 /* Include debugging information in kernel memory */
41 PROVIDE(__STAB_BEGIN__ = .);
44 PROVIDE(__STAB_END__ = .);
45 BYTE(0) /* Force the linker to allocate space
51 PROVIDE(__STABSTR_BEGIN__ = .);
53 PROVIDE(estabstr = .);
54 PROVIDE(__STABSTR_END__ = .);
55 BYTE(0) /* Force the linker to allocate space
59 /* Adjust the address for the data segment to the next page */
62 /* The data segment */
77 *(.eh_frame .note.GNU-stack)