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";