| 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.*) |
| *(.plt .plt.*) |
| } |
| |
| /* Read-only sections */ |
| |
| . = ALIGN(0x1000); |
| |
| .module_name : { *(.module_name) } :rodata |
| |
| .rodata : { *(.rodata .rodata.*) } :rodata |
| .hash : { *(.hash) } |
| .dynsym : { *(.dynsym .dynsym.*) } |
| .dynstr : { *(.dynstr .dynstr.*) } |
| .rela.dyn : { *(.rela.dyn) } |
| |
| .eh_frame : { |
| HIDDEN(__eh_frame_start = .); |
| *(.eh_frame .eh_frame.*) |
| HIDDEN(__eh_frame_end = .); |
| } |
| |
| .eh_frame_hdr : { |
| HIDDEN(__eh_frame_hdr_start = .); |
| *(.eh_frame_hdr .eh_frame_hdr.*) |
| HIDDEN(__eh_frame_hdr_end = .); |
| } |
| |
| /* Read-write sections */ |
| |
| . = ALIGN(0x1000); |
| |
| .data : { |
| *(.data .data.*) |
| *(.got .got.*) |
| *(.got.plt .got.plt.*) |
| } :data |
| |
| .dynamic : { |
| HIDDEN(__dynamic_start = .); |
| *(.dynamic) |
| } |
| |
| /* BSS section */ |
| |
| . = ALIGN(0x1000); |
| |
| .bss : { |
| HIDDEN(__bss_start = .); |
| *(.bss .bss.*) |
| *(COMMON) |
| . = ALIGN(8); |
| HIDDEN(__bss_end = .); |
| } :bss |
| } |