OUTPUT_FORMAT(elf64-littleaarch64) OUTPUT_ARCH(aarch64) ENTRY(_start) PHDRS { text PT_LOAD FLAGS(5); rodata PT_LOAD FLAGS(4); data PT_LOAD FLAGS(6); bss PT_LOAD FLAGS(6); dynamic PT_DYNAMIC; } SECTIONS { . = 0; .text : ALIGN(0x1000) { HIDDEN(__text_start = .); KEEP(*(.text.jmp)) . = 0x80; *(.text .text.*) } /* Read-only sections */ . = ALIGN(0x1000); .rodata : { *(.rodata .rodata.*) } :rodata .mod0 : { KEEP(crt0.nso.o(.data.mod0)) KEEP(crt0.nro.o(.data.mod0)) KEEP(crt0.lib.nro.o(.data.mod0)) } /* Read-write sections */ . = ALIGN(0x1000); .data : { *(.data .data.*) } :data .dynamic : { HIDDEN(__dynamic_start = .); *(.dynamic) } /* BSS section */ . = ALIGN(0x1000); .bss : { HIDDEN(__bss_start = .); *(.bss .bss.*) *(COMMON) . = ALIGN(8); HIDDEN(__bss_end = .); } :bss }