Back to home page

OSCL-LXR

 
 

    


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 }