Commit dc28c732ac3aa36f6001ef7c7a64df79e1ebb043

Authored by malc
1 parent 735ee40d

Correct version of Heikki Lindholms ppc64.ld script

Was butchered by c&p

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5035 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 22 additions and 26 deletions
ppc64.ld
1 1 /* Script for -z combreloc: combine and sort reloc sections */
2 2 OUTPUT_FORMAT("elf64-powerpc", "elf64-powerpc",
3   - "elf64-powerpc")
  3 + "elf64-powerpc")
4 4 OUTPUT_ARCH(powerpc:common64)
5 5 ENTRY(_start)
6   -SEARCH_DIR("/usr/powerpc64-unknown-linux-gnu/lib64");
7   -EARCH_DIR("/usr/lib/binutils/powerpc64-unknown-linux-gnu/2.16.164");
8   -EARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64");
9   -EARCH_DIR("/usr/powerpc64-unknown-linux-gnu/lib");
10   -EARCH_DIR("/usr/lib/binutils/powerpc64-unknown-linux-gnu/2.16.1");
11   -EARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
12   -/* Do we need any of these for elf?
13   - __DYNAMIC = 0; */
  6 +SEARCH_DIR("/usr/powerpc64-unknown-linux-gnu/lib64");
  7 +SEARCH_DIR("/usr/lib/binutils/powerpc64-unknown-linux-gnu/2.16.164");
  8 +SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64");
  9 +SEARCH_DIR("/usr/powerpc64-unknown-linux-gnu/lib");
  10 +SEARCH_DIR("/usr/lib/binutils/powerpc64-unknown-linux-gnu/2.16.1");
  11 +SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib"); /* Do we
  12 +need any of these for elf? + __DYNAMIC = 0; */
14 13 SECTIONS
15 14 {
16 15 /* Read-only sections, merged into text segment: */
... ... @@ -63,7 +62,7 @@ SECTIONS
63 62 }
64 63 .rel.plt : { *(.rel.plt) }
65 64 .rela.plt : { *(.rela.plt) }
66   - .rela.tocbss : { *(.rela.tocbss) }
  65 + .rela.tocbss : { *(.rela.tocbss) }
67 66 .init :
68 67 {
69 68 KEEP (*(.init))
... ... @@ -89,19 +88,16 @@ SECTIONS
89 88 .sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
90 89 .eh_frame_hdr : { *(.eh_frame_hdr) }
91 90 .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
92   - .gcc_except_table : ONLY_IF_RO { KEEP (*(.gcc_except_table))
93   -(.gcc_except_table.*) }
94   - /* Adjust the address for the data segment. We want to adjust up to
95   - the same address within the page on the next page up. */
96   - . = ALIGN (0x10000) - ((0x10000 - .) & (0x10000 - 1)); . =
97   -ATA_SEGMENT_ALIGN (0x10000, 0x1000);
98   - /* Exception handling */
  91 + .gcc_except_table : ONLY_IF_RO { KEEP (*(.gcc_except_table))
  92 +*(.gcc_except_table.*) } /* Adjust the address for the data segment. We want to
  93 +adjust up to + the same address within the page on the next page up. */
  94 + . = ALIGN (0x10000) - ((0x10000 - .) & (0x10000 - 1)); . = DATA_SEGMENT_ALIGN
  95 +(0x10000, 0x1000); /* Exception handling */
99 96 .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
100   - .gcc_except_table : ONLY_IF_RW { KEEP (*(.gcc_except_table))
101   -(.gcc_except_table.*) }
102   - /* Thread Local Storage sections */
103   - .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
104   - .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
  97 + .gcc_except_table : ONLY_IF_RW { KEEP (*(.gcc_except_table))
  98 +*(.gcc_except_table.*) } /* Thread Local Storage sections */
  99 + .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
  100 + .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
105 101 /* Ensure the __preinit_array_start label is properly aligned. We
106 102 could instead move the label definition inside the section, but
107 103 the linker would then create the section even if it turns out to
... ... @@ -154,9 +150,9 @@ ATA_SEGMENT_ALIGN (0x10000, 0x1000);
154 150 SORT(CONSTRUCTORS)
155 151 }
156 152 .data1 : { *(.data1) }
157   - .toc1 ALIGN(8) : { *(.toc1) }
158   - .opd ALIGN(8) : { KEEP (*(.opd)) }
159   - .got ALIGN(8) : { *(.got .toc) }
  153 + .toc1 ALIGN(8) : { *(.toc1) }
  154 + .opd ALIGN(8) : { KEEP (*(.opd)) }
  155 + .got ALIGN(8) : { *(.got .toc) }
160 156 /* We want the small data sections together, so single-instruction offsets
161 157 can access them all, and initialized data all before uninitialized, so
162 158 we can shorten the on-disk segment size. */
... ... @@ -167,7 +163,7 @@ ATA_SEGMENT_ALIGN (0x10000, 0x1000);
167 163 _edata = .;
168 164 PROVIDE (edata = .);
169 165 __bss_start = .;
170   - .tocbss ALIGN(8) : { *(.tocbss)}
  166 + .tocbss ALIGN(8) : { *(.tocbss)}
171 167 .sbss :
172 168 {
173 169 PROVIDE (__sbss_start = .);
... ...