This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libgfortran3 respin : status and problem


On 03/26/2011 03:33 AM, marco atzeri wrote:
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
------------------------------------------------------------------


I have been monitoring this thread for the libgfortran maintainer side, but have not had time yet to investigate further. The only platform reporting the issue so far is Cygwin. I am not aware of any changes occurring with 4.3 upstream of Cygwin, but I will check the logs.


Jerry

--
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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]