ENTRY(_start) SECTIONS { /* 0x00000500 - 0x00007BFF : guaranteed free to use */ . = 0x7000; kernel_start = .; /* smp code at 0x7000*/ .text BLOCK(4K) : ALIGN(4K) { *(.smp) } /* 0x00100000 - 0x00EFFFFF : free for use (if it exists) */ . = 0x100000; /* _start code as 0x100000 and rest of code*/ .text BLOCK(4K) : ALIGN(4K) { *(.multiboot) *(.text) } /* Read-only data. */ .rodata BLOCK(4K) : ALIGN(4K) { *(.rodata) } /* Read-write data (initialized) */ .data BLOCK(4K) : ALIGN(4K) { *(.data) } /* Read-write data (uninitialized) and stack */ .bss BLOCK(4K) : ALIGN(4K) { *(.bootstrap_stack) *(COMMON) *(.bss) } kernel_end = .; }