Files
Astral/kernel-src/arch/x86-64/kernel.ld
T
2026-05-12 22:04:13 -03:00

74 lines
1.1 KiB
Plaintext

OUTPUT_FORMAT(elf64-x86-64)
OUTPUT_ARCH(i386:x86-64)
ENTRY(kernel_entry)
PHDRS
{
text PT_LOAD FLAGS((1 << 0) | (1 <<2)) ;
rodata PT_LOAD FLAGS((1 << 2)) ;
data PT_LOAD FLAGS((1 << 1) | (1 << 2));
}
SECTIONS
{
. = 0xffffffff80000000;
_text_start = .;
.text : {
*(.text .text.*);
} :text
. = ALIGN(4K);
_text_end = .;
_rodata_start = .;
.rodata : {
*(.rodata .rodata.*);
} :rodata
. = ALIGN(8);
.timekeeper_sources : {
timekeeper_sources = .;
*(.timekeeper_sources);
timekeeper_sources_end = .;
} :rodata
. = ALIGN(8);
.usb_class_drivers : {
usb_class_drivers = .;
*(.usb_class_drivers);
usb_class_drivers_end = .;
} :rodata
. = ALIGN(8);
.init_routines : {
init_routines = .;
*(.init_routines);
init_routines_end = .;
} :rodata
. = ALIGN(4K);
_rodata_end = .;
_data_start = .;
data : {
*(.data .data.*);
} :data
. = ALIGN(8);
.kernel_arguments : {
kernel_arguments = .;
*(.kernel_arguments);
kernel_arguments_end = .;
} :data
. = ALIGN(8);
.bss : {
*(COMMON)
*(.bss .bss.*)
} :data
. = ALIGN(4K);
_data_end = .;
}