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

David Edelsohn dje@watson.ibm.com
Wed Nov 23 05:20:00 GMT 2005


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

but something now is broken.

David



More information about the Fortran mailing list