DragonOS/kernel/link.lds

63 lines
1.0 KiB
Plaintext

OUTPUT_FORMAT("elf64-x86-64","elf64-x86-64","elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
ENTRY(_start)
SECTIONS
{
KERNEL_VMA = 0xffff800000000000;
//KERNEL_VMA = 0;
. = 0;
. = 0x100000;
.boot.text :
{
KEEP(*(.multiboot_header))
head.o(.bootstrap)
head.o(.bootstrap.code64)
head.o(.bootstrap.data)
. = ALIGN(4096);
}
. += KERNEL_VMA;
text_start_pa = .;
.text (text_start_pa): AT(text_start_pa - KERNEL_VMA)
{
_text = .;
*(.text)
_etext = .;
}
. = ALIGN(8);
data_start_pa = .;
.data (data_start_pa): AT(data_start_pa - KERNEL_VMA)
{
_data = .;
*(.data)
_edata = .;
}
rodata_start_pa = .;
.rodata (rodata_start_pa): AT(rodata_start_pa - KERNEL_VMA)
{
_rodata = .;
*(.rodata)
_erodata = .;
}
. = ALIGN(32768);
init_proc_union_start_pa = .;
.data.init_proc_union (init_proc_union_start_pa): AT(init_proc_union_start_pa - KERNEL_VMA)
{ *(.data.init_proc_union) }
bss_start_pa = .;
.bss (bss_start_pa): AT(bss_start_pa - KERNEL_VMA)
{
_bss = .;
*(.bss)
_ebss = .;
}
_end = .;
}