libgfortran3 respin : status and problem
marco atzeri
marco.atzeri@gmail.com
Sat Mar 26 12:12:00 GMT 2011
On Sat, Mar 26, 2011 at 10:45 AM, Corinna Vinschen wrote:
> On Mar 26 06:56, marco atzeri wrote:
>> Hi,
>> I rebuilt lapack, qrupdate, octave and netcdf with the libgfortran3-4.3.4-4.
>>
>> ( If you wan to try them, install with
>> setup.exe -X -O -s http://matzeri.altervista.org )
>>
>> lapack tests passed
>> netcdf also (i am not 100% sure)
>>
>> but testing qrupdate I catched another problem.
>> The test programs go in a never ending loop:
>>
>> 37 15579 [main] tch1dn_sym 4300 fhandler_tty_slave::write: (746):
>> tty output_mutex: waiting -1 ms
>> 31 15610 [main] tch1dn_sym 4300 fhandler_tty_slave::write: (746):
>> tty output_mutex: acquired
>> 33 15643 [main] tch1dn_sym 4300 fhandler_tty_slave::write: (789):
>> tty output_mutex released
>
> That's not an endless loop as far as Cygwin is concerned. When a
> process writes to the console, then every write is atomic. To accomplish
> that, a mutex is used, like this:
>
> write()
> {
> acquire mutex
> while (there's still something to write)
> write it
> release mutex
> }
>
> So, what you see is a supposedly endless stream of calls to the write
> function. Usually, if an error occurs, you would also see an error
> message. The only reason you don't see it is if an error already
> occured in an earlier call to write. The important would be prior to
> the endless loop then. Maybe the testcase doesn't check for errors?
>
>
> Corinna
the test case is a normal Fortran program that call numerical functions and
print output with a really standard "write" command, nothing fancy.
It used to work fine with previous libgfortran3-4.3.4-3 and cygwin-1.7.7
---------------------------------------------------------
write (*,*)
write (*,*) 'testing Cholesky rank-1 downdate routines.'
write (*,*) 'All residual errors are expected to be small.'
write (*,*)
n = 50
write (*,*) 'sch1dn test:'
call stest(n)
write (*,*) 'dch1dn test:'
call dtest(n)
write (*,*) 'cch1dn test:'
call ctest(n)
write (*,*) 'zch1dn test:'
call ztest(n)
-------------------------------------------------------------
subroutine smdump(name,m,n,A,lda)
character(*) name
integer m,n,lda
real A(lda,n)
integer i,j
write (*,1001) name
do i = 1,m
do j = 1,n
write(*,1002) A(i,j)
end do
write(*,*)
end do
------------------------------------------------------------------
The full source is here, and it is a very tiny lib
http://matzeri.altervista.org/cygwin-1.7/qrupdate/
May be a mutex problem in Fortran lib ?
We already had long time ago.... a "WRITE" problem
http://cygwin.com/ml/cygwin/2009-03/msg00428.html
Marco
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list