[PATCH] Thread-safe libgfortran (PRs fortran/14943 and fortran/21647)

Alan Modra amodra@bigpond.net.au
Wed Nov 23 05:48:00 GMT 2005


On Wed, Nov 23, 2005 at 12:20:17AM -0500, David Edelsohn wrote:
> 	The patch also appears to have reintroduced two regressions on at
> least AIX and PPC Linux.
> 
> gfortran.dg/dev_null.f90
> gfortran.dg/write_to_null.f90
> 
> are failing with a "File already opened in another unit" error.  This
> happens if the tests are run with no controlling terminal, so stdin is
> /dev/null.  If I compile the testcases above and run them manually at a
> shell prompt, they succeed.  If I run with
> 
> $ ./a.out < /dev/null
> 
> they fail.
> 
> 	This is suppose to be handled in
> libgfortran/io/open.c:new_unit()
> 
>   if (u2 != NULL
>       && (options.stdin_unit < 0 || u->unit_number != options.stdin_unit)
>       && (options.stdout_unit < 0 || u->unit_number != options.stdout_unit)
>       && (options.stderr_unit < 0 || u->unit_number != options.stderr_unit))

I think that ought to be u2->unit_number rather than u->unit_number.
Testing...

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre



More information about the Fortran mailing list