mirror of
https://github.com/taigrr/gopher-os
synced 2025-01-18 04:43:13 -08:00
By setting up pwd as a Go workspace, we can trim import paths from something like "github.com/achilleasa/gopher-os/kernel" to just "kernel". These changes make forking easier and also allows us to move the code to a different git hosting provider without having to rewrite the imports.
53 lines
1.0 KiB
Plaintext
53 lines
1.0 KiB
Plaintext
VMA = PAGE_OFFSET + LOAD_ADDRESS;
|
|
|
|
ENTRY(_rt0_32_entry)
|
|
|
|
SECTIONS {
|
|
/* Set the kernel VMA at PAGE_OFFSET + 1M
|
|
* but load it at physical address 1M */
|
|
. = VMA;
|
|
|
|
_kernel_start = .;
|
|
|
|
.text BLOCK(4K) : AT(ADDR(.text) - PAGE_OFFSET)
|
|
{
|
|
/* The multiboot header must be present in the first 4K of the kernel
|
|
* image so that the bootloader can find it */
|
|
*(.multiboot_header)
|
|
|
|
*(.rt0)
|
|
|
|
*(.text)
|
|
}
|
|
|
|
/* Read-only data. */
|
|
.rodata ALIGN(4K) : AT(ADDR(.rodata) - PAGE_OFFSET)
|
|
{
|
|
*(.rodata)
|
|
}
|
|
|
|
/* Read-write data (initialized) */
|
|
.data ALIGN(4K) : AT(ADDR(.data) - PAGE_OFFSET)
|
|
{
|
|
*(.data)
|
|
}
|
|
|
|
/* Read-write data (zeroed) */
|
|
.bss ALIGN(4K) : AT(ADDR(.bss) - PAGE_OFFSET)
|
|
{
|
|
*(COMMON)
|
|
*(.bss)
|
|
}
|
|
|
|
/* Go function redirection table. This table is used for hooking
|
|
* Go runtime function symbols so that calls to them are redirected to
|
|
* functions provided by the kernel.
|
|
*/
|
|
.goredirectstbl ALIGN(4K): AT(ADDR(.goredirectstbl) - PAGE_OFFSET)
|
|
{
|
|
*(.goredirectstbl)
|
|
}
|
|
|
|
_kernel_end = ALIGN(4K);
|
|
}
|