Skip to main content

LINKER_SCRIPT

Constant LINKER_SCRIPT 

Source
const LINKER_SCRIPT: &str = "ENTRY(tz_app_init);\n\nPHDRS {\n  CODE_RO PT_LOAD FILEHDR PHDRS;\n  MTDATA PT_LOAD FLAGS(0x04000004);\n  GOT PT_LOAD;\n  DATA PT_LOAD;\n  DYN PT_DYNAMIC;\n  REL PT_LOAD;\n  RELRO PT_GNU_RELRO;\n}\n\nSECTIONS {\n . = SIZEOF_HEADERS;\n\n .plt : {\n    PROVIDE (text_section_base = .);\n    * (.plt*)\n  } : CODE_RO\n\n  .text : {\n    * (.text* kthread_shared)\n    KEEP (*(tzapp_syscall_asm))\n    * (.rodata*)\n  } : CODE_RO\n\n  .eh_frame ALIGN(8) : {\n      PROVIDE (__eh_frame = .);\n      KEEP (*(.eh_frame)) *(.eh_frame.*)\n  }\n\n  PROVIDE (text_section_limit = .);\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n\n  .metadata ALIGN(4096) : {\n    KEEP (*(.metadata))\n    KEEP (*(.metadata.*))\n  } : MTDATA\n\n  .got ALIGN(4096) : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } : GOT\n    : RELRO\n\n  .data.rel.ro.local : {\n    *(.data.rel.ro.local*)\n  } : GOT\n    : RELRO\n\n  .data.rel.ro : {\n    *(.data.rel.ro*)\n  } : GOT\n    : RELRO\n\n  INIT_ARRAY : {\n    FILL(0x0)\n    __init_array_start = .;\n    *(.init_array)\n    __init_array_end = .;\n  } : GOT : RELRO\n\n  FINI_ARRAY : {\n    FILL(0x0)\n    __fini_array_start = .;\n    *(.fini_array)\n    __fini_array_end = .;\n  } : GOT : RELRO\n\n  .data ALIGN(4096) : {\n    data_section_base = .;\n    * (.data*)\n    * (.bss* COMMON)\n    data_section_limit = .;\n  } : DATA\n\n  .dynamic ALIGN(4096) : { *(.dynamic) } : DYN : REL\n  .rela.dyn : { *(.rela.dyn) } : REL\n  .rela.plt : { *(.rela.plt) } : REL\n  .hash : { *(.hash) } : REL\n  .dynsym : { *(.dynsym) } : REL\n  .dynstr : { *(.dynstr) } : REL\n  .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }\n  .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }\n  /DISCARD/ : { *(.ARM.exidx*) *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) *(.init) *(.fini) }\n}\n";