diff options
author | H. Peter Anvin <hpa@zytor.com> | 2007-07-11 15:18:55 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-12 13:55:55 -0400 |
commit | f2d98ae63dc64dedb00499289e13a50677f771f9 (patch) | |
tree | c70edccdf6c69d2d7f39bac32ec4c72b22bbb5e3 /arch/i386/boot/setup.ld | |
parent | 626073132b381684c4983e0d911e9aceb32e2cbc (diff) |
Linker script for the new x86 setup code
Linker script to define the layout of the new x86 setup code.
Includes assert for size overflow and a misaligned setup header.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/i386/boot/setup.ld')
-rw-r--r-- | arch/i386/boot/setup.ld | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/arch/i386/boot/setup.ld b/arch/i386/boot/setup.ld new file mode 100644 index 000000000000..df9234b3a5e0 --- /dev/null +++ b/arch/i386/boot/setup.ld | |||
@@ -0,0 +1,54 @@ | |||
1 | /* | ||
2 | * setup.ld | ||
3 | * | ||
4 | * Linker script for the i386 setup code | ||
5 | */ | ||
6 | OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") | ||
7 | OUTPUT_ARCH(i386) | ||
8 | ENTRY(_start) | ||
9 | |||
10 | SECTIONS | ||
11 | { | ||
12 | . = 0; | ||
13 | .bstext : { *(.bstext) } | ||
14 | .bsdata : { *(.bsdata) } | ||
15 | |||
16 | . = 497; | ||
17 | .header : { *(.header) } | ||
18 | .inittext : { *(.inittext) } | ||
19 | .initdata : { *(.initdata) } | ||
20 | .text : { *(.text*) } | ||
21 | |||
22 | . = ALIGN(16); | ||
23 | .rodata : { *(.rodata*) } | ||
24 | |||
25 | .videocards : { | ||
26 | video_cards = .; | ||
27 | *(.videocards) | ||
28 | video_cards_end = .; | ||
29 | } | ||
30 | |||
31 | . = ALIGN(16); | ||
32 | .data : { *(.data*) } | ||
33 | |||
34 | .signature : { | ||
35 | setup_sig = .; | ||
36 | LONG(0x5a5aaa55) | ||
37 | } | ||
38 | |||
39 | |||
40 | . = ALIGN(16); | ||
41 | .bss : | ||
42 | { | ||
43 | __bss_start = .; | ||
44 | *(.bss) | ||
45 | __bss_end = .; | ||
46 | } | ||
47 | . = ALIGN(16); | ||
48 | _end = .; | ||
49 | |||
50 | /DISCARD/ : { *(.note*) } | ||
51 | |||
52 | . = ASSERT(_end <= 0x8000, "Setup too big!"); | ||
53 | . = ASSERT(hdr == 0x1f1, "The setup header has the wrong offset!"); | ||
54 | } | ||