Artifact 884f0cbc06f4d0089684086074dfd45337427c6a:
- File arch/i386/linker.ld — part of check-in [94b7f64480] at 2024-05-11 23:45:42 on branch trunk — Kernel side of auto generated syscall handler. Not yet plumbed in. (user: csmith size: 2015) [more...]
/* The bootloader will look at this image and start execution at the symbol designated as the entry point. */ ENTRY(_start) kernel_offset = 0xf0000000; /* Tell where the various sections of the object files will be put in the final kernel image. */ SECTIONS { /* Define the user address space range */ . = 0; . += kernel_offset; kernel_base = .; /* Begin putting sections at 1 MiB, a conventional place for kernels to be loaded at by the bootloader. */ . = 1M; _bootstrap_start = .; /* First put the multiboot header, as it is required to be put very early early in the image or the bootloader won't recognize the file format. */ .bootstrap : { *(.bootstrap_data) *(.bootstrap_code) } .bootstrap_aligned ALIGN(4K) : { *(.bootstrap_stack) *(.bootstrap_pgtbl) } /* Rest of the kernel lives in high memory */ _kernel_offset_bootstrap = .; . += kernel_offset; _kernel_offset = .; /* Next we'll put the .text section. */ .text ALIGN(4K) : AT(ADDR(.text) - kernel_offset) { code_start = .; *(.text) code_end = .; } /* Read-only data. */ .rodata ALIGN(4K) : AT(ADDR(.rodata) - kernel_offset) { *(.rodata) staticinit_start = .; *(.staticinit) staticinit_end = .; } .symtab : AT(ADDR(.rodata) - kernel_offset) { sym_start = .; *(.symtab) str_start = .; *(.strtab) } /* Read-write data (initialized) */ .data ALIGN(4K) : AT(ADDR(.data) - kernel_offset) { data_start = .; *(.data) } /* Read-write page aligned data (uninitialized) */ .aligned ALIGN(4K) : AT(ADDR(.aligned) - kernel_offset) { zero_start = .; *(.aligned) } /* Read-write data (uninitialized) */ .bss ALIGN(4K) : AT(ADDR(.bss) - kernel_offset) { *(COMMON) gcroot_start = .; *(.gcroot) gcroot_end = .; *(.bss) zero_end = .; } /* The compiler may produce other sections, by default it will put them in a segment with the same name. Simply add stuff here as needed. */ _bootstrap_nextalloc = .; . -= kernel_offset; _bootstrap_end = .; }