xref: /netbsd-src/sys/arch/x68k/stand/xxboot/xxboot.ldscript (revision 7e73c3a86c7acd948a7e0f539969e328d81b0229)
1OUTPUT_FORMAT("binary", "binary", "binary")
2OUTPUT_ARCH(m68k)
3ENTRY(start)
4SEARCH_DIR(/usr/lib);
5/*__DYNAMIC = 0; */
6PROVIDE (__stack = 0);
7SECTIONS
8{
9  . = TEXTADDR;
10  .text :
11  ALIGN(2)
12  SUBALIGN(2)
13  {
14    CREATE_OBJECT_SYMBOLS
15    *(.text)
16    *(.rodata)
17    /* The next six sections are for SunOS dynamic linking.  The order
18       is important.  */
19    *(.dynrel)
20    *(.hash)
21    *(.dynsym)
22    *(.dynstr)
23    *(.rules)
24    *(.need)
25    etext = .;
26    _etext = .;
27  }
28  .data :
29  ALIGN(2)
30  SUBALIGN(2)
31  {
32    /* The first three sections are for SunOS dynamic linking.  */
33    *(.dynamic)
34    *(.got)
35    *(.plt)
36    *(.data)
37    *(.linux-dynamic) /* For Linux dynamic linking.  */
38    CONSTRUCTORS
39    edata  =  .;
40    _edata  =  .;
41  }
42  . = TEXTADDR + TEXTDATASIZE;
43
44  /* Place uint32_t startregs[16] out of bss */
45  PROVIDE(startregs = .);
46  . += 0x40/* sizeof(startregs) */;
47
48  .bss :
49  {
50    __bss_start = .;
51   *(.bss)
52   *(COMMON)
53   end = ALIGN(4) ;
54   _end = ALIGN(4) ;
55  }
56  /DISCARD/ : { *(.ident) *(.stab) *(.stabstr) }
57}
58
59ASSERT(first_kbyte - TEXTADDR <= 1024, "Error: first_kbyte exceeds 1KB");
60ASSERT(_end <= BOOT_TEXTADDR, "Error: _end conflicts BOOT_TEXT");
61