bfd:
[deliverable/binutils-gdb.git] / ld / testsuite / ld-elfcomm / elfcomm.exp
index 9b4edb44f2af3e2b5ea9efdfc47e47f91331b433..bed5258fd7be89cead51c0d11d32f2fe41420773 100644 (file)
@@ -1,19 +1,22 @@
 # Expect script for common symbol tests
-#   Copyright 2003, 2005, 2006 Free Software Foundation, Inc.
+#   Copyright 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
 #
-# This file is free software; you can redistribute it and/or modify
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
 #
 # Written by H.J. Lu (hjl@gnu.org)
 #
@@ -31,7 +34,7 @@ set test1w2   "$test1 (warning 2)"
 set test1c1    "$test1 (change 1)"
 set test1c2    "$test1 (change 2)"
 
-if { [which $CC] == 0 } {
+if { ![is_remote host] && [which $CC] == 0 } {
     untested $test1w1
     untested $test1w2
     untested $test1c1
@@ -51,7 +54,8 @@ proc dump_common1 { testname } {
     global READELF
 
     send_log "$READELF -s tmpdir/common1.o | grep foo\n"
-    catch "exec $READELF -s tmpdir/common1.o | grep foo" exec_output
+    set exec_output [run_host_cmd "readelf" "-s tmpdir/common1.o | grep foo"]
+
     if { ![regexp "(\[         \]*)(\[0-9\]+):(\[      \]*)(\[0\]*)80(\[       \]+)4(\[        \]+)OBJECT(\[   \]+)GLOBAL(\[   \]+)DEFAULT(\[  \]+)(PRC\\\[0xff03\\\]|COM|SCOM)(\[     \]+)_?foo2" $exec_output]
         || ![regexp "(\[       \]*)(\[0-9\]+):(\[      \]*)(\[0-9\]+)(\[       \]+)21(\[       \]+)OBJECT(\[   \]+)GLOBAL(\[   \]+)DEFAULT(\[  \]+)(\[0-9\]+)(\[       \]+)_?foo1" $exec_output] } {
        send_log "$exec_output\n"
@@ -77,17 +81,22 @@ if { [ld_simple_link $ld tmpdir/common1.o "-r tmpdir/common1a.o tmpdir/common1b.
     return
 }
 
-if { ![regexp "Warning: alignment (\[0-9\]+) of symbol \`_?foo1\' in tmpdir/common1b.o is smaller than 64 in tmpdir/common1a.o" $link_output]
-     || ![regexp "Warning: size of symbol \`_?foo1\' changed from 2 in tmpdir/common1a.o to 21 in tmpdir/common1b.o" $link_output] } {
-    if { [istarget mips*-*-*] } {
-       # This test fails on MIPS because the backend sets type_change_ok.  The
-       # size change warning is suppressed.
-       xfail $test1w1
+# This test fails on MIPS because the backend sets type_change_ok.
+# The size change warning is suppressed.
+if {[istarget mips*-*-*]} {
+    if { ![regexp "Warning: alignment (\[0-9\]+) of symbol \`_?foo1\' in tmpdir/common1b.o is smaller than 64 in tmpdir/common1a.o" $link_output] } {
+        fail $test1w1
     } else {
-       fail $test1w1
+        pass $test1w1
     }
 } else {
     pass $test1w1
+    if { ![regexp "Warning: alignment (\[0-9\]+) of symbol \`_?foo1\' in tmpdir/common1b.o is smaller than 64 in tmpdir/common1a.o" $link_output]
+         || ![regexp "Warning: size of symbol \`_?foo1\' changed from 2 in tmpdir/common1a.o to 21 in tmpdir/common1b.o" $link_output] } {
+        fail $test1w1
+    } else {
+        pass $test1w1
+    }
 }
 
 if { [dump_common1 $test1c1] } {
This page took 0.024384 seconds and 4 git commands to generate.