This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libfortran/24576] Fortran I/O to same unit number in main program and in a shared library
- From: "iwan at irs dot phy dot nrc dot ca" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 29 Oct 2005 01:52:48 -0000
- Subject: [Bug libfortran/24576] Fortran I/O to same unit number in main program and in a shared library
- References: <bug-24576-11486@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from iwan at irs dot phy dot nrc dot ca 2005-10-29 01:52 -------
Subject: Re: Fortran I/O to same unit number in main program and in a shared
library
I guess, it all comes down to what is a "program".
If I look at section 5.5.2.3 of the 2003 Standard about common blocks,
I find that
"Within a program, the common block storage sequences of of all
non-zero sized common blocks with the same name have the same
first storage unit...".
Yet, if I have common/a/ in some subroutine and create a
shared library using -Wl,-Bsymbolic (or whatever linker options
are needed to make symbols local to the shared library),
this is not the same common block as common/a/ in the main
program using the shared library. Therefore, if one takes the standard
seriously, the shared library is not part of the program in this case
and therefore I/O in the shared library should not interfere with
I/O in the main program.
This is the behavior one gets with the Intel and PGI compilers on
Linux and this is the behavior I remember from years ago on
IRIX and SunOS workstations.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24576