1 2SECTIONS 3{ 4 PROVIDE(_text = .); 5 .text : { *(.init) *(.text) *(.text.*) } 6 . = ALIGN(64K); 7 PROVIDE(etext = .); 8 9 PROVIDE(reloc_start = .); 10 .rela.dyn : { *(.rela.dyn) } 11 PROVIDE(reloc_end = .); 12 .dynsym : { *(.dynsym) } 13 .dynstr : { *(.dynstr) } 14 .hash : { *(.hash) } 15 .gnu.hash : { *(.gnu.hash) } 16 .got : { *(.got) *(.got.plt) } 17 .eh_frame : { *(.eh_frame) } 18 19 .rodata : { *(.rodata*) } 20 .data : { *(.data) } 21 . = ALIGN(16); 22 PROVIDE(bss = .); 23 .bss : { *(.bss) } 24 . = ALIGN(16); 25 PROVIDE(ebss = .); 26 . = ALIGN(64K); 27 PROVIDE(edata = .); 28 29 /* 30 * stack depth is 16K for arm and PAGE_SIZE for arm64, see THREAD_SIZE 31 * sp must be 16 byte aligned for arm64, and 8 byte aligned for arm 32 * sp must always be strictly less than the true stacktop 33 */ 34 . += 64K; 35 . = ALIGN(64K); 36 PROVIDE(stackptr = . - 16); 37 PROVIDE(stacktop = .); 38 39 /DISCARD/ : { 40 *(.note*) 41 *(.interp) 42 *(.debug*) 43 *(.comment) 44 *(.dynamic) 45 } 46} 47 48ENTRY(start) 49