ld tests hang on older arm-linux hosts

Nick Clifton nickc@redhat.com
Wed Aug 17 15:05:00 GMT 2005

Hi Richard,

> The new init-array family of tests are spinning for ever on some older
> arm-linux platforms (where there appears to be a bug in ld-linux.so).
> The test framework executes a generated test using 
>             catch "exec $binfile > $binfile.out" exec_output
> but this doesn't take a timeout, so if the executable doesn't terminate
> the testsuite just hangs.  I think it needs to use the remote_exec (or
> local_exec) proc in dejagnu's remote.exp framework file which can take a
> timeout, but my expect knowledge is limited and I've been unsuccessful
> in producing a viable patch.

Are you still struggling with this ?

If so then I think that it may be file redirection that is causing the 
problems.  For example I found that replacing this:

	    set failed 0
	    send_log "Running: $binfile > $binfile.out\n"
	    verbose "Running: $binfile > $binfile.out"
	    catch "exec $binfile > $binfile.out" exec_output
	    if ![string match "" $exec_output] then {
		send_log "$exec_output\n"
		verbose "$exec_output" 1
		set failed 1
	    } else {

with this:

	    set failed 0
	    send_log "Running: $binfile\n"
	    verbose "Running: $binfile"
	    set tmp [local_exec $binfile "" "" 100]
	    set status [lindex $tmp 0]
	    set bin_output [lindex $tmp 1]
	    if { $status != 0 } then {
		set failed 1
	    } else {

worked.  Of course at this point you have the output of the program in a 
variable called $bin_output but the code is about to go on and do a 
"diff $binfile.out...." but I am sure that you can fix that.

Also you would probably want the timeout to be set on a per-target basis 
and not hardcoded to 100.


More information about the Binutils mailing list