/* Script for -n: mix text and data on same page */
OUTPUT_FORMAT(pei-i386)
SEARCH_DIR("/usr/pkg/cross/i386-linux/lib");
ENTRY(__start)
header = .;
__fltused = .; /* set up floating pt for MS .obj\'s */
__ldused = .;
SECTIONS
{
  .text  __image_base__ + __section_alignment__  :
  {
     __text_start__ = . ;
     *(.init)
    *(.text)
    *(.text$*)
    *(.glue_7t)
    *(.glue_7)
     ___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
			LONG (-1); *(.ctors); *(.ctor); LONG (0);
     ___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
			LONG (-1); *(.dtors); *(.dtor);  LONG (0);
     *(.fini)
    /* ??? Why is .gcc_exc here?  */
     *(.gcc_exc)
     etext = .;
     __text_end__ = .;
    *(.gcc_except_table)
  }
  /* The Cygwin32 library uses a section to avoid copying certain data
     on fork.  This used to be named ".data".  The linker used
     to include this between __data_start__ and __data_end__, but that
     breaks building the cygwin32 dll.  Instead, we name the section
     ".data_cygwin_nocopy" and explictly include it after __data_end__. */
  .data BLOCK(__section_alignment__) :
  {
    __data_start__ = . ;
    *(.data)
    *(.data2)
    *(.data$*)
    __data_end__ = . ;
    *(.data_cygwin_nocopy)
  }
  .bss BLOCK(__section_alignment__) :
  {
    __bss_start__ = . ;
    *(.bss)
    *(COMMON)
    /* link.exe apparently pulls in .obj's because of UNDEF common
	symbols, which is not the coff way, but that's MS for you. */
    *(.CRT$XCA)
    *(.CRT$XCZ)
    *(.CRT$XIA)
    *(.CRT$XIZ)
    __bss_end__ = . ;
  }
  .rdata BLOCK(__section_alignment__) :
  {
    *(.rdata)
    *(.rdata$*)
    *(.eh_frame)
  }
  .edata BLOCK(__section_alignment__) :
  {
    *(.edata)
  }
  /DISCARD/ :
  {
    *(.debug$S)
    *(.debug$T)
    *(.debug$F)
    *(.drectve)
    *(.debug*)
  }
  .idata BLOCK(__section_alignment__) :
  {
    /* This cannot currently be handled with grouped sections.
	See pe.em:sort_sections.  */
    *(.idata$2)
    *(.idata$3)
    /* These zeroes mark the end of the import list.  */
    LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
    *(.idata$4)
    *(.idata$5)
    *(.idata$6)
    *(.idata$7)
  }
  .CRT BLOCK(__section_alignment__) :
  {
    *(.CRT$*)
  }
  .endjunk BLOCK(__section_alignment__) :
  {
    /* end is deprecated, don't use it */
     end = .;
     _end = .;
     __end__ = .;
  }
  .reloc BLOCK(__section_alignment__) :
  {
    *(.reloc)
  }
  .rsrc BLOCK(__section_alignment__) :
  {
    *(.rsrc)
    *(.rsrc$*)
  }
  .exc BLOCK(__section_alignment__) :
  {
    *(.exc)
    *(.exc$*)
  }
  .stab BLOCK(__section_alignment__) (NOLOAD) :
  {
    [ .stab ]
  }
  .stabstr BLOCK(__section_alignment__) (NOLOAD) :
  {
    [ .stabstr ]
  }
  /* DWARF debug sections.
     Symbols in the DWARF debugging sections are relative to the beginning
     of the section so we begin them at 0.  */
  /* DWARF 1 */
  .debug          0 (NOLOAD) : { *(.debug) }
  .line           0 (NOLOAD) : { *(.line) }
  /* GNU DWARF 1 extensions */
  .debug_srcinfo  0 (NOLOAD) : { *(.debug_srcinfo) }
  .debug_sfnames  0 (NOLOAD) : { *(.debug_sfnames) }
  /* DWARF 1.1 and DWARF 2 */
  .debug_aranges  0 (NOLOAD) : { *(.debug_aranges) }
  .debug_pubnames 0 (NOLOAD) : { *(.debug_pubnames) }
  /* DWARF 2 */
  .debug_info     0 (NOLOAD) : { *(.debug_info) *(.gnu.linkonce.wi.*) }
  .debug_abbrev   0 (NOLOAD) : { *(.debug_abbrev) }
  .debug_line     0 (NOLOAD) : { *(.debug_line) }
  .debug_frame    0 (NOLOAD) : { *(.debug_frame) }
  .debug_str      0 (NOLOAD) : { *(.debug_str) }
  .debug_loc      0 (NOLOAD) : { *(.debug_loc) }
  .debug_macinfo  0 (NOLOAD) : { *(.debug_macinfo) }
  /* SGI/MIPS DWARF 2 extensions */
  .debug_weaknames 0 (NOLOAD) : { *(.debug_weaknames) }
  .debug_funcnames 0 (NOLOAD) : { *(.debug_funcnames) }
  .debug_typenames 0 (NOLOAD) : { *(.debug_typenames) }
  .debug_varnames  0 (NOLOAD) : { *(.debug_varnames) }
}
