/*      $NetBSD: ld.script,v 1.1 2007/12/17 19:09:51 garbled Exp $      */

OUTPUT_ARCH(powerpc)
SEARCH_DIR(.); SEARCH_DIR(libc);
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib);
/* Do we need any of these for elf?
  __DYNAMIC = 0;    */
SECTIONS
{
 /* Read-only sections, merged into text segment: */
 . = + SIZEOF_HEADERS;
 .interp : { *(.interp) }
 .hash          : { *(.hash)           }
 .dynsym        : { *(.dynsym)         }
 .dynstr        : { *(.dynstr)         }
 .rel.text      : { *(.rel.text)               }
 .rela.text     : { *(.rela.text)      }
 .rel.data      : { *(.rel.data)               }
 .rela.data     : { *(.rela.data)      }
 .rel.rodata    : { *(.rel.rodata)     }
 .rela.rodata   : { *(.rela.rodata)    }
 .rel.got       : { *(.rel.got)                }
 .rela.got      : { *(.rela.got)               }
 .rel.ctors     : { *(.rel.ctors)      }
 .rela.ctors    : { *(.rela.ctors)     }
 .rel.dtors     : { *(.rel.dtors)      }
 .rela.dtors    : { *(.rela.dtors)     }
 .rel.bss       : { *(.rel.bss)                }
 .rela.bss      : { *(.rela.bss)               }
 .rel.plt       : { *(.rel.plt)                }
 .rela.plt      : { *(.rela.plt)               }
 .init          : { *(.init)   } =0
 .plt : { *(.plt) }
 .text      :
 {
   *(.text)
   *(.rodata)
   *(.rodata1)
   *(.got1)
 }
 _etext = .;
 PROVIDE (etext = .);
 .fini      : { *(.fini)    } =0
 .ctors     : { *(.ctors)   }
 .dtors     : { *(.dtors)   }
 .rodata    : { *(.rodata)  }
 .rodata1   : { *(.rodata1) }
 /* Read-write section, merged into data segment: */
/*  . = (. + 0x0FFF) & 0xFFFFF000; */
 .data    :
 {
   *(.data)
   CONSTRUCTORS
 }
 .data1   : { *(.data1) }
 .got           : { *(.got.plt) *(.got) }
 .dynamic       : { *(.dynamic) }
 /* We want the small data sections together, so single-instruction offsets
    can access them all, and initialized data all before uninitialized, so
    we can shorten the on-disk segment size.  */
 .sdata     : { *(.sdata) }
 _edata  =  .;
 PROVIDE (edata = .);
 __bss_start = .;
 .sbss      : { *(.sbss) *(.scommon) }
 .bss       :
 {
  *(.dynbss)
  *(.bss)
  *(COMMON)
 }
 _end = . ;
 PROVIDE (end = .);
 /* These are needed for ELF backends which have not yet been
    converted to the new style linker.  */
 .stab 0 : { *(.stab) }
 .stabstr 0 : { *(.stabstr) }
 /* These must appear regardless of  .  */
}