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