1425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung/* 2425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungCopyright (c) 2018, The Linux Foundation. All rights reserved. 3425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 4425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungRedistribution and use in source and binary forms, with or without 5425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chungmodification, are permitted provided that the following conditions are 6425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chungmet: 7425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung * Redistributions of source code must retain the above copyright 8425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung notice, this list of conditions and the following disclaimer. 9425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung * Redistributions in binary form must reproduce the above 10425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung copyright notice, this list of conditions and the following 11425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung disclaimer in the documentation and/or other materials provided 12425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung with the distribution. 13425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung * Neither the name of The Linux Foundation nor the names of its 14425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung contributors may be used to endorse or promote products derived 15425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung from this software without specific prior written permission. 16425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 17425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungTHIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 18425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungWARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 20425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 21425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungBE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 24425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 26425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungOR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungIF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung*/ 29425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 30425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungOUTPUT_FORMAT("elf32-littlehexagon", "elf32-littlehexagon", 31425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung "elf32-littlehexagon") 32425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungOUTPUT_ARCH(hexagon) 33425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 34425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungPHDRS { 35425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chungphdr1 PT_LOAD; 36425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chungphdr2 PT_LOAD; 37425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chungdynamic1 PT_DYNAMIC; 38425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chungnote1 PT_NOTE; 39425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung} 40425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 41425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan ChungSECTIONS 42425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung{ 43425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 44425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* micro-image version note */ 45425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .note.qti.uimg.dl.ver : { *(.note.qti.uimg.dl.ver) } : phdr1 : note1 46425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 47425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* SysV hash section */ 48425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .hash : { *(.hash) } : phdr1 49425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 50425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* GNU hash section */ 51425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .gnu.hash : { *(.gnu.hash) } 52425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 53425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Dynamic Symbol Table section */ 54425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .dynsym : { *(.dynsym) } 55425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 56425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Dynamic string table section */ 57425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .dynstr : { *(.dynstr) } 58425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 59425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Dynamic relocations for data */ 60425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .rela.dyn : { *(.rela.dyn) } 61425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 62425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Dynamic relocations for PLT */ 63425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .rela.plt : { *(.rela.plt) } 64425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 65425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Initializer */ 66425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .init : 67425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung { 68425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung KEEP (*(.init)) 69425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung } 70425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 71425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Procedure Linkage table */ 72425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .plt : { *(.plt) } 73425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 74425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Text section */ 75425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .text : 76425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung { 77425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung *(.text*) 78425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung } 79425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 80425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Finalizer section */ 81425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .fini : 82425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung { 83425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung KEEP (*(.fini)) 84425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung } 85425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 86425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Standard symbols for Text */ 87425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung PROVIDE (__etext = .); 88425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung PROVIDE (_etext = .); 89425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung PROVIDE (etext = .); 90425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 91425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Read Only Data */ 92425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .rodata : { *(.rodata*) } 93425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 94425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* EH Frame Information */ 95425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .eh_frame_hdr : { *(.eh_frame_hdr) } 96425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } 97425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 98425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* TLS */ 99425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .tdata : { *(.tdata*) } 100425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .tbss : { *(.tbss*) } 101425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 102425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Constructors and Destructors */ 103425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .init_array : { KEEP (*(.init_array)) } 104425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .fini_array : { KEEP (*(.fini_array.*)) } 105425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .ctors : { KEEP (*(.ctors)) } 106425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .dtors : { KEEP (*(.dtors)) } 107425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 108425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 109425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .data.rel.ro : { *(.data.rel.ro*) } 110425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 111425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung . = ALIGN(4K); 112425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 113425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Dynamic Sections */ 114425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .dynamic : { *(.dynamic) } : dynamic1 : phdr2 115425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 116425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* GOT section */ 117425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .got : { *(.got) } 118425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 119425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* GOT slots for PLT section */ 120425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .got.plt : { *(.got.plt) } 121425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 122425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .data : 123425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung { 124425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung *(.data .data.*) 125425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung } 126425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung _edata = .; PROVIDE (edata = .); 127425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 128425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* BSS */ 129425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung __bss_start = .; 130425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .bss : 131425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung { 132425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung *(.bss*) 133425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung *(COMMON) 134425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung } 135425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung . = ALIGN (64); 136425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung _end = .; 137425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung 138425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* Non alloc sections */ 139425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung PROVIDE (end = .); 140425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .comment 0 : { *(.comment) } 141425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* GNU DWARF 1 extensions */ 142425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .debug_srcinfo 0 : { *(.debug_srcinfo) } 143425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .debug_sfnames 0 : { *(.debug_sfnames) } 144425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* DWARF 1.1 and DWARF 2 */ 145425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .debug_aranges 0 : { *(.debug_aranges) } 146425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .debug_pubnames 0 : { *(.debug_pubnames) } 147425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* DWARF 2 */ 148425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } 149425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .debug_abbrev 0 : { *(.debug_abbrev) } 150425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .debug_line 0 : { *(.debug_line) } 151425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .debug_frame 0 : { *(.debug_frame) } 152425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .debug_str 0 : { *(.debug_str) } 153425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .debug_loc 0 : { *(.debug_loc) } 154425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung /* DWARF 3 */ 155425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .debug_pubtypes 0 : { *(.debug_pubtypes) } 156425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung .debug_ranges 0 : { *(.debug_ranges) } 157425bd7996d9253c2a9d2acc3eacd7c2c451b92c1Meng-hsuan Chung} 158