diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-03-07 21:44:12 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-03-07 21:44:12 +0200 |
commit | 361f02166cc939879b58328cbf5e75a050c93e1d (patch) | |
tree | 09c6f0a2be4182d78d9fbbe6c4ffe56838bd1642 /linker.ld | |
parent | scheduler: fix task switching (diff) | |
download | kernel.cpp-361f02166cc939879b58328cbf5e75a050c93e1d.tar.xz |
Move multiboot header to its own section
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. */ } |