ENTRY(_start) KERNEL_AP_PMA = 0x0000000000008000; KERNEL_PMA = 0x0000000000100000; KERNEL_VMA = 0xffffffff80000000; SECTIONS { /* . = KERNEL_AP_PMA; .apinit BLOCK(4K) : ALIGN(4K) { *(.apinit) } */ . = KERNEL_PMA; .boot BLOCK(4K) : ALIGN(4K) { KEEP(*(.multiboot2.header)) *(.boot32.text) *(.boot32.rodata) *(.boot32.bss) *(.boot64.text) } . += KERNEL_VMA; .text ALIGN(4K) : AT (ADDR (.text) - KERNEL_VMA) { *(.text) } .rodata ALIGN(4K) : AT (ADDR (.rodata) - KERNEL_VMA) { *(.rodata) } .rodata. ALIGN(4K) : AT (ADDR (.rodata.) - KERNEL_VMA) { *(.rodata.*) } .data ALIGN(4K) : AT (ADDR (.data) - KERNEL_VMA) { *(.data) } .bss ALIGN(4K) : AT (ADDR (.bss) - KERNEL_VMA) { *(.bss) } .bss. ALIGN(4K) : AT (ADDR (.bss.) - KERNEL_VMA) { *(.bss.*) } /DISCARD/ : { *(.debug_abbrev) *(.debug_aranges) *(.debug_frame) *(.debug_gdb_scripts) *(.debug_info) *(.debug_line) *(.debug_line_str) *(.debug_loc) *(.debug_pubnames) *(.debug_pubtypes) *(.debug_ranges) *(.debug_str) *(.comment) *(.note.*) } _kernel_end = .; }