11.1Scherry/* $FreeBSD$ */
21.1ScherryOUTPUT_FORMAT("elf64-ia64-little", "elf64-ia64-little", "elf64-ia64-little")
31.1ScherryOUTPUT_ARCH(ia64)
41.1ScherryENTRY(start)
51.1Scherrykernel_text = 0xe000000004000000;
61.1ScherrySECTIONS
71.1Scherry{
81.1Scherry  /* Read-only sections, merged into text segment: */
91.1Scherry  . = kernel_text + SIZEOF_HEADERS;
101.1Scherry  PROVIDE (btext = .);
111.1Scherry  .plt            : { *(.plt) }
121.1Scherry  .text           :
131.1Scherry  {
141.1Scherry    *(.text .stub .text.* .gnu.linkonce.t.*)
151.1Scherry    /* .gnu.warning sections are handled specially by elf32.em.  */
161.1Scherry    *(.gnu.warning)
171.1Scherry  } =0x00300000010070000002000001000400
181.1Scherry  _etext = .;
191.1Scherry  PROVIDE (etext = .);
201.1Scherry  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
211.1Scherry  .rodata1        : { *(.rodata1) }
221.1Scherry  .sdata2         : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }
231.1Scherry  .sbss2          : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
241.1Scherry  .opd            : { *(.opd) }
251.1Scherry  .IA_64.unwind_info   : { *(.IA_64.unwind_info* .gnu.linkonce.ia64unwi.*) }
261.1Scherry  .IA_64.unwind   : { *(.IA_64.unwind* .gnu.linkonce.ia64unw.*) }
271.1Scherry  /* Adjust the address for the data segment.  We want to adjust up to
281.1Scherry     the same address within the page on the next page up.  */
291.1Scherry  . = . + 8192;
301.1Scherry  .data           :
311.1Scherry  {
321.1Scherry    *(.data.proc0 .data .data.* .gnu.linkonce.d.*)
331.1Scherry    SORT(CONSTRUCTORS)
341.1Scherry  }
351.1Scherry  .data1          : { *(.data1) }
361.1Scherry  .dynamic        : { *(.dynamic) }
371.1Scherry  . = ALIGN(16);
381.1Scherry  __gp = . + 0x200000;
391.1Scherry  .got            : { *(.got.plt) *(.got) }
401.1Scherry  .IA_64.pltoff   : { *(.IA_64.pltoff) }
411.1Scherry  /* We want the small data sections together, so single-instruction offsets
421.1Scherry     can access them all, and initialized data all before uninitialized, so
431.1Scherry     we can shorten the on-disk segment size.  */
441.1Scherry  .sdata          :
451.1Scherry  {
461.1Scherry    *(.sdata .sdata.* .gnu.linkonce.s.*)
471.1Scherry  }
481.1Scherry  _edata = .;
491.1Scherry  PROVIDE (edata = .);
501.1Scherry  __bss_start = .;
511.1Scherry  .sbss           :
521.1Scherry  {
531.1Scherry    PROVIDE (__sbss_start = .);
541.1Scherry    PROVIDE (___sbss_start = .);
551.1Scherry    *(.dynsbss)
561.1Scherry    *(.sbss .sbss.* .gnu.linkonce.sb.*)
571.1Scherry    *(.scommon)
581.1Scherry    PROVIDE (__sbss_end = .);
591.1Scherry    PROVIDE (___sbss_end = .);
601.1Scherry  }
611.1Scherry  .bss            :
621.1Scherry  {
631.2Suebayasi    *(.dynbss)
641.2Suebayasi    *(.bss .bss.* .gnu.linkonce.b.*)
651.2Suebayasi    *(COMMON)
661.2Suebayasi    /* Align here to ensure that the .bss section occupies space up to
671.2Suebayasi       _end.  Align after .bss to ensure correct alignment even if the
681.2Suebayasi       .bss section disappears because there are no input sections.  */
691.2Suebayasi    . = ALIGN(64 / 8);
701.1Scherry  }
711.1Scherry  . = ALIGN(64 / 8);
721.1Scherry  _end = .;
731.1Scherry  PROVIDE (end = .);
741.1Scherry}
75