gfc_offset question (32 vs. 64 bits)
Arnaud Desitter
arnaud.desitter@ouce.ox.ac.uk
Wed Dec 15 11:51:00 GMT 2004
----- Original Message -----
From: "Steve Ellcey" <sje@cup.hp.com>
Newsgroups: gmane.comp.gcc.fortran
Cc: <fortran@gcc.gnu.org>
Sent: Tuesday, December 14, 2004 10:03 PM
Subject: Re: gfc_offset question (32 vs. 64 bits)
>> Steve Ellcey wrote:
>> > Does libgfortran (or any other GCC library) offer a way to pass
>> > compiler
>> > option information into a library so it could be used to change the
>> > libraries behaviour? I guess one could invent a new interface to do
>> > this, I was wondering if there was any existing precedence.
>>
>> The library reacts to a set of environment variables (see the code
>> following
>> line 427 in runtime/environ.c). Maybe we would like this to be setable at
>> runtime.
>>
>> - Tobi
>
> That certainly looks interesting. What do people think about an
> environment variable to control this? gfc_offset would get set just
> like it does now but you could set an environment variable
> GFORTRAN_RECORD_OFFSET_SIZE to either 32 or 64. If gfc_offset were a 64
> bit variable but GFORTRAN_RECORD_OFFSET_SIZE were set to 32 then we
> would restrict the value to 32 bits and only write out 32 bits to the
> unformatted sequential file. If GFORTRAN_RECORD_OFFSET_SIZE were set to
> 64 and sizeof (gfc_offset) is only 32 we would ignore it.
>
To make the behaviour of the program dependent on an environment variable is
the worst
design possible. The intel compiler introduced it circa version 6.x ("
F_UFMTENDIAN ")
and it is a constant source of trouble. Typically, after a while, the user
sets this variable in its
environment. Then, when working on a new project, a different code starts to
produce
"corrupted" files. That's bad.
Better designs are:
- add a compiler option (The intel compiler version 8.x inherited it from
the Digital compiler.
Mistake fixed !) so that the resulting executable has a predictable
behaviour.
- parse the options passed to the executable and make the behaviour
dependent on a magic
option such as "-Wfrte,offset=64".
As usual with open source software, the final design will depend on who does
the coding job.
Regards,
More information about the Fortran
mailing list