Changeset 4230


Ignore:
Timestamp:
Apr 13, 2006, 6:45:55 AM (15 years ago)
Author:
gb
Message:

Use linker script from ld 2.16.1 (Thanks to James Bielman).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/lisp-kernel/linuxx8664/elf_x86_64.x

    r4228 r4230  
    44OUTPUT_ARCH(i386:x86-64)
    55ENTRY(_start)
    6  SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64");  SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
     6SEARCH_DIR("/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/x86_64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
     7/* Do we need any of these for elf?
     8   __DYNAMIC = 0;    */
    79SECTIONS
    810{
     
    2224      *(.rel.fini)
    2325      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
    24       *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
     26      *(.rel.data.rel.ro*)
    2527      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
    2628      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
     
    3032      *(.rel.got)
    3133      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
    32       *(.rel.ldata .rel.ldata.* .rel.gnu.linkonce.l.*)
    33       *(.rel.lbss .rel.lbss.* .rel.gnu.linkonce.lb.*)
    34       *(.rel.lrodata .rel.lrodata.* .rel.gnu.linkonce.lr.*)
    3534    }
    3635  .rela.dyn       :
     
    4746      *(.rela.got)
    4847      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
    49       *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
    50       *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
    51       *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
    5248    }
    5349  .rel.plt        : { *(.rel.plt) }
     
    8278  .eh_frame_hdr : { *(.eh_frame_hdr) }
    8379  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) }
    84   .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
     80  .gcc_except_table   : ONLY_IF_RO { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
    8581  /* Adjust the address for the data segment.  We want to adjust up to
    8682     the same address within the page on the next page up.  */
     
    8884  /* Exception handling  */
    8985  .eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
    90   .gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
     86  .gcc_except_table   : ONLY_IF_RW { KEEP (*(.gcc_except_table)) *(.gcc_except_table.*) }
    9187  /* Thread Local Storage sections  */
    9288  .tdata          : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
    9389  .tbss           : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
    94   .preinit_array     :
    95   {
    96     PROVIDE (__preinit_array_start = .);
    97     KEEP (*(.preinit_array))
    98     PROVIDE (__preinit_array_end = .);
    99   }
    100   .init_array     :
    101   {
    102      PROVIDE (__init_array_start = .);
    103      KEEP (*(SORT(.init_array.*)))
    104      KEEP (*(.init_array))
    105      PROVIDE (__init_array_end = .);
    106   }
    107   .fini_array     :
    108   {
    109     PROVIDE (__fini_array_start = .);
    110     KEEP (*(.fini_array))
    111     KEEP (*(SORT(.fini_array.*)))
    112     PROVIDE (__fini_array_end = .);
    113   }
     90  /* Ensure the __preinit_array_start label is properly aligned.  We
     91     could instead move the label definition inside the section, but
     92     the linker would then create the section even if it turns out to
     93     be empty, which isn't pretty.  */
     94  . = ALIGN(64 / 8);
     95  PROVIDE (__preinit_array_start = .);
     96  .preinit_array     : { KEEP (*(.preinit_array)) }
     97  PROVIDE (__preinit_array_end = .);
     98  PROVIDE (__init_array_start = .);
     99  .init_array     : { KEEP (*(.init_array)) }
     100  PROVIDE (__init_array_end = .);
     101  PROVIDE (__fini_array_start = .);
     102  .fini_array     : { KEEP (*(.fini_array)) }
     103  PROVIDE (__fini_array_end = .);
    114104  .ctors          :
    115105  {
     
    125115    KEEP (*crtbegin*.o(.ctors))
    126116    /* We don't want to include the .ctor section from
    127        the crtend.o file until after the sorted ctors.
     117       from the crtend.o file until after the sorted ctors.
    128118       The .ctor section from the crtend file contains the
    129119       end of ctors marker and it must be last */
     
    140130  }
    141131  .jcr            : { KEEP (*(.jcr)) }
    142   .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) }
     132  .data.rel.ro : { *(.data.rel.ro.local) *(.data.rel.ro*) }
    143133  .dynamic        : { *(.dynamic) }
    144134  .got            : { *(.got) }
     
    152142  }
    153143  .data1          : { *(.data1) }
    154   _edata = .; PROVIDE (edata = .);
     144  _edata = .;
     145  PROVIDE (edata = .);
    155146  __bss_start = .;
    156147  .bss            :
     
    161152   /* Align here to ensure that the .bss section occupies space up to
    162153      _end.  Align after .bss to ensure correct alignment even if the
    163       .bss section disappears because there are no input sections.
    164       FIXME: Why do we need it? When there is no .bss section, we don't
    165       pad the .data section.  */
    166    . = ALIGN(. != 0 ? 64 / 8 : 1);
    167   }
    168   . = ALIGN(64 / 8);
    169   .lbss   :
    170   {
    171     *(.dynlbss)
    172     *(.lbss .lbss.* .gnu.linkonce.lb.*)
    173     *(LARGE_COMMON)
    174   }
    175   .lrodata   ALIGN(0x100000) + (. & (0x100000 - 1)) :
    176   {
    177     *(.lrodata .lrodata.* .gnu.linkonce.lr.*)
    178   }
    179   .ldata   ALIGN(0x100000) + (. & (0x100000 - 1)) :
    180   {
    181     *(.ldata .ldata.* .gnu.linkonce.l.*)
    182     . = ALIGN(. != 0 ? 64 / 8 : 1);
     154      .bss section disappears because there are no input sections.  */
     155   . = ALIGN(64 / 8);
    183156  }
    184157  . = ALIGN(64 / 8);
     
    221194  /DISCARD/ : { *(.note.GNU-stack) }
    222195}
     196
Note: See TracChangeset for help on using the changeset viewer.