blob: 364e35c32fea03c8947705d7969af04302ae6b37 [file] [log] [blame]
Ian Campbellcba69ee2014-05-05 11:52:26 +01001/*
2 * (C) Copyright 2013
3 * Henrik Nordstrom <henrik@henriknordstrom.net>
4 *
5 * SPDX-License-Identifier: GPL-2.0+
6 */
7OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
8OUTPUT_ARCH(arm)
9ENTRY(s_init)
10SECTIONS
11{
12 . = 0x00002000;
13
14 . = ALIGN(4);
15 .text :
16 {
17 *(.text.s_init)
18 *(.text*)
19 }
20
21 . = ALIGN(4);
22 .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
23
24 . = ALIGN(4);
25 .data : {
26 *(.data*)
27 }
28
29 . = ALIGN(4);
30 . = .;
31
32 . = ALIGN(4);
33 .rel.dyn : {
34 __rel_dyn_start = .;
35 *(.rel*)
36 __rel_dyn_end = .;
37 }
38
39 .dynsym : {
40 __dynsym_start = .;
41 *(.dynsym)
42 }
43
44 . = ALIGN(4);
45 .note.gnu.build-id :
46 {
47 *(.note.gnu.build-id)
48 }
49 _end = .;
50
51 . = ALIGN(4096);
52 .mmutable : {
53 *(.mmutable)
54 }
55
56 .bss_start __rel_dyn_start (OVERLAY) : {
57 KEEP(*(.__bss_start));
58 __bss_base = .;
59 }
60
61 .bss __bss_base (OVERLAY) : {
62 *(.bss*)
63 . = ALIGN(4);
64 __bss_limit = .;
65 }
66
67 .bss_end __bss_limit (OVERLAY) : {
68 KEEP(*(.__bss_end));
69 }
70
71 /DISCARD/ : { *(.dynstr*) }
72 /DISCARD/ : { *(.dynamic*) }
73 /DISCARD/ : { *(.plt*) }
74 /DISCARD/ : { *(.interp*) }
75 /DISCARD/ : { *(.gnu*) }
76 /DISCARD/ : { *(.note*) }
77}