binutils/testsuite/
authorJan Beulich <jbeulich@novell.com>
Tue, 15 Nov 2005 08:32:02 +0000 (08:32 +0000)
committerJan Beulich <jbeulich@novell.com>
Tue, 15 Nov 2005 08:32:02 +0000 (08:32 +0000)
2005-11-15  Jan Beulich  <jbeulich@novell.com>

* config/default.exp (link_or_copy): New. Use it for setting
up assembler and linker for the compiler to use.

ld/testsuite/
2005-11-15  Jan Beulich  <jbeulich@novell.com>

* ld-bootstrap/bootstrap.exp: Delete ld-partial.o and ld[123]*
after test.
* ld-elf/elf.exp: Delete preinit, init, and fini after test.
* ld-elf/sec64k.exp: Use macro and repeat in generated source
files. Delete object files after test.

binutils/testsuite/ChangeLog
binutils/testsuite/config/default.exp
ld/testsuite/ChangeLog
ld/testsuite/ld-bootstrap/bootstrap.exp
ld/testsuite/ld-elf/elf.exp
ld/testsuite/ld-elf/sec64k.exp

index 648080c..8dce127 100644 (file)
@@ -1,3 +1,8 @@
+2005-11-15  Jan Beulich  <jbeulich@novell.com>
+
+       * config/default.exp (link_or_copy): New. Use it for setting
+       up assembler and linker for the compiler to use.
+
 2005-10-20  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR ld/251
index 6ee5eda..4c8b6e0 100644 (file)
@@ -74,21 +74,26 @@ if ![file isdirectory tmpdir] {catch "exec mkdir tmpdir" status}
 # Make a copy from tmpdir/gas/as and tmpdir/gas/ld to the assembler
 # and linker in the build tree, so that we can use a -B option to gcc
 # to force it to use the newly built assembler/linker.
-if {![file isdirectory tmpdir/gas]} then {
-    catch "exec mkdir tmpdir/gas" status
-    if {[file isfile ../gas/as-new[exe_ext]]} then {
-       catch "exec cp ../gas/as-new[exe_ext] tmpdir/gas/as[exe_ext]" status
-    } else {
-       # For non-Windows hosts there may be an executable
-       # without a .exe suffix, so try copying that instead.
-       catch "exec cp ../gas/as-new tmpdir/gas/as[exe_ext]" status
-    }
-    # This may not be needed any more...
-    if {[file isfile ../ld/ld-new[exe_ext]]} then {
-       catch "exec cp ../ld/ld-new[exe_ext] tmpdir/gas/ld[exe_ext]" status
-    } else {
-       catch "exec cp ../ld/ld-new tmpdir/gas/ld[exe_ext]" status
-    }
+if {![file isdirectory tmpdir/gas]} {catch "exec mkdir tmpdir/gas" status}
+
+proc link_or_copy { src dst } {
+    if ![catch "exec ln -sf ../../../$src tmpdir/gas/$dst" status] then {return 0}
+    if ![catch "exec ln -f ../$src tmpdir/gas/$dst" status] then {return 0}
+    catch "exec cp -fpu ../$src tmpdir/gas/$dst" status
+}
+
+if {[file isfile gas/as-new[exe_ext]]} then {
+    link_or_copy gas/as-new[exe_ext] as[exe_ext]
+} else {
+    # For non-Windows hosts there may be an executable
+    # without a .exe suffix, so try copying that instead.
+    link_or_copy gas/as-new as[exe_ext]
+}
+# This may not be needed any more...
+if {[file isfile ld/ld-new[exe_ext]]} then {
+    link_or_copy ld/ld-new[exe_ext] ld[exe_ext]
+} else {
+    link_or_copy ld/ld-new ld[exe_ext]
 }
 set gcc_gas_flag "-B[pwd]/tmpdir/gas/"
 set dlltool_gas_flag "-S [pwd]/tmpdir/gas/as[exe_ext]"
index 0a132c2..fe5329f 100644 (file)
@@ -1,3 +1,11 @@
+2005-11-15  Jan Beulich  <jbeulich@novell.com>
+
+       * ld-bootstrap/bootstrap.exp: Delete ld-partial.o and ld[123]*
+       after test.
+       * ld-elf/elf.exp: Delete preinit, init, and fini after test.
+       * ld-elf/sec64k.exp: Use macro and repeat in generated source
+       files. Delete object files after test.
+
 2005-11-11  Hans-Peter Nilsson  <hp@axis.com>
 
        * ld-cris/noov.d: Restrict to cris-*-*elf*.
index 6faa6d6..58cb969 100644 (file)
@@ -169,3 +169,6 @@ foreach flags {"" "strip" "--static" "--traditional-format"
        fail $testname
     }
 }
+
+catch "exec rm -f tmpdir/ld-partial.o tmpdir/ld1 tmpdir/ld2 tmpdir/ld3" status
+catch "exec rm -f tmpdir/ld1tail tmpdir/ld2tail tmpdir/ld3tail" status
index 5cba743..43c4282 100644 (file)
@@ -45,3 +45,5 @@ set array_tests {
 
 # NetBSD ELF systems do not currently support the .*_array sections.
 run_ld_link_exec_tests [list "*-*-netbsdelf*"] $array_tests
+
+catch "exec rm -f tmpdir/preinit tmpdir/init tmpdir/fini" status
index cc15afb..b4a88a0 100644 (file)
@@ -39,7 +39,6 @@ if { ![runtest_file_p $runtests $test1] \
 set sfiles {}
 set max_sec 66000
 set secs_per_file 1000
-set secn 0
 for { set i 0 } { $i < $max_sec / $secs_per_file } { incr i } {
     set sfile "$objdir/tmpdir/sec64-$i.s"
     lappend sfiles $sfile
@@ -50,7 +49,7 @@ for { set i 0 } { $i < $max_sec / $secs_per_file } { incr i } {
        return
     }
 
-    if { $secn == 0 } {
+    if { $i == 0 } {
        puts $ofd " .global _start"
        puts $ofd "_start:"
        puts $ofd " .global foo_0"
@@ -59,15 +58,20 @@ for { set i 0 } { $i < $max_sec / $secs_per_file } { incr i } {
 
     # Make sure the used section is not covered by common linker scripts.
     # They should get separate section entries even without -r.
-    for { set j 0 } { $j < $secs_per_file } { incr j } {
-       incr secn
-       puts $ofd " .section .foo.$secn,\"ax\""
-       puts $ofd " .global foo_$secn"
-       puts $ofd "foo_$secn:"
-       puts $ofd " .long foo_[expr $secn - 1]"
-       puts $ofd "bar_$secn:"
-       puts $ofd " .long bar_$secn"
-    }
+    puts $ofd " .altmacro"
+    puts $ofd " .macro sec secn, secp"
+    puts $ofd "  .section .foo.\\secn,\"ax\""
+    puts $ofd "  .global foo_\\secn"
+    puts $ofd "foo_\\secn:"
+    puts $ofd "  .long foo_\\secp"
+    puts $ofd "bar_\\secn:"
+    puts $ofd "  .long bar_\\secn"
+    puts $ofd " .endm"
+    puts $ofd " secn = [expr $i * $secs_per_file]"
+    puts $ofd " .rept $secs_per_file"
+    puts $ofd "  secn = secn + 1"
+    puts $ofd "  sec %(secn), %(secn-1)"
+    puts $ofd " .endr"
 
     close $ofd
 }
@@ -141,3 +145,7 @@ 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
+}