Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
[linux/fpc-iii.git] / arch / x86 / boot / setup.ld
blob96a6c7563538364d2dee7e307846815156c11c33
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)
10 SECTIONS
12         . = 0;
13         .bstext         : { *(.bstext) }
14         .bsdata         : { *(.bsdata) }
16         . = 495;
17         .header         : { *(.header) }
18         .entrytext      : { *(.entrytext) }
19         .inittext       : { *(.inittext) }
20         .initdata       : { *(.initdata) }
21         __end_init = .;
23         .text           : { *(.text) }
24         .text32         : { *(.text32) }
26         . = ALIGN(16);
27         .rodata         : { *(.rodata*) }
29         .videocards     : {
30                 video_cards = .;
31                 *(.videocards)
32                 video_cards_end = .;
33         }
35         . = ALIGN(16);
36         .data           : { *(.data*) }
38         .signature      : {
39                 setup_sig = .;
40                 LONG(0x5a5aaa55)
41         }
44         . = ALIGN(16);
45         .bss            :
46         {
47                 __bss_start = .;
48                 *(.bss)
49                 __bss_end = .;
50         }
51         . = ALIGN(16);
52         _end = .;
54         /DISCARD/ : { *(.note*) }
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!");