Loading...
1/*
2 * setup.ld
3 *
4 * Linker script for the i386 setup code
5 */
6OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
7OUTPUT_ARCH(i386)
8ENTRY(_start)
9
10SECTIONS
11{
12 . = 0;
13 .bstext : { *(.bstext) }
14 .bsdata : { *(.bsdata) }
15
16 . = 495;
17 .header : { *(.header) }
18 .entrytext : { *(.entrytext) }
19 .inittext : { *(.inittext) }
20 .initdata : { *(.initdata) }
21 __end_init = .;
22
23 .text : { *(.text) }
24 .text32 : { *(.text32) }
25
26 . = ALIGN(16);
27 .rodata : { *(.rodata*) }
28
29 .videocards : {
30 video_cards = .;
31 *(.videocards)
32 video_cards_end = .;
33 }
34
35 . = ALIGN(16);
36 .data : { *(.data*) }
37
38 .signature : {
39 setup_sig = .;
40 LONG(0x5a5aaa55)
41 }
42
43
44 . = ALIGN(16);
45 .bss :
46 {
47 __bss_start = .;
48 *(.bss)
49 __bss_end = .;
50 }
51 . = ALIGN(16);
52 _end = .;
53
54 /DISCARD/ : { *(.note*) }
55
56 /*
57 * The ASSERT() sink to . is intentional, for binutils 2.14 compatibility:
58 */
59 . = ASSERT(_end <= 0x8000, "Setup too big!");
60 . = ASSERT(hdr == 0x1f1, "The setup header has the wrong offset!");
61 /* Necessary for the very-old-loader check to work... */
62 . = ASSERT(__end_init <= 5*512, "init sections too big!");
63
64}
1/*
2 * setup.ld
3 *
4 * Linker script for the i386 setup code
5 */
6OUTPUT_FORMAT("elf32-i386")
7OUTPUT_ARCH(i386)
8ENTRY(_start)
9
10SECTIONS
11{
12 . = 0;
13 .bstext : {
14 *(.bstext)
15 . = 495;
16 } =0xffffffff
17
18 .header : { *(.header) }
19 .entrytext : { *(.entrytext) }
20 .inittext : { *(.inittext) }
21 .initdata : { *(.initdata) }
22 __end_init = .;
23
24 .text : { *(.text .text.*) }
25 .text32 : { *(.text32) }
26
27 .pecompat : { *(.pecompat) }
28 PROVIDE(pecompat_fsize = setup_size - pecompat_fstart);
29
30 . = ALIGN(16);
31 .rodata : { *(.rodata*) }
32
33 .videocards : {
34 video_cards = .;
35 *(.videocards)
36 video_cards_end = .;
37 }
38
39 . = ALIGN(16);
40 .data : { *(.data*) }
41
42 .signature : {
43 setup_sig = .;
44 LONG(0x5a5aaa55)
45
46 setup_size = ALIGN(ABSOLUTE(.), 4096);
47 setup_sects = ABSOLUTE(setup_size / 512);
48 }
49
50 . = ALIGN(16);
51 .bss :
52 {
53 __bss_start = .;
54 *(.bss)
55 __bss_end = .;
56 }
57 . = ALIGN(16);
58 _end = .;
59
60 /DISCARD/ : {
61 *(.note*)
62 }
63
64 /*
65 * The ASSERT() sink to . is intentional, for binutils 2.14 compatibility:
66 */
67 . = ASSERT(_end <= 0x8000, "Setup too big!");
68 . = ASSERT(hdr == 0x1f1, "The setup header has the wrong offset!");
69 /* Necessary for the very-old-loader check to work... */
70 . = ASSERT(__end_init <= 5*512, "init sections too big!");
71
72}