source: bootcd/isolinux/syslinux-6.03/efi/syslinux.ld @ e16e8f2

Last change on this file since e16e8f2 was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 2.7 KB
Line 
1/* -----------------------------------------------------------------------
2 *   
3 *   Copyright 2008-2009 H. Peter Anvin - All Rights Reserved
4 *   Copyright 2009 Intel Corporation; author: H. Peter Anvin
5 *
6 *   This program is free software; you can redistribute it and/or modify
7 *   it under the terms of the GNU General Public License as published by
8 *   the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
9 *   Boston MA 02110-1301, USA; either version 2 of the License, or
10 *   (at your option) any later version; incorporated herein by reference.
11 *
12 * ----------------------------------------------------------------------- */
13
14/*
15 * Linker script for the SYSLINUX core
16 */
17
18OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
19OUTPUT_ARCH(i386)
20ENTRY(_start)
21
22SECTIONS
23{
24        . = 0;
25        ImageBase = .;          /* For gnu-efi's crt0 */
26        __module_start = .;
27        . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS;
28        .text : {
29                FILL(0x90909090)
30                __text_start = .;
31                *(.text)
32                *(.text.*)
33                __text_end = .;
34        }
35
36        . = ALIGN(16);
37
38        .rodata : {
39                __rodata_start = .;
40                *(.rodata)
41                *(.rodata.*)
42                __rodata_end = .;
43        }
44
45        . = ALIGN(4);
46
47        .ctors : {
48                __ctors_start = .;
49                KEEP (*(SORT(.ctors.*)))
50                KEEP (*(.ctors))
51                __ctors_end = .;
52        }
53
54        .dtors : {
55                __dtors_start = .;
56                KEEP (*(SORT(.dtors.*)))
57                KEEP (*(.dtors))
58                __dtors_end = .;
59        }
60
61        . = ALIGN(4096);
62        .rel : {
63                *(.rel.got)
64                *(.rel.data)
65                *(.rel.data.*)
66                *(.rel.ctors)
67        }
68
69        . = ALIGN(4);
70
71        .gnu.hash : {
72                __gnu_hash_start = .;
73                *(.gnu.hash)
74                __gnu_hash_end = .;
75        }
76
77
78        .dynsym : {
79                __dynsym_start = .;
80                *(.dynsym)
81                __dynsym_end = .;
82        }
83
84        . = ALIGN(4);
85
86        .dynstr : {
87                __dynstr_start = .;
88                *(.dynstr)
89                __dynstr_end = .;
90        }
91
92        . = ALIGN(4);
93
94        .dynlink : {
95                __dynlink_start = .;
96                *(.dynlink)
97                __dynlink_end = .;
98        }
99
100        . = ALIGN(4);
101
102        .got : {
103                __got_start = .;
104                KEEP (*(.got.plt))
105                KEEP (*(.got))
106                __got_end = .;
107        }
108
109        . = ALIGN(4);
110
111        .dynamic : {
112                __dynamic_start = .;
113                *(.dynamic)
114                __dynamic_end = .;
115        }
116
117        . = ALIGN(16);
118
119        .data : {
120                __data_start = .;
121                *(.data)
122                *(.data.*)
123                *(.lowmem)
124                __data_end = .;
125        }
126
127        .reloc : {
128                *(.reloc)
129        }
130
131        .comment : {
132                *(.commet)
133        }
134
135        .symtab : {
136                *(.symtab)
137        }
138
139        .strtab : {
140                *(.strtab)
141        }
142
143        .bss : {
144                /* the EFI loader doesn't seem to like a .bss section,
145                   so we stick it all into .data: */
146                __bss_start = .;
147                *(.bss)
148                *(.bss.*)
149                *(.bss16)
150                *(.hugebss)
151                *(COMMON)
152                __bss_end = .;
153                *(.sbss)
154                *(.scommon)
155        }
156        __bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start);
157        __bss_dwords = (__bss_len + 3) >> 2;
158
159        . = ALIGN(128);
160       
161        /* Very large objects which don't need to be zeroed */
162
163        .hugebss : {
164                __hugebss_start = .;
165                *(.hugebss)
166                *(.hugebss.*)
167                __hugebss_end = .;
168        }
169
170        _end = .;
171
172        /* Stuff we don't need... */
173        /DISCARD/ : {
174                *(.eh_frame)
175        }
176}
Note: See TracBrowser for help on using the repository browser.