* ld-elf/elf.exp: Don't run --gc-sections tls var test on v850.
authorAlan Modra <amodra@gmail.com>
Thu, 23 Sep 2010 12:24:41 +0000 (12:24 +0000)
committerAlan Modra <amodra@gmail.com>
Thu, 23 Sep 2010 12:24:41 +0000 (12:24 +0000)
* ld-elf/group2.d: xfail xstormy.
* ld-elf/group4.d: Likewise.
* ld-elf/group5.d: Likewise.
* ld-elf/group6.d: Likewise.
* ld-elf/init-fini-arrays.d: xfail cr16 and crx.
* ld-elf/orphan2.d: xfail xstormy.
* ld-elf/sec64k.exp: Don't run on targets using generic linker.
Allow a larger range for ld -r expected bar_1 section.  Don't run
final link test on a number of targets.  Select avr6 for avr targets.
* ld-elfcomm/elfcomm.exp: Don't attempt on hpux.

ld/testsuite/ChangeLog
ld/testsuite/ld-elf/elf.exp
ld/testsuite/ld-elf/group2.d
ld/testsuite/ld-elf/group4.d
ld/testsuite/ld-elf/group5.d
ld/testsuite/ld-elf/group6.d
ld/testsuite/ld-elf/init-fini-arrays.d
ld/testsuite/ld-elf/orphan2.d
ld/testsuite/ld-elf/sec64k.exp
ld/testsuite/ld-elfcomm/elfcomm.exp

index 36cc675165e0f8b11a4ea53f84586104ce374fa9..fb4b0c971c26039ef081a074990ab9f2552904f1 100644 (file)
@@ -1,5 +1,17 @@
 2010-09-23  Alan Modra  <amodra@gmail.com>
 
+       * ld-elf/elf.exp: Don't run --gc-sections tls var test on v850.
+       * ld-elf/group2.d: xfail xstormy.
+       * ld-elf/group4.d: Likewise.
+       * ld-elf/group5.d: Likewise.
+       * ld-elf/group6.d: Likewise.
+       * ld-elf/init-fini-arrays.d: xfail cr16 and crx.
+       * ld-elf/orphan2.d: xfail xstormy.
+       * ld-elf/sec64k.exp: Don't run on targets using generic linker.
+       Allow a larger range for ld -r expected bar_1 section.  Don't run
+       final link test on a number of targets.  Select avr6 for avr targets.
+       * ld-elfcomm/elfcomm.exp: Don't attempt on hpux.
+
        * ld-d10v/reloc-007.d: Don't error.
        * ld-d10v/reloc-008.d: Likewise.
        * ld-d10v/reloc-015.d: Likewise.
index a94e96d8a4f04601181be6b264ccc5f65c89f253..1e1f738efefc9882829a38607819b4861ee471d6 100644 (file)
@@ -54,7 +54,8 @@ if { [istarget *-*-linux*] } {
     }
 }
 
-if { [check_gc_sections_available] } {
+#v850 gas complains about .tbss.var section attributes.
+if { [check_gc_sections_available] && ![istarget "v850-*-*"] } {
     run_ld_link_tests {
        {"--gc-sections on tls variable"
            "--gc-section" "" {tls_gc.s} {} "tls_gc"}
index f914930c3a9bdd49f5f6b88ae80b54cb03842f03..86ca95225699055dab6e18b8526b087ea43498eb 100644 (file)
@@ -1,9 +1,10 @@
 #source: ../../../binutils/testsuite/binutils-all/group.s
 #ld: -r
 #readelf: -Sg --wide
-#xfail: cr16-*-* crx-*-*
+#xfail: cr16-*-* crx-*-* xstormy*-*-*
 # cr16 and crx use non-standard scripts with memory regions, which don't play
 # well with unique group sections under ld -r.
+# xstormy also uses a non-standard script, putting .data before .text.
 
 #...
   \[[ 0-9]+\] foo_group[ \t]+GROUP[ \t]+.*
index 068279663e8b05afcf25deada1d8b262ac1c2739..af4ca4d0fdab6daf6a3720ff18e1ea692e19755c 100644 (file)
@@ -1,9 +1,10 @@
 #source: ../../../binutils/testsuite/binutils-all/group-2.s
 #ld: -r
 #readelf: -Sg --wide
-#xfail: cr16-*-* crx-*-*
+#xfail: cr16-*-* crx-*-* xstormy*-*-*
 # cr16 and crx use non-standard scripts with memory regions, which don't play
 # well with unique group sections under ld -r.
+# xstormy also uses a non-standard script, putting .data before .text.
 
 #...
   \[[ 0-9]+\] .group[ \t]+GROUP[ \t]+.*
index 773fda69e9c794f76826692548763499ad4fc3e8..5102f817fb2e68cc7ef17eb6b98cd5036b1dbedf 100644 (file)
@@ -1,9 +1,10 @@
 #source: ../../../binutils/testsuite/binutils-all/group-3.s
 #ld: -r
 #readelf: -Sg --wide
-#xfail: cr16-*-* crx-*-*
+#xfail: cr16-*-* crx-*-* xstormy*-*-*
 # cr16 and crx use non-standard scripts with memory regions, which don't play
 # well with unique group sections under ld -r.
+# xstormy also uses a non-standard script, putting .data before .text.
 
 #...
   \[[ 0-9]+\] .group[ \t]+GROUP[ \t]+.*
index 56601930fa3f94e7d9d260ccfe58601429bfe34e..0e8441f571d759e6ae720ba6a41df60a200bbe27 100644 (file)
@@ -1,9 +1,10 @@
 #source: ../../../binutils/testsuite/binutils-all/group-4.s
 #ld: -r
 #readelf: -Sg --wide
-#xfail: cr16-*-* crx-*-*
+#xfail: cr16-*-* crx-*-* xstormy*-*-*
 # cr16 and crx use non-standard scripts with memory regions, which don't play
 # well with unique group sections under ld -r.
+# xstormy also uses a non-standard script, putting .data before .text.
 
 #...
   \[[ 0-9]+\] .group[ \t]+GROUP[ \t]+.*
index 016209df2aaa8d6f468ccd04841ec26239dd2178..1b182b94538817e7205ffe2b6d3a7bf8c88f917e 100644 (file)
@@ -1,6 +1,9 @@
 #source: init-fini-arrays.s
 #ld: -r
 #readelf: -S --wide
+#xfail: cr16-*-* crx-*-*
+# cr16 and crx use non-standard scripts with memory regions, which don't play
+# well with unique group sections under ld -r.
 
 #...
   \[[ 0-9]+\] \.init_array\.01000[ \t]+PROGBITS[ \t0-9a-f]+WA?.*
index a82e721775346797dab9ed102cb5b610f66da52d..ddf69c7472ea0f4bc084588c22200bc6544a5995 100644 (file)
@@ -1,6 +1,8 @@
 #source: orphan2.s
 #ld: -r
 #readelf: -S --wide
+#xfail: xstormy*-*-*
+# xstormy uses a non-standard script, resulting is unexpected section order
 
 #...
   \[[ 0-9]+\] \.text[ \t]+PROGBITS[ \t0-9a-f]+AX?.*
index 285e83af5bab276510d32b25eb74c13e2eceb942..7c04c9b87296b67535942ea0033e5bf40f9284d3 100644 (file)
@@ -28,6 +28,18 @@ if ![is_elf_format] {
     return
 }
 
+# Targets using the generic linker backend don't sort section symbols
+# before local symbols, so don't bother testing them.
+if { [istarget "arc-*-*"]
+     || [istarget "d30v-*-*"]
+     || [istarget "dlx-*-*"]
+     || [istarget "i960-*-*"]
+     || [istarget "or32-*-*"]
+     || [istarget "pj*-*-*"]
+     || [istarget "m32r-*-*"] } {
+    return
+}
+
 # Test >64k sections, with and without -r.  First, create the assembly
 # files.  Have a relocation to another section and one within the local
 # section.
@@ -111,7 +123,7 @@ if [catch { set ofd [open "tmpdir/$test1.d" w] } x] {
 # The m32r target generates both REL and RELA relocs (for historical
 # reasons) so the expected number of sections will be much more than
 # 68000, which throws this particular test right off.
-if {![istarget "m32r-*-*"]} then {
+if { ![istarget "m32r-*-*"] } then {
     foreach sfile [lrange $sfiles 0 [expr [llength $sfiles] / 2]] {
        puts $ofd "#source: $sfile"
     }
@@ -128,7 +140,7 @@ if {![istarget "m32r-*-*"]} then {
     puts $ofd "#..."
     puts $ofd " 340..: 0+\[ \]+0\[ \]+SECTION\[ \]+LOCAL\[ \]+DEFAULT\[ \]+68... "
     puts $ofd "#..."
-    puts $ofd " 340..: 0+(2|4|8)\[ \]+0\[ \]+NOTYPE\[ \]+LOCAL\[ \]+DEFAULT\[ \]+\[23\] bar_1$"
+    puts $ofd " 340..: 0+(2|4|8)\[ \]+0\[ \]+NOTYPE\[ \]+LOCAL\[ \]+DEFAULT\[ \]+\[2-5\] bar_1$"
     puts $ofd "#..."
     puts $ofd ".* bar_34000$"
     puts $ofd "#..."
@@ -148,35 +160,46 @@ if [catch { set ofd [open "tmpdir/$test2.d" w] } x] {
     unresolved $test2
     return
 }
-foreach sfile $sfiles { puts $ofd "#source: $sfile" }
-if { [istarget spu*-*-*] } {
-    puts $ofd "#ld: --local-store 0:0"
-} else {
-    puts $ofd "#ld:"
+
+# too big for d10v and msp
+# lack of fancy orphan section handling causes overlap on fr30 and iq2000
+if { ![istarget "d10v-*-*"]
+     && ![istarget "msp*-*-*"]
+     && ![istarget "fr30-*-*"] 
+     && ![istarget "iq2000-*-*"] } {
+    foreach sfile $sfiles { puts $ofd "#source: $sfile" }
+    if { [istarget "avr-*-*"] } then {
+       puts $ofd "#as: -mmcu=avr6"
+       puts $ofd "#ld: -mavr6"
+    } elseif { [istarget spu*-*-*] } {
+       puts $ofd "#ld: --local-store 0:0"
+    } else {
+       puts $ofd "#ld:"
+    }
+    puts $ofd "#readelf: -W -Ss"
+    puts $ofd "There are 660.. section headers.*:"
+    puts $ofd "#..."
+    puts $ofd "  \\\[ 0\\\] .* 660..\[ \]+0\[ \]+0"
+    puts $ofd "#..."
+    puts $ofd "  \\\[65279\\\] \\.foo\\.\[0-9\]+ .*"
+    puts $ofd "  \\\[65280\\\] \\.foo\\.\[0-9\]+ .*"
+    puts $ofd "#..."
+    puts $ofd " 660..: \[0-9a-f\]+\[ \]+0\[ \]+SECTION\[ \]+LOCAL\[ \]+DEFAULT\[ \]+660.. "
+    puts $ofd "#..."
+    puts $ofd " 660..: \[0-9a-f\]+\[ \]+0\[ \]+NOTYPE\[ \]+LOCAL\[ \]+DEFAULT\[ \]+\[0-9\] bar_1$"
+    puts $ofd "#..."
+    puts $ofd ".* bar_66000$"
+    puts $ofd "#..."
+    # Global symbols are not in "alphanumeric" order, so we just check
+    # that the first and the last are present in any order (assuming no
+    # duplicates).
+    puts $ofd ".* (\[0-9\] foo_1|66... foo_66000)$"
+    puts $ofd "#..."
+    puts $ofd ".* (\[0-9\] foo_1|66... foo_66000)$"
+    puts $ofd "#pass"
+    close $ofd
+    run_dump_test "tmpdir/$test2"
 }
-puts $ofd "#readelf: -W -Ss"
-puts $ofd "There are 660.. section headers.*:"
-puts $ofd "#..."
-puts $ofd "  \\\[ 0\\\] .* 660..\[ \]+0\[ \]+0"
-puts $ofd "#..."
-puts $ofd "  \\\[65279\\\] \\.foo\\.\[0-9\]+ .*"
-puts $ofd "  \\\[65280\\\] \\.foo\\.\[0-9\]+ .*"
-puts $ofd "#..."
-puts $ofd " 660..: \[0-9a-f\]+\[ \]+0\[ \]+SECTION\[ \]+LOCAL\[ \]+DEFAULT\[ \]+660.. "
-puts $ofd "#..."
-puts $ofd " 660..: \[0-9a-f\]+\[ \]+0\[ \]+NOTYPE\[ \]+LOCAL\[ \]+DEFAULT\[ \]+\[0-9\] bar_1$"
-puts $ofd "#..."
-puts $ofd ".* bar_66000$"
-puts $ofd "#..."
-# Global symbols are not in "alphanumeric" order, so we just check
-# that the first and the last are present in any order (assuming no
-# duplicates).
-puts $ofd ".* (\[0-9\] foo_1|66... foo_66000)$"
-puts $ofd "#..."
-puts $ofd ".* (\[0-9\] foo_1|66... foo_66000)$"
-puts $ofd "#pass"
-close $ofd
-run_dump_test "tmpdir/$test2"
 
 for { set i 1 } { $i < $max_sec / $secs_per_file } { incr i } {
     catch "exec rm -f tmpdir/dump$i.o" status
index 5ece03fd8f4fe8c5d1e2e5e7940db4d4ab2d3721..e45c6b199bf0b8e78f09ca27759f996fcddf23ae 100644 (file)
@@ -29,6 +29,11 @@ if ![is_elf_format] {
     return
 }
 
+# hpux assembly is weird
+if [istarget "hppa*-*-hpux*"] {
+    return
+}
+
 proc test_sort_common {} {
     global exec_output
     global objdump