someboot 0.2.2

Sparreal OS kernel
Documentation
/*
 * Max available Page Size is 64K, so we set SectionAlignment
 * field of EFI application to 64K.
 */
PECOFF_FILE_ALIGN = 0x200;

${ld_defaults}
VM_LOAD_ADDRESS = ${kernel_load_vaddr};

OUTPUT_ARCH(aarch64)
ENTRY(_head)
PHDRS {
	text PT_LOAD FLAGS(7);	/* RWX */
	tls PT_TLS FLAGS(4);	/* R__ */
	note PT_NOTE FLAGS(4);	/* R__ */
}

SECTIONS
{
    . = VM_LOAD_ADDRESS;
    .head.text :  {
        KEEP(*(.head.text))
    }
${ld_text}
${ld_rodata}
${ld_data}
${ld_rela_dyn}

    .init_array : ALIGN(8) {
        __init_array_start = .;
        KEEP(*(SORT_BY_INIT_PRIORITY(.init_array.*)))
        KEEP(*(.init_array))
        __init_array_end = .;
    }

${ld_bss}

${ld_debug}
    _kernel_entry = ABSOLUTE(kernel_entry & 0xffffffffffff);
    _kernel_asize = ABSOLUTE(_end   - _head);
    _kernel_fsize = ABSOLUTE(_edata - _head);
    _kernel_vsize = ABSOLUTE(_end   - _etext);
    _kernel_rsize = ABSOLUTE(_edata - _etext);
    .gptab.sdata : {
        *(.gptab.data)
        *(.gptab.sdata)
    }
    .gptab.sbss : {
        *(.gptab.bss)
        *(.gptab.sbss)
    }
${ld_discard_exit}
${ld_discard_dynamic}
}