diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-01-31 22:08:01 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-01-31 22:08:01 +0200 |
commit | 61b4f7fb29db2e8f8af266fcb0836b6b9232245a (patch) | |
tree | c5aa7d9049cbeb60e17e8440ac8eb0f79decf66b /linker.ld | |
download | kernel.cpp-61b4f7fb29db2e8f8af266fcb0836b6b9232245a.tar.xz |
Initial commit
Diffstat (limited to 'linker.ld')
-rw-r--r-- | linker.ld | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/linker.ld b/linker.ld new file mode 100644 index 0000000..732e5a0 --- /dev/null +++ b/linker.ld @@ -0,0 +1,45 @@ +/* The bootloader will look at this image and start execution at the symbol + designated as the entry point. */ +ENTRY(_start) +OUTPUT_FORMAT(elf32-i386) +OUTPUT_ARCH(i386: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; + + /* 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) + } + + /* Read-only data. */ + .rodata : + { + *(.rodata) + } + + /* Read-write data (initialized) */ + .data : + { + *(.data) + } + + /* Read-write data (uninitialized) and stack */ + .bss : + { + *(COMMON) + *(.bss) + } + + /* 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. */ +} |