ld crossref test fix
authorAlan Modra <amodra@gmail.com>
Thu, 31 Oct 2013 09:00:24 +0000 (19:30 +1030)
committerAlan Modra <amodra@gmail.com>
Fri, 15 Nov 2013 05:19:36 +0000 (15:49 +1030)
(cherry picked from commit 14f2c476752f3cc4bfa7baee2a5a5183aafad975)

ld/testsuite/ChangeLog
ld/testsuite/ld-scripts/crossref.exp

index 356f5b0..0cda12a 100644 (file)
@@ -1,6 +1,11 @@
 2013-11-15  Alan Modra  <amodra@gmail.com>
 
        Apply changes from mainline to 2.24
+       2013-11-04  Alan Modra  <amodra@gmail.com>
+       * ld-scripts/crossref.exp: Don't allow changes made to CFLAGS
+       for this test to bleed into following tests.  Don't set
+       -mcall-aixdesc for powerpc64le.
+
        2013-10-30  Alan Modra  <amodra@gmail.com>
        * ld-powerpc/elfv2.s,
        * ld-powerpc/elfv2so.d,
index 061b5aa..01fdeb4 100644 (file)
@@ -31,9 +31,11 @@ if { ![is_remote host] && [which $CC] == 0 } {
     return
 }
 
+global CFLAGS
+set old_CFLAGS "$CFLAGS"
+
 # Xtensa targets currently default to putting literal values in a separate
 # section and that requires linker script support, so put literals in text.
-global CFLAGS
 if [istarget xtensa*-*-*] {
     set CFLAGS "$CFLAGS -mtext-section-literals"
 }
@@ -41,7 +43,7 @@ if [istarget xtensa*-*-*] {
 # 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*-*-*] {
+if [istarget powerpc64-*-*] {
     set CFLAGS "$CFLAGS -mcall-aixdesc"
 }
 
@@ -61,6 +63,7 @@ if { ![ld_compile $CC "$srcdir/$subdir/cross1.c" tmpdir/cross1.o] \
      || ![ld_compile $CC "$srcdir/$subdir/cross2.c" tmpdir/cross2.o] } {
     unresolved $test1
     unresolved $test2
+    set CFLAGS "$old_CFLAGS"
     return
 }
 
@@ -95,6 +98,7 @@ if [string match "" $exec_output] then {
 
 if { ![ld_compile $CC "$srcdir/$subdir/cross3.c" tmpdir/cross3.o] } {
     unresolved $test2
+    set CFLAGS "$old_CFLAGS"
     return
 }
 
@@ -118,11 +122,13 @@ if [string match "" $exec_output] then {
 
 if { ![ld_compile $CC "$srcdir/$subdir/cross4.c" tmpdir/cross4.o] } {
     unresolved $test3
+    set CFLAGS "$old_CFLAGS"
     return
 }
 
 if ![ld_relocate $ld tmpdir/cross3-partial.o "tmpdir/cross1.o tmpdir/cross4.o"] {
     unresolved $test3
+    set CFLAGS "$old_CFLAGS"
     return
 }
 
@@ -138,3 +144,5 @@ if [string match "" $exec_output] then {
     verbose -log "$exec_output"
     fail $test3
 }
+
+set CFLAGS "$old_CFLAGS"