0001 /*
0002 * setup.ld
0003 *
0004 * Linker script for the i386 setup code
0005 */
0006 OUTPUT_FORMAT("elf32-i386")
0007 OUTPUT_ARCH(i386)
0008 ENTRY(_start)
0009
0010 SECTIONS
0011 {
0012 . = 0;
0013 .bstext : { *(.bstext) }
0014 .bsdata : { *(.bsdata) }
0015
0016 . = 495;
0017 .header : { *(.header) }
0018 .entrytext : { *(.entrytext) }
0019 .inittext : { *(.inittext) }
0020 .initdata : { *(.initdata) }
0021 __end_init = .;
0022
0023 .text : { *(.text .text.*) }
0024 .text32 : { *(.text32) }
0025
0026 . = ALIGN(16);
0027 .rodata : { *(.rodata*) }
0028
0029 .videocards : {
0030 video_cards = .;
0031 *(.videocards)
0032 video_cards_end = .;
0033 }
0034
0035 . = ALIGN(16);
0036 .data : { *(.data*) }
0037
0038 .signature : {
0039 setup_sig = .;
0040 LONG(0x5a5aaa55)
0041 }
0042
0043
0044 . = ALIGN(16);
0045 .bss :
0046 {
0047 __bss_start = .;
0048 *(.bss)
0049 __bss_end = .;
0050 }
0051 . = ALIGN(16);
0052 _end = .;
0053
0054 /DISCARD/ : {
0055 *(.note*)
0056 }
0057
0058 /*
0059 * The ASSERT() sink to . is intentional, for binutils 2.14 compatibility:
0060 */
0061 . = ASSERT(_end <= 0x8000, "Setup too big!");
0062 . = ASSERT(hdr == 0x1f1, "The setup header has the wrong offset!");
0063 /* Necessary for the very-old-loader check to work... */
0064 . = ASSERT(__end_init <= 5*512, "init sections too big!");
0065
0066 }