Home | History | Annotate | Download | only in scripts
      1 /* -*- sh -*- */
      2 
      3 /*
      4  * Linker script for EFI images
      5  *
      6  */
      7 
      8 ENTRY ( _start )
      9 
     10 SECTIONS {
     11 
     12     /* The file starts at a virtual address of zero, and sections are
     13      * contiguous.  Each section is aligned to at least _max_align,
     14      * which defaults to 32.  Load addresses are equal to virtual
     15      * addresses.
     16      */
     17 
     18     _max_align = 32;
     19 
     20     /* Allow plenty of space for file headers */
     21     . = 0x1000;
     22 
     23     /*
     24      * The text section
     25      *
     26      */
     27 
     28     . = ALIGN ( _max_align );
     29     .text : {
     30 	_text = .;
     31 	*(.text)
     32 	*(.text.*)
     33 	_etext = .;
     34     }
     35 
     36     /*
     37      * The rodata section
     38      *
     39      */
     40 
     41     . = ALIGN ( _max_align );
     42     .rodata : {
     43 	_rodata = .;
     44 	*(.rodata)
     45 	*(.rodata.*)
     46 	_erodata = .;
     47     }
     48 
     49     /*
     50      * The data section
     51      *
     52      */
     53 
     54     . = ALIGN ( _max_align );
     55     .data : {
     56 	_data = .;
     57 	*(.data)
     58 	*(.data.*)
     59 	*(SORT(.tbl.*))		/* Various tables.  See include/tables.h */
     60 	_edata = .;
     61     }
     62 
     63     /*
     64      * The bss section
     65      *
     66      */
     67 
     68     . = ALIGN ( _max_align );
     69     .bss : {
     70 	_bss = .;
     71 	*(.bss)
     72 	*(.bss.*)
     73 	*(COMMON)
     74 	_ebss = .;
     75     }
     76 
     77     /*
     78      * Weak symbols that need zero values if not otherwise defined
     79      *
     80      */
     81 
     82     .weak 0x0 : {
     83 	_weak = .;
     84 	*(.weak)
     85 	_eweak = .;
     86     }
     87     _assert = ASSERT ( ( _weak == _eweak ), ".weak is non-zero length" );
     88 
     89     /*
     90      * Dispose of the comment and note sections to make the link map
     91      * easier to read
     92      *
     93      */
     94 
     95     /DISCARD/ : {
     96 	*(.comment)
     97 	*(.comment.*)
     98 	*(.note)
     99 	*(.note.*)
    100 	*(.eh_frame)
    101 	*(.eh_frame.*)
    102 	*(.rel)
    103 	*(.rel.*)
    104 	*(.discard)
    105     }
    106 }
    107