diff options
Diffstat (limited to 'linker.ld')
-rw-r--r-- | linker.ld | 70 |
1 files changed, 34 insertions, 36 deletions
@@ -1,47 +1,45 @@ ENTRY(_start) OUTPUT_FORMAT(elf32-i386) -/* Tell where the various sections of the object files will be put in the final - kernel image. */ SECTIONS { - /* Begin putting sections at 1 MiB, a conventional place for kernels to be - loaded at by the bootloader. */ - . = 1M; + /* Begin putting sections at 1 MiB */ + . = 1M; - /* 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. - Next we'll put the .text section. */ - .text : - { - *(.multiboot) - *(.text) - } + /* 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. + */ + .multiboot : { + *(.multiboot.header) + *(.multiboot.text) + } + + .text : { + *(.text*) + } - /* Read-only data. */ - .rodata : - { - *(.rodata) - } + /* Read-only data. */ + .rodata : { + *(.rodata*) + } - /* Read-write data (initialized) */ - .data : - { - start_ctors = .; - KEEP(*(.init_array)); - KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*))); - end_ctors = .; - *(.data) - } + /* Read-write data (initialized) */ + .data : { + start_ctors = .; + KEEP(*(.init_array)); /* global constructors */ + end_ctors = .; + + begin_constinit = .; + *(.constinit) + end_constinit = .; + + *(.data) + } - /* Read-write data (uninitialized) and stack */ - .bss : - { - *(COMMON) - *(.bss) - *(.stack) - } + /* Read-write data (uninitialized) and stack */ + .bss : { + *(.bss) + *(.stack) + } - /* 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. */ } |