Hack crossref tests for powerpc64
authorAlan Modra <amodra@gmail.com>
Wed, 18 May 2016 14:40:13 +0000 (00:10 +0930)
committerAlan Modra <amodra@gmail.com>
Thu, 19 May 2016 04:37:06 +0000 (14:07 +0930)
A different set of hacks to make the crossref tests pass on powerpc64
and powerpc64le.

* testsuite/ld-scripts/crossref.exp: Remove -mcall-aixdesc hack.
* testsuite/ld-scripts/cross2.t: Tweak .opd and .toc placement.
* testsuite/ld-scripts/cross3.t: Likewise.
* testsuite/ld-scripts/cross4.t: Likewise.
* testsuite/ld-scripts/cross5.t: Likewise.
* testsuite/ld-scripts/cross6.t: Likewise.
* testsuite/ld-scripts/cross7.t: Likewise.

ld/ChangeLog
ld/testsuite/ld-scripts/cross2.t
ld/testsuite/ld-scripts/cross3.t
ld/testsuite/ld-scripts/cross4.t
ld/testsuite/ld-scripts/cross5.t
ld/testsuite/ld-scripts/cross6.t
ld/testsuite/ld-scripts/cross7.t
ld/testsuite/ld-scripts/crossref.exp

index 7744016..e0b8766 100644 (file)
@@ -1,5 +1,15 @@
 2016-05-19  Alan Modra  <amodra@gmail.com>
 
+       * testsuite/ld-scripts/crossref.exp: Remove -mcall-aixdesc hack.
+       * testsuite/ld-scripts/cross2.t: Tweak .opd and .toc placement.
+       * testsuite/ld-scripts/cross3.t: Likewise.
+       * testsuite/ld-scripts/cross4.t: Likewise.
+       * testsuite/ld-scripts/cross5.t: Likewise.
+       * testsuite/ld-scripts/cross6.t: Likewise.
+       * testsuite/ld-scripts/cross7.t: Likewise.
+
+2016-05-19  Alan Modra  <amodra@gmail.com>
+
        * testsuite/ld-elf/shared.exp (mix_pic_and_non_pic): Pass in
        exe name rather than constructing testname.  Fix typo in
        sub-test name.  Log copying.  Use -rpath rather than -R.
index a0cdcbb..07c1d84 100644 (file)
@@ -1,6 +1,6 @@
 NOCROSSREFS ( .text .data )
 SECTIONS
 {
-  .text : { *(.text) *(.text.*) *(.pr) }
+  .text : { *(.text) *(.text.*) *(.pr) *(.opd) }
   .data : { *(.data) *(.data.*) *(.sdata) *(.rw) *(.tc0) *(.tc) *(.toc) }
 }
index e48b947..9da31af 100644 (file)
@@ -4,7 +4,7 @@ SECTIONS
 {
   .text : { *(.text) *(.text.*) }
   .nocrossrefs : { *(.nocrossrefs) }
-  .data : { *(.data) *(.data.*) *(.sdata) *(.opd) }
+  .data : { *(.data) *(.data.*) *(.sdata) *(.opd) *(.toc) }
   .bss : { *(.bss) *(COMMON) }
   /DISCARD/ : { *(*) }
 }
index 4e5d28a..fa3401c 100644 (file)
@@ -2,9 +2,9 @@ NOCROSSREFS_TO(.data .nocrossrefs)
 
 SECTIONS
 {
-  .text : { *(.text) *(.text.*) }
+  .text : { *(.text) *(.text.*) *(.opd) }
   .nocrossrefs : { *(.nocrossrefs) }
-  .data : { *(.data) *(.data.*) *(.sdata) *(.opd) }
+  .data : { *(.data) *(.data.*) *(.sdata) *(.toc) }
   .bss : { *(.bss) *(COMMON) }
   /DISCARD/ : { *(*) }
 }
index a581b92..c86d878 100644 (file)
@@ -4,7 +4,7 @@ SECTIONS
 {
   .text : { *(.text) *(.text.*) }
   .nocrossrefs : { *(.nocrossrefs) }
-  .data : { *(.data) *(.data.*) *(.sdata) *(.opd) }
+  .data : { *(.data) *(.data.*) *(.sdata) *(.opd) *(.toc) }
   .bss : { *(.bss) *(COMMON) }
   /DISCARD/ : { *(*) }
 }
index 0f23ca0..20f5b59 100644 (file)
@@ -2,8 +2,8 @@ NOCROSSREFS_TO(.text .data)
 
 SECTIONS
 {
-  .text : { *(.text) *(.text.*) }
-  .data : { *(.data) *(.data.*) *(.sdata) *(.opd) }
+  .text : { *(.text) *(.text.*) *(.opd) }
+  .data : { *(.data) *(.data.*) *(.sdata) *(.toc) }
   .bss : { *(.bss) *(COMMON) }
   /DISCARD/ : { *(*) }
 }
index 29173fc..8477cfa 100644 (file)
@@ -2,8 +2,8 @@ NOCROSSREFS_TO(.data .text)
 
 SECTIONS
 {
-  .text : { *(.text) *(.text.*) }
-  .data : { *(.data) *(.data.*) *(.sdata) *(.opd) }
+  .text : { *(.text) *(.text.*) *(.opd) }
+  .data : { *(.data) *(.data.*) *(.sdata) *(.toc) }
   .bss : { *(.bss) *(COMMON) }
   /DISCARD/ : { *(*) }
 }
index 4371320..c9023c1 100644 (file)
@@ -52,13 +52,6 @@ if [istarget xtensa*-*-*] {
     set CFLAGS "$CFLAGS -mtext-section-literals"
 }
 
-# If we have a compiler that doesn't use/reference dot-symbols, then
-# calls to functions reference the .opd section function descriptor.
-# This makes NOCROSSREFS rather useless on powerpc64.
-if [istarget powerpc64-*-*] {
-    set CFLAGS "$CFLAGS -mcall-aixdesc"
-}
-
 # Prevent the use of the MeP's small data area which references a symbol
 # called __sdabase which will not be defined by our test linker scripts.
 if [istarget mep*-*-elf] {