OUTPUT_FORMAT(elf64-x86-64) ENTRY (zion) /* Define the program headers we want so the bootloader gives us the right */ /* MMU permissions */ PHDRS { text PT_LOAD FLAGS((1 << 0) | (1 << 2)) ; /* Execute + Read */ rodata PT_LOAD FLAGS((1 << 2)) ; /* Read only */ data PT_LOAD FLAGS((1 << 1) | (1 << 2)) ; /* Write + Read */ } SECTIONS { . = 0xffffffff80000000; /* Add a symbol that indicates the start address of the kernel. */ _kernel_start = .; .text : { *(.text .text.*) } :text /* Move to the next memory page for .rodata */ . += CONSTANT(MAXPAGESIZE); .rodata : { *(.rodata .rodata.*) } :rodata /* Move to the next memory page for .data */ . += CONSTANT(MAXPAGESIZE); .data : { *(.data .data.*) } :data .bss : { *(COMMON) *(.bss .bss.*) } :data /* Add a symbol that indicates the end address of the kernel. */ _kernel_end = .; }