This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libstdc++/8610: std::streamoff type is 32-bit in GCC 3.2 whereasit was 64-bit in GCC 2.96

The following reply was made to PR libstdc++/8610; it has been noted by GNATS.

From: Paolo Carlini <>
To: Andreas Jaeger <>
Subject: Re: libstdc++/8610: std::streamoff type  is 32-bit  in GCC 3.2 whereas
 it was 64-bit in GCC 2.96
Date: Sat, 08 Feb 2003 22:50:23 +0100

 Andreas Jaeger wrote:
 >Paolo, I need some help here since I don't know the internals of
 Hi Andreas and thanks for your _very_ quick reply!
 My impression, in general, is that enabling LFS for libstdc++ is a
 new project! I would appreciate having some general guidelines from
 you and trying to work on it in the next few months...
 >(where does this file come from?) indeed defines:
 >namespace std 
 >// for fpos.h
 >  typedef long          streamoff;
 >  typedef ptrdiff_t     streamsize; // Signed integral type
 It comes from libstdc++-v3/config/io/c_io_stdio.h. It's wrong, right?
 What should be, instead, off64_t?
 Is this the correct type, which becomes a real 64 bit type as soon
 as _FILE_OFFSET_BITS=64 is defined?
 Also, why _two_ different defines are needed, both _FILE_OFFSET_BITS=64
 and _LARGEFILE_SOURCE ?? Could you please explain a bit?
 >And libstdc++/config/io/c_io_libio.h has:
 Disregard this file: it was only used by the old libio.
 >But the problem is even more subitle.  config/io/
 >uses fseek/ftell which use a long int and therefore - under 32-bit -
 >allow only 2 GB. You should use fseeko/ftello or fsetpos/fgetpos.
 I see... Isn't possible to have a single name for both 32 and 64 bit
 which transparently adapts according to the value of the defines??
 Is it fseeko/ftello?
 I read in the glibc docs that open64 for instance can be avoided and
 only open used transaparently...
 In your opinion, which amount of transparency can be achieved?
 I mean, it will ever be possible to have one single libstdc++, which,
 without configure magic, becomes LFS only by setting 
 _FILE_OFFSET_BITS=64 and _LARGEFILE_SOURCE when it's compiled?
 Thanks for your past and future help,

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]