OUTPUT_FORMAT(elf64-aarch64)
ENTRY(_start)
PHDRS
{
headers PT_PHDR PHDRS;
text PT_LOAD FILEHDR PHDRS;
rodata PT_LOAD;
data PT_LOAD;
}
_ALIGN_SIZE = 0x1000;
_IMAGE_BASE = 0x40400000;
_STACK_SIZE = 0x10000000;
SECTIONS
{
. = _IMAGE_BASE;
__image_start = .;
. += SIZEOF_HEADERS;
.text : ALIGN(_ALIGN_SIZE) {
*(.text .text.*)
}
.data : ALIGN(_ALIGN_SIZE) {
*(.data .data.*)
}
.rodata : ALIGN(_ALIGN_SIZE) {
__el2_tls_start = .;
KEEP(*(.el2_tls .el2_tls.*))
__el2_tls_end = .;
*(.rodata .rodata.*)
}
.bss (NOLOAD) : ALIGN(_ALIGN_SIZE) {
__bss_start = .;
*(.bss .bss.*)
*(COMMON)
__bss_end = .;
} :data
.stack (NOLOAD) : ALIGN(_ALIGN_SIZE) {
__stack_bottom = .;
. = . + _STACK_SIZE;
__stack_top = .;
} :data
/DISCARD/ : {
*(.comment)
*(.eh_frame*)
*(.debug*)
*(.gnu*)
*(.note*)
*(.symtab)
*(.strtab)
}
. = ALIGN(_ALIGN_SIZE);
__image_end = .;
}