[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