GNU Linux-libre 6.7.9-gnu
[releases.git] / arch / um / kernel / dyn.lds.S
1 #include <asm/vmlinux.lds.h>
2 #include <asm/page.h>
3
4 OUTPUT_FORMAT(ELF_FORMAT)
5 OUTPUT_ARCH(ELF_ARCH)
6 ENTRY(_start)
7 jiffies = jiffies_64;
8
9 VERSION {
10   {
11     local: *;
12   };
13 }
14
15 SECTIONS
16 {
17   PROVIDE (__executable_start = START);
18   . = START + SIZEOF_HEADERS;
19   .interp         : { *(.interp) }
20   __binary_start = .;
21   . = ALIGN(4096);              /* Init code and data */
22   _text = .;
23   INIT_TEXT_SECTION(PAGE_SIZE)
24
25   . = ALIGN(PAGE_SIZE);
26
27   /* Read-only sections, merged into text segment: */
28   .hash           : { *(.hash) }
29   .gnu.hash       : { *(.gnu.hash) }
30   .dynsym         : { *(.dynsym) }
31   .dynstr         : { *(.dynstr) }
32   .gnu.version    : { *(.gnu.version) }
33   .gnu.version_d  : { *(.gnu.version_d) }
34   .gnu.version_r  : { *(.gnu.version_r) }
35   .rel.init       : { *(.rel.init) }
36   .rela.init      : { *(.rela.init) }
37   .rel.text       : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) }
38   .rela.text      : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) }
39   .rel.fini       : { *(.rel.fini) }
40   .rela.fini      : { *(.rela.fini) }
41   .rel.rodata     : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) }
42   .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }
43   .rel.data       : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) }
44   .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }
45   .rel.tdata      : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) }
46   .rela.tdata     : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }
47   .rel.tbss       : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) }
48   .rela.tbss      : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }
49   .rel.ctors      : { *(.rel.ctors) }
50   .rela.ctors     : { *(.rela.ctors) }
51   .rel.dtors      : { *(.rel.dtors) }
52   .rela.dtors     : { *(.rela.dtors) }
53   .rel.got        : { *(.rel.got) }
54   .rela.got       : { *(.rela.got) }
55   .rel.bss        : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) }
56   .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
57   .rel.plt : {
58         *(.rel.plt)
59         PROVIDE_HIDDEN(__rel_iplt_start = .);
60         *(.rel.iplt)
61         PROVIDE_HIDDEN(__rel_iplt_end = .);
62   }
63   .rela.plt : {
64         *(.rela.plt)
65         PROVIDE_HIDDEN(__rela_iplt_start = .);
66         *(.rela.iplt)
67         PROVIDE_HIDDEN(__rela_iplt_end = .);
68   }
69   .init           : {
70     KEEP (*(.init))
71   } =0x90909090
72   .plt            : { *(.plt) }
73   .text           : {
74     _stext = .;
75     TEXT_TEXT
76     SCHED_TEXT
77     LOCK_TEXT
78     IRQENTRY_TEXT
79     SOFTIRQENTRY_TEXT
80     *(.fixup)
81     *(.stub .text.* .gnu.linkonce.t.*)
82     /* .gnu.warning sections are handled specially by elf32.em.  */
83     *(.gnu.warning)
84
85     . = ALIGN(PAGE_SIZE);
86   } =0x90909090
87   . = ALIGN(PAGE_SIZE);
88   .syscall_stub : {
89         __syscall_stub_start = .;
90         *(.__syscall_stub*)
91         __syscall_stub_end = .;
92   }
93   .fini           : {
94     KEEP (*(.fini))
95   } =0x90909090
96
97   .kstrtab : { *(.kstrtab) }
98
99   #include <asm/common.lds.S>
100
101   __init_begin = .;
102   init.data : { INIT_DATA }
103   __init_end = .;
104
105   /* Ensure the __preinit_array_start label is properly aligned.  We
106      could instead move the label definition inside the section, but
107      the linker would then create the section even if it turns out to
108      be empty, which isn't pretty.  */
109   . = ALIGN(32 / 8);
110   .preinit_array     : { *(.preinit_array) }
111   .init_array     : {
112     *(.kasan_init)
113     *(.init_array.*)
114     *(.init_array)
115   }
116   .fini_array     : { *(.fini_array) }
117   .data           : {
118     INIT_TASK_DATA(KERNEL_STACK_SIZE)
119     . = ALIGN(KERNEL_STACK_SIZE);
120     *(.data..init_irqstack)
121     DATA_DATA
122     *(.data.* .gnu.linkonce.d.*)
123     SORT(CONSTRUCTORS)
124   }
125   .data1          : { *(.data1) }
126   .tdata          : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
127   .tbss           : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
128   .eh_frame       : { KEEP (*(.eh_frame)) }
129   .gcc_except_table   : { *(.gcc_except_table) }
130   .dynamic        : { *(.dynamic) }
131   .ctors          : {
132     /* gcc uses crtbegin.o to find the start of
133        the constructors, so we make sure it is
134        first.  Because this is a wildcard, it
135        doesn't matter if the user does not
136        actually link against crtbegin.o; the
137        linker won't look for a file to match a
138        wildcard.  The wildcard also means that it
139        doesn't matter which directory crtbegin.o
140        is in.  */
141     KEEP (*crtbegin.o(.ctors))
142     /* We don't want to include the .ctor section from
143        from the crtend.o file until after the sorted ctors.
144        The .ctor section from the crtend file contains the
145        end of ctors marker and it must be last */
146     KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
147     KEEP (*(SORT(.ctors.*)))
148     KEEP (*(.ctors))
149   }
150   .dtors          : {
151     KEEP (*crtbegin.o(.dtors))
152     KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
153     KEEP (*(SORT(.dtors.*)))
154     KEEP (*(.dtors))
155   }
156   .jcr            : { KEEP (*(.jcr)) }
157   .got            : { *(.got.plt) *(.got) }
158   _edata = .;
159   PROVIDE (edata = .);
160   .bss            : {
161    __bss_start = .;
162    *(.dynbss)
163    *(.bss .bss.* .gnu.linkonce.b.*)
164    *(COMMON)
165    /* Align here to ensure that the .bss section occupies space up to
166       _end.  Align after .bss to ensure correct alignment even if the
167       .bss section disappears because there are no input sections.  */
168    . = ALIGN(32 / 8);
169   . = ALIGN(32 / 8);
170   }
171    __bss_stop = .;
172   _end = .;
173   PROVIDE (end = .);
174
175   STABS_DEBUG
176   DWARF_DEBUG
177   ELF_DETAILS
178
179   DISCARDS
180 }