+2020-05-23 Alan Modra <amodra@gmail.com>
+
+ * testsuite/binutils-all/ar.exp (many_files): New test.
+
2020-05-21 Alan Modra <amodra@gmail.com>
* addr2line.c: Replace "if (x) free (x)" with "free (x)" throughout.
pass $testname
}
+proc many_files { } {
+ global AR
+ global AS
+ global srcdir
+ global subdir
+
+ set testname "ar many files"
+
+ set ofiles {}
+ set max_file 150
+ for { set i 0 } { $i < $max_file } { incr i } {
+ set sfile "tmpdir/d-$i.s"
+ if [catch { set ofd [open $sfile w] } x] {
+ perror "$x"
+ unresolved $testname
+ return
+ }
+
+ puts $ofd " .globl data_sym$i"
+ puts $ofd " .data"
+ puts $ofd "data_sym$i:"
+ puts $ofd " .long $i"
+ close $ofd
+
+ set ofile "tmpdir/d-$i.o"
+ if ![binutils_assemble $sfile $ofile] {
+ unresolved $testname
+ return
+ }
+
+ set objfile $ofile
+ if [is_remote host] {
+ remote_file host delete $sfile
+ set objfile [remote_download host $ofile]
+ remote_file build delete $ofile
+ }
+ remote_file build delete $sfile
+ lappend ofiles $objfile
+ }
+
+ set archive tmpdir/many.a
+ remote_file host delete $archive
+
+ set got [binutils_run $AR "cr $archive $ofiles"]
+ if ![string match "" $got] {
+ fail $testname
+ return
+ }
+
+ remote_file host delete $archive
+ eval remote_file host delete $ofiles
+
+ pass $testname
+}
+
# Run the tests.
# Only run the bfdtest checks if the programs exist. Since these
move_an_element
empty_archive
extract_an_element
+many_files
if { [is_elf_format] && [supports_gnu_unique] } {
unique_symbol