Print this page
11561 loader script needs to place .eh_frame after .text

Split Close
Expand all
Collapse all
          --- old/usr/src/boot/sys/boot/efi/loader/arch/amd64/ldscript.amd64
          +++ new/usr/src/boot/sys/boot/efi/loader/arch/amd64/ldscript.amd64
   1    1  OUTPUT_FORMAT("elf64-x86-64-sol2", "elf64-x86-64-sol2", "elf64-x86-64-sol2")
   2    2  OUTPUT_ARCH(i386:x86-64)
   3    3  ENTRY(_start)
   4    4  SECTIONS
   5    5  {
   6    6    /* Read-only sections, merged into text segment: */
   7    7    . = 0;
   8    8    ImageBase = .;
   9    9    .hash : { *(.hash) }  /* this MUST come first! */
  10   10    . = ALIGN(4096);
  11      -  .eh_frame :
  12      -  {
  13      -    *(.eh_frame)
  14      -  }
  15      -  . = ALIGN(4096);
  16   11    .text         : {
  17   12      multiboot.o(.text)
  18   13      *(.text .stub .text.* .gnu.linkonce.t.*)
  19   14      /* .gnu.warning sections are handled specially by elf32.em. */
  20   15      *(.gnu.warning)
  21   16      *(.plt)
  22   17    } =0xCCCCCCCC
  23   18    . = ALIGN(4096);
       19 +  .eh_frame :
       20 +  {
       21 +    *(.eh_frame)
       22 +  }
       23 +  . = ALIGN(4096);
  24   24    .data         : {
  25   25      *(.rodata .rodata.* .gnu.linkonce.r.*)
  26   26      *(.rodata1)
  27   27      *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
  28   28      *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
  29   29      *(.opd)
  30   30      *(.data .data.* .gnu.linkonce.d.*)
  31   31      *(.data1)
  32   32      *(.plabel)
  33   33      *(.dynbss)
↓ open down ↓ 39 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX