1OUTPUT_ARCH(powerpc:common64)
2SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib);
3/* Do we need any of these for elf?
4   __DYNAMIC = 0;    */
5SECTIONS
6{
7  /* Read-only sections, merged into text segment: */
8  . = + SIZEOF_HEADERS;
9  .interp : { *(.interp) }
10  .hash          : { *(.hash)		}
11  .dynsym        : { *(.dynsym)		}
12  .dynstr        : { *(.dynstr)		}
13  .rel.text      : { *(.rel.text)		}
14  .rela.text     : { *(.rela.text) 	}
15  .rel.data      : { *(.rel.data)		}
16  .rela.data     : { *(.rela.data) 	}
17  .rel.rodata    : { *(.rel.rodata) 	}
18  .rela.rodata   : { *(.rela.rodata) 	}
19  .rel.got       : { *(.rel.got)		}
20  .rela.got      : { *(.rela.got)		}
21  .rel.ctors     : { *(.rel.ctors)	}
22  .rela.ctors    : { *(.rela.ctors)	}
23  .rel.dtors     : { *(.rel.dtors)	}
24  .rela.dtors    : { *(.rela.dtors)	}
25  .rel.bss       : { *(.rel.bss)		}
26  .rela.bss      : { *(.rela.bss)		}
27  .rel.plt       : { *(.rel.plt)		}
28  .rela.plt      : { *(.rela.plt)		}
29/*  .init          : { *(.init)	} =0*/
30  .plt : { *(.plt) }
31  .text      :
32  {
33    *(.text)
34    *(.fixup)
35    *(.got1)
36  }
37  . = ALIGN(4096);
38  _etext = .;
39  PROVIDE (etext = .);
40  .rodata    :
41  {
42    *(.rodata)
43    *(.rodata1)
44  }
45  .fini      : { *(.fini)    } =0
46  .ctors     : { *(.ctors)   }
47  .dtors     : { *(.dtors)   }
48  /* Read-write section, merged into data segment: */
49  . = (. + 0x0FFF) & 0xFFFFFFFFFFFFF000;
50  .data    :
51  {
52    *(.data)
53    *(.data1)
54    *(.sdata)
55    *(.sdata2)
56    *(.got.plt) *(.got)
57    *(.dynamic)
58    CONSTRUCTORS
59  }
60  . = ALIGN(4096);
61  _edata  =  .;
62  PROVIDE (edata = .);
63
64  .fixup   : { *(.fixup) }
65  __start___ex_table = .;
66  __ex_table : { *(__ex_table) }
67  __stop___ex_table = .;
68
69  __start___ksymtab = .;        /* Kernel symbol table */
70  __ksymtab : { *(__ksymtab) }
71  __stop___ksymtab = .;
72  __start___kallsyms = .;	/* All kernel symbols */
73  __kallsyms : { *(__kallsyms) }
74  __stop___kallsyms = .;
75
76  . = ALIGN(16);
77  __start___ftr_fixup = .;
78  __ftr_fixup : { *(__ftr_fixup) }
79  __stop___ftr_fixup = .;
80
81  . = ALIGN(4096);
82  .data.page_aligned : { *(.data.page_aligned) }
83
84  . = ALIGN(128);
85  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
86
87  . = ALIGN(4096);
88  __init_begin = .;
89  .text.init : { *(.text.init) }
90  .data.init : {
91    *(.data.init);
92    __vtop_table_begin = .;
93    *(.vtop_fixup);
94    __vtop_table_end = .;
95    __ptov_table_begin = .;
96    *(.ptov_fixup);
97    __ptov_table_end = .;
98  }
99  . = ALIGN(16);
100  __setup_start = .;
101  .setup.init : { *(.setup.init) }
102  __setup_end = .;
103  __initcall_start = .;
104  .initcall.init : { *(.initcall.init) }
105  __initcall_end = .;
106
107
108  . = ALIGN(4096);
109  __init_end = .;
110
111  __chrp_begin = .;
112  .text.chrp : { *(.text.chrp) }
113  .data.chrp : { *(.data.chrp) }
114  . = ALIGN(4096);
115  __chrp_end = .;
116
117  . = ALIGN(4096);
118  __openfirmware_begin = .;
119  .text.openfirmware : { *(.text.openfirmware) }
120  .data.openfirmware : { *(.data.openfirmware) }
121  . = ALIGN(4096);
122  __openfirmware_end = .;
123
124  __toc_start = .;
125  .toc       :
126  {
127   *(.toc)
128  }
129  . = ALIGN(4096);
130  __toc_end = .;
131
132  __bss_start = .;
133  .bss       :
134  {
135   *(.sbss) *(.scommon)
136   *(.dynbss)
137   *(.bss)
138   *(COMMON)
139  }
140
141  . = ALIGN(4096);
142  _end = . ;
143  PROVIDE (end = .);
144}
145