Remove a29k support.
[platform/upstream/binutils.git] / binutils / testsuite / binutils-all / objcopy.exp
index e36f14e..cb9850a 100644 (file)
@@ -1,4 +1,5 @@
-#   Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+#   Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+#   2004
 #   Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
@@ -13,7 +14,7 @@
 # 
 # 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
 
 # Please email any bugs, comments, and/or additions to this file to:
 # bug-dejagnu@prep.ai.mit.edu
@@ -36,8 +37,8 @@ if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then {
 }
 
 if ![is_remote host] {
-    set tempfile tmpdir/bintest.o;
-    set copyfile tmpdir/copy;
+    set tempfile tmpdir/bintest.o
+    set copyfile tmpdir/copy
 } else {
     set tempfile [remote_download host tmpdir/bintest.o]
     set copyfile copy
@@ -55,14 +56,14 @@ if ![string match "" $got] then {
     if [is_remote host] {
        set src1 tmpdir/bintest.o
        set src2 tmpdir/copy.o
-       remote_upload host $tempfile $src1;
-       remote_upload host ${copyfile}.o $src2;
+       remote_upload host $tempfile $src1
+       remote_upload host ${copyfile}.o $src2
     } else {
        set src1 ${tempfile}
        set src2 ${copyfile}.o
     }
-    set status [remote_exec build cmp "${src1} ${src2}"];
-    set exec_output [lindex $status 1];
+    set status [remote_exec build cmp "${src1} ${src2}"]
+    set exec_output [lindex $status 1]
     set exec_output [prune_warnings $exec_output]
 
     # On some systems the result of objcopy will not be identical.
@@ -70,7 +71,6 @@ if ![string match "" $got] then {
     # in the first place, and may order things a little differently.
     # Those systems should use setup_xfail here.
 
-    setup_xfail "a29k-*"
     setup_xfail "h8300-*-rtems*" "h8300-*-coff"
     setup_xfail "h8500-*-rtems*" "h8500-*-coff"
     setup_xfail "hppa*-*-*"
@@ -80,7 +80,7 @@ if ![string match "" $got] then {
     setup_xfail "m8*-*"
     setup_xfail "or32-*-rtems*" "or32-*-coff"
     setup_xfail "sh-*-coff*" "sh-*-rtems*" 
-    setup_xfail "tic80-*-*" "w65-*" "z8*-*"
+    setup_xfail "tic4x-*-*" "tic80-*-*" "w65-*" "z8*-*"
 
     clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*"
     clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-rtems*" "*-*-*elf*" "m68*-*-sysv4*"
@@ -120,8 +120,8 @@ if ![string match "" $got] then {
     fail "objcopy -O srec"
 } else {
     if [is_remote host] {
-       remote_upload host ${srecfile} tmpdir/copy.srec;
-       set srecfile tmpdir/copy.srec;
+       remote_upload host ${srecfile} tmpdir/copy.srec
+       set srecfile tmpdir/copy.srec
     }
     set file [open ${srecfile} r]
 
@@ -175,7 +175,7 @@ if ![regexp "start address (\[0-9a-fA-FxX\]+)" $got all origstart] then {
     perror "objdump can not recognize bintest.o"
     set origstart ""
 } else {
-    set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $tempfile ${copyfile}.srec --set-start 0x7654"]
+    set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec --set-start 0x7654 $tempfile ${copyfile}.srec"]
     if ![string match "" $got] then {
        fail "objcopy --set-start"
     } else {
@@ -192,7 +192,7 @@ if ![regexp "start address (\[0-9a-fA-FxX\]+)" $got all origstart] then {
        }
     }
 
-    set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $tempfile ${copyfile}.srec --adjust-start 0x123"]
+    set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec --adjust-start 0x123 $tempfile ${copyfile}.srec"]
     if ![string match "" $got] then {
        fail "objcopy --adjust-start"
     } else {
@@ -237,7 +237,7 @@ while {[regexp $headers_regexp $got all name size vma rest]} {
 if {$low == "" || $origstart == ""} then {
     perror "objdump can not recognize bintest.o"
 } else {
-    set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $tempfile ${copyfile}.srec --adjust-vma 0x123"]
+    set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec --adjust-vma 0x123 $tempfile ${copyfile}.srec"]
     if ![string match "" $got] then {
         fail "objcopy --adjust-vma"
     } else {
@@ -271,7 +271,7 @@ if {$low == "" || $origstart == ""} then {
        set got $rest
     }
 
-    set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $tempfile ${copyfile}.srec $arg"]
+    set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $arg $tempfile ${copyfile}.srec"]
     if ![string match "" $got] then {
        fail "objcopy --adjust-section-vma +"
     } else {
@@ -291,7 +291,7 @@ if {$low == "" || $origstart == ""} then {
     }
 
     regsub -all "\\+4" $arg "=[expr $low + 4]" argeq
-    set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $tempfile ${copyfile}.srec $argeq"]
+    set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $argeq $tempfile ${copyfile}.srec"]
     if ![string match "" $got] then {
        fail "objcopy --adjust-section-vma ="
     } else {
@@ -332,7 +332,7 @@ proc strip_test { } {
 
     if [is_remote host] {
        set archive libstrip.a
-       set objfile [remote_download host tmpdir/testprog.o];
+       set objfile [remote_download host tmpdir/testprog.o]
        remote_file host delete $archive
     } else {
        set archive tmpdir/libstrip.a
@@ -359,7 +359,7 @@ proc strip_test { } {
     }
 
     if [is_remote host] {
-       set objfile [remote_download host tmpdir/testprog.o];
+       set objfile [remote_download host tmpdir/testprog.o]
     } else {
        set objfile tmpdir/testprog.o
     }
@@ -400,7 +400,7 @@ proc strip_test_with_saving_a_symbol { } {
     }
 
     if [is_remote host] {
-       set objfile [remote_download host tmpdir/testprog.o];
+       set objfile [remote_download host tmpdir/testprog.o]
     } else {
        set objfile tmpdir/testprog.o
     }
@@ -425,19 +425,26 @@ strip_test_with_saving_a_symbol
 
 # Build a final executable.
 
+if { [istarget *-*-cygwin] || [istarget *-*-mingw32] } {
+    set test_prog "testprog.exe"
+} else {
+    set test_prog "testprog"
+}
+
 proc copy_setup { } {
     global srcdir
     global subdir
     global gcc_gas_flag
+    global test_prog
     
-    set res [build_wrapper testglue.o];
-    set flags { debug };
+    set res [build_wrapper testglue.o]
+    set flags { debug }
     
     if { $res != "" } {
-       lappend flags "additional_flags=[lindex $res 1]";
-       set add_libs "testglue.o";
+       lappend flags "additional_flags=[lindex $res 1]"
+       set add_libs "testglue.o"
     } else {
-       set add_libs "";
+       set add_libs ""
     }
 
     if { [istarget *-*-linux*] } {
@@ -445,12 +452,12 @@ proc copy_setup { } {
            set flags "additional_flags=$i $flags"
        }
     }
-    if { [target_compile "$srcdir/$subdir/testprog.c $add_libs" tmpdir/testprog executable $flags]  != "" } {
+    if { [target_compile "$srcdir/$subdir/testprog.c $add_libs" tmpdir/$test_prog executable $flags]  != "" } {
        return 2
     }
 
-    set result [remote_load target tmpdir/testprog];
-    set status [lindex $result 0];
+    set result [remote_load target tmpdir/$test_prog]
+    set status [lindex $result 0]
 
     if { $status != "pass"  } {
        perror "unresolved setup, status = $status"
@@ -463,15 +470,16 @@ proc copy_setup { } {
 # Test copying an executable.
 
 proc copy_executable { prog flags test1 test2 } {
+    global test_prog
 
     if [is_remote host] {
-       set testfile [remote_download host tmpdir/testprog];
+       set testfile [remote_download host tmpdir/$test_prog]
        set testcopy copyprog
     } else {
-       set testfile tmpdir/testprog
+       set testfile tmpdir/$test_prog
        set testcopy tmpdir/copyprog
     }
-    remote_file host delete $testcopy;
+    remote_file host delete $testcopy
 
     set exec_output [binutils_run $prog "$flags $testfile $testcopy"]
 
@@ -485,8 +493,8 @@ proc copy_executable { prog flags test1 test2 } {
        remote_upload host $testcopy tmpdir/copyprog
     }
 
-    set status [remote_exec build "cmp" "tmpdir/testprog tmpdir/copyprog"]
-    set exec_output [lindex $status 1];
+    set status [remote_exec build "cmp" "tmpdir/$test_prog tmpdir/copyprog"]
+    set exec_output [lindex $status 1]
 
     if [string match "" $exec_output] then {
        pass $test1
@@ -519,7 +527,7 @@ proc copy_executable { prog flags test1 test2 } {
     }
 
     set output [remote_load target tmpdir/copyprog]
-    set status [lindex $output 0];
+    set status [lindex $output 0]
     if { $status != "pass" } {
        fail $test2
     } else {
@@ -535,7 +543,7 @@ proc strip_executable { prog flags test } {
 
     remote_download build tmpdir/copyprog tmpdir/striprog
     if [is_remote host] {
-       set copyfile [remote_download host tmpdir/striprog];
+       set copyfile [remote_download host tmpdir/striprog]
     } else {
        set copyfile tmpdir/striprog
     }
@@ -547,11 +555,11 @@ proc strip_executable { prog flags test } {
     }
 
     if [is_remote host] {
-       remote_upload host ${copyfile} tmpdir/striprog;
+       remote_upload host ${copyfile} tmpdir/striprog
     }
 
     set result [remote_load target tmpdir/striprog]
-    set status [lindex $result 0];
+    set status [lindex $result 0]
     if { $status != "pass" } {
        fail $test
         return
@@ -573,7 +581,7 @@ proc strip_executable_with_saving_a_symbol { prog flags test } {
 
     remote_download build tmpdir/copyprog tmpdir/striprog
     if [is_remote host] {
-       set copyfile [remote_download host tmpdir/striprog];
+       set copyfile [remote_download host tmpdir/striprog]
     } else {
        set copyfile tmpdir/striprog
     }
@@ -585,11 +593,11 @@ proc strip_executable_with_saving_a_symbol { prog flags test } {
     }
 
     if [is_remote host] {
-       remote_upload host ${copyfile} tmpdir/striprog;
+       remote_upload host ${copyfile} tmpdir/striprog
     }
 
     set result [remote_load target tmpdir/striprog]
-    set status [lindex $result 0];
+    set status [lindex $result 0]
     if { $status != "pass" } {
        fail $test
         return
@@ -605,8 +613,8 @@ proc strip_executable_with_saving_a_symbol { prog flags test } {
        regsub "^\[0-9a-fA-F\]+\[ \]+T Main\[\n\r\]+" $exec_output "" exec_output
     }
 
-    if {![regexp {^[0-9a-fA-F]+ T main} $exec_output] \
-         && ![regexp {^[0-9a-fA-F]+ T _main} $exec_output]} {
+    if {![regexp {^([0-9a-fA-F]+)?[ ]+[TD] main} $exec_output] \
+         && ![regexp {^([0-9a-fA-F]+)?[ ]+[TD] _main} $exec_output]} {
        fail $test
        return
     }