Bug 8610 - large file support in libstdc++-v3 (std::streamoff type is 32-bit in GCC 3.2 whereas it was 64-bit in GCC 2.96)
large file support in libstdc++-v3 (std::streamoff type is 32-bit in GCC 3....
Status: RESOLVED FIXED
Product: gcc
Classification: Unclassified
Component: libstdc++
3.2
: P3 normal
: 3.4.0
Assigned To: Paolo Carlini
:
: 10029 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2002-11-16 08:16 UTC by davido
Modified: 2003-10-22 15:56 UTC (History)
7 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments
sizetest.ii.tar.gz (97.28 KB, application/x-gzip )
2003-05-21 15:17 UTC, davido
Details

Note You need to log in before you can comment on or make changes to this bug.
Description davido 2002-11-16 08:16:01 UTC
Large file support under the std namespace appears to be broken for my version of the gcc 3.2 compiler (files larger than 2 GB can't be written using std::fstream).  I think this may be because of a change in the types used for std::streamoff and std::streampos.

In gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)
sizeof(std::streamoff) = 8 bytes (64 bits)
sizeof(std::streampos) = 8 bytes (64 bits)

This seems reasonable.

In gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
sizeof(std::streamoff) = 4 bytes (32 bits)
sizeof(std::streampos) = 12 bytes (96 bits)

This looks like it might be a bug, because 96-bit file offsets are very large, but (signed) 32-bit offsets limit files to 2 GB.

Release:
gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)

Environment:
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --host=i386-redhat-linux --with-system-zlib --enable-__cxa_atexit
Thread model: posix
gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)

How-To-Repeat:
The attached file contains a tar.gz of the *.ii files from both versions of the gcc compiler for the following source code.


#include <fstream>
#include <iostream>

using namespace std;

int main(void)
{
        cout << "sizeof(std::streamoff) = " << sizeof(std::streamoff) << " bytes (" << (sizeof(std::streamoff) * 8) << " bits)" << endl;
        cout << "sizeof(std::streampos) = " << sizeof(std::streampos) << " bytes (" << (sizeof(std::streampos) * 8) << " bits)" << endl;
        return 0;
}
Comment 1 davido 2002-11-16 08:16:01 UTC
Fix:
I don't know enough about gcc to propose a solution.  In gcc 3.2, "streamoff" is a "typedef long" (from the *.ii file), whereas it's a "typedef __off64_t" in gcc 2.96 (from the *.ii file).
Comment 2 Paolo Carlini 2003-02-08 20:31:56 UTC
Responsible-Changed-From-To: unassigned->aj
Responsible-Changed-Why: LFS expert.
Comment 3 Paolo Carlini 2003-02-08 20:31:56 UTC
State-Changed-From-To: open->analyzed
State-Changed-Why: Hi Andreas, could you please have a look at this PR?
    It's about large file support in Linux and, having browsed
    your page
      http://www.suse.de/~aj/linux_lfs.html
    I think you can answer it _much_ better than me!
    Thanks, Paolo.
Comment 4 Andreas Jaeger 2003-02-08 22:28:03 UTC
From: Andreas Jaeger <aj@suse.de>
To: paolo@gcc.gnu.org
Cc: davido@csse.uwa.edu.au, gcc-bugs@gcc.gnu.org,
	gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
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:28:03 +0100

 paolo@gcc.gnu.org writes:
 
 > Synopsis: std::streamoff type  is 32-bit  in GCC 3.2 whereas it was 64-bit in GCC 2.96
 >
 > Responsible-Changed-From-To: unassigned->aj
 > Responsible-Changed-By: paolo
 > Responsible-Changed-When: Sat Feb  8 20:31:56 2003
 > Responsible-Changed-Why:
 >     LFS expert.
 > State-Changed-From-To: open->analyzed
 > State-Changed-By: paolo
 > State-Changed-When: Sat Feb  8 20:31:56 2003
 > State-Changed-Why:
 >     Hi Andreas, could you please have a look at this PR?
 >     It's about large file support in Linux and, having browsed
 >     your page
 >       http://www.suse.de/~aj/linux_lfs.html
 >     I think you can answer it _much_ better than me!
 >     Thanks, Paolo.
 
 Paolo, I need some help here since I don't know the internals of
 libstc++.
 
 /opt/gcc/3.4-devel/include/c++/3.4/i686-pc-linux-gnu/bits/c++io.h
 (where does this file come from?) indeed defines:
 namespace std 
 {
 // for fpos.h
   typedef long          streamoff;
   typedef ptrdiff_t     streamsize; // Signed integral type
 
 And libstdc++/config/io/c_io_libio.h has:
 
 namespace std 
 {
 // from fpos.h
   typedef _IO_ssize_t   streamsize; // Signed integral type
   typedef _IO_ssize_t   wstreamsize;
 
 #if defined(_G_IO_IO_FILE_VERSION) && _G_IO_IO_FILE_VERSION == 0x20001
   typedef _IO_off64_t   streamoff;
   typedef _IO_fpos64_t  __c_streampos;
 #else
   typedef _IO_off_t     streamoff;
   typedef _IO_fpos_t    __c_streampos;
 #endif
 
 For Linux we should IO_IO_FILE_VERSION defined and set to 0x20001.
 But why is this not done?
 
 But the problem is even more subitle.  config/io/basic_file_stdio.cc
 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.
 
 Paolo, does this help?  Or did I look at the wrong files?
 
 Andreas
 -- 
  Andreas Jaeger
   SuSE Labs aj@suse.de
    private aj@arthur.inka.de
     http://www.suse.de/~aj

Comment 5 pcarlini 2003-02-08 22:50:23 UTC
From: Paolo Carlini <pcarlini@unitus.it>
To: Andreas Jaeger <aj@suse.de>
Cc: paolo@gcc.gnu.org,  davido@csse.uwa.edu.au,  gcc-bugs@gcc.gnu.org, 
 gcc-prs@gcc.gnu.org,  nobody@gcc.gnu.org,  gcc-gnats@gcc.gnu.org
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
 >libstc++.
 >
 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...
 So:
 
 >/opt/gcc/3.4-devel/include/c++/3.4/i686-pc-linux-gnu/bits/c++io.h
 >(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/basic_file_stdio.cc
 >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,
 Paolo.
 

Comment 6 Andreas Jaeger 2003-02-09 11:21:38 UTC
From: Andreas Jaeger <aj@suse.de>
To: Paolo Carlini <pcarlini@unitus.it>
Cc: paolo@gcc.gnu.org, davido@csse.uwa.edu.au, gcc-bugs@gcc.gnu.org,
	gcc-prs@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: libstdc++/8610: std::streamoff type  is 32-bit  in GCC 3.2
 whereas it was 64-bit in GCC 2.96
Date: Sun, 09 Feb 2003 11:21:38 +0100

 Paolo Carlini <pcarlini@unitus.it> writes:
 
 > Andreas Jaeger wrote:
 >
 >>Paolo, I need some help here since I don't know the internals of
 >>libstc++.
 >>
 > 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...
 > So:
 >
 >>/opt/gcc/3.4-devel/include/c++/3.4/i686-pc-linux-gnu/bits/c++io.h
 >>(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?
 
 It really depends on the functions you use - if you use fseek/ftell,
 it's right.  But if you compile with _FILE_OFFSET_BITS=64 and use
 ftello/fseeko, you need off_t which is in this case a 64-bit variable.
 Or use fseeko64/ftello64 with off64_t, or fsetpos64/fgetpos64 with
 fpos64_t.
 
 > Is this the correct type, which becomes a real 64 bit type as soon
 > as _FILE_OFFSET_BITS=64 is defined?
 
 off_t becomes 64-bit if you use that define.
 
 > Also, why _two_ different defines are needed, both _FILE_OFFSET_BITS=64
 > and _LARGEFILE_SOURCE ?? Could you please explain a bit?
 
 _FILE_OFFSET_BITS=64 basically renames the types and functions so that
 instead of fsetpos, fsetpos64 is called.
 
 _LARGEFILE_SOURCE gives only the declaration for 64-bit types and
 functions without the renaming, so that your program can use both
 fsetpos and fsetpos64.
 
 >>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/basic_file_stdio.cc
 >>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?
 
 Yes - or fsetpos/fgetpos.
 
 > I read in the glibc docs that open64 for instance can be avoided and
 > only open used transaparently...
 
 With _FILE_OFFSET_BITS=64
 
 > 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?
 
 Using _FILE_OFFSET_BITS=64 would work if we use off_t and avoid
 fseek/ftell.  But it might give an incompatible lib depending which
 define is use.
 
 I therefore advise to use _LARGEFILE_SOURCE only and call the 64-bit
 functions directly.
 
 > Thanks for your past and future help,
 
 ;-)
 
 Btw. What shall we do with this PR?
 Andreas
 -- 
  Andreas Jaeger
   SuSE Labs aj@suse.de
    private aj@arthur.inka.de
     http://www.suse.de/~aj

Comment 7 pcarlini 2003-02-09 12:55:53 UTC
From: Paolo Carlini <pcarlini@unitus.it>
To: Andreas Jaeger <aj@suse.de>
Cc: paolo@gcc.gnu.org,  davido@csse.uwa.edu.au,  gcc-bugs@gcc.gnu.org, 
 gcc-prs@gcc.gnu.org,  gcc-gnats@gcc.gnu.org
Subject: Re: libstdc++/8610: std::streamoff type  is 32-bit  in GCC 3.2 whereas
 it was 64-bit in GCC 2.96
Date: Sun, 09 Feb 2003 12:55:53 +0100

 Andreas Jaeger wrote:
 
 [detailed explanations]
 
 >>Thanks for your past and future help,
 >>
 >;-)
 >
 Many, many thanks again!
 
 >Btw. What shall we do with this PR?
 >
 I think we should keep it in the analyzed state until
 it's fixed, i.e., LFS enabled in the library.
 After your clear explanations shouldn't be that difficult!
 
 As for the formal responsible, if you really prefer, I
 can assign it to myself. You choose.
 
 Paolo.
 
Comment 8 Paolo Carlini 2003-02-09 13:20:12 UTC
Responsible-Changed-From-To: aj->paolo
Responsible-Changed-Why: Will work on it (with Andreas help!)
Comment 9 Ondrej Svetlik 2003-06-27 08:30:49 UTC
Is there any chance this BUG will be solved soon? I went through your
conversation and still don't get the idea. In 2.96 it works well, were there any
bugs so it had to be removed from 3.x?
Regards,
Ondrej Svetlik
Comment 10 Andreas Jaeger 2003-06-27 08:37:51 UTC
GCC 3.1 and later contain a new libstdc++ and changing this needs a redesign in
the library that is planned for GCC 3.4 (see "Target Milestone" in the PR).
GCC 3.4 is excepted for later this year.
Comment 11 Andrew Pinski 2003-08-11 20:06:09 UTC
Note on powerpc-apple-darwin6.6 and i686-unknown-openbsd3.1, I get:
sizeof(std::streamoff) = 4 bytes (32 bits)
sizeof(std::streampos) = 28 bytes (224 bits)

Also note that off_t is 64 bits:
sizeof(off_t) = 8 bytes (64 bits)

Looks like streamoff is wrongly defined for the *bsd in the first place (also large file 
support is always on for *bsd).  I include darwin as one of the *bsd in this case.
Comment 12 Nathanael C. Nerode 2003-10-13 04:55:44 UTC
Library fix status?  3.4 is going into stage 3 soon....
Comment 13 CVS Commits 2003-10-16 22:38:03 UTC
Subject: Bug 8610

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	bkoz@gcc.gnu.org	2003-10-16 22:37:54

Modified files:
	libstdc++-v3   : ChangeLog acinclude.m4 aclocal.m4 configure 
	                 configure.ac configure.host 
	libstdc++-v3/config/io: basic_file_stdio.cc basic_file_stdio.h 
	                        c_io_stdio.h 
	libstdc++-v3/include: Makefile.am Makefile.in 
	libstdc++-v3/include/bits: char_traits.h fstream.tcc sstream.tcc 
	libstdc++-v3/include/std: std_iosfwd.h 
	libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char: 1-in.cc 
	                                                         1-io.cc 
	                                                         1-out.cc 
	                                                         2-in.cc 
	                                                         2-io.cc 
	                                                         2-out.cc 
	libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char: 1-in.cc 
	                                                         1-io.cc 
	                                                         1-out.cc 
	                                                         2-in.cc 
	                                                         2-io.cc 
	                                                         2-out.cc 
	libstdc++-v3/testsuite/27_io/basic_istream/seekg/char: 2.cc 
	libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char: 1.cc 
	libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char: 1.cc 
	libstdc++-v3/testsuite/27_io/fpos/mbstate_t: 3.cc 
	libstdc++-v3/testsuite/27_io/objects/char: 10.cc 
Added files:
	libstdc++-v3/include/bits: postypes.h 
	libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char: 
	                                                         11543.cc 
	libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t: 
	                                                            11543.cc 
	libstdc++-v3/testsuite/27_io/fpos: 11450.cc 
	libstdc++-v3/testsuite/27_io/fpos/mbstate_t: 12065.cc 4_neg.cc 
	libstdc++-v3/testsuite/27_io/types: 3.cc 
Removed files:
	libstdc++-v3/config/os/generic: fpos.h 
	libstdc++-v3/config/os/gnu-linux: fpos.h 

Log message:
	2003-10-16  Petur Runolfsson  <peturr02@ru.is>
	
	PR libstdc++/8610
	PR libstdc++/11450
	PR libstdc++/11543
	PR libstdc++/12065
	* config/io/basic_file_stdio.cc (__basic_file::seekoff):
	Change return value from streampos to streamoff.
	(__basic_file::seekpos): Delete.
	* config/io/basic_file_stdio.h: Same.
	* config/io/c_io_stdio.h: Remove streamoff and wstreamsize typedefs.
	* include/Makefile.am (bits_headers): Add bits/postypes.h.
	* include/bits/char_traits.h: Include bits/postypes.h instead of
	bits/fpos.h.
	* include/bits/fstream.tcc (basic_filebuf::open,
	basic_filebuf::pbackfail): Don't use < or >= to compare pos_type
	values, use == and != instead.
	(basic_filebuf::_M_seek): Use explicit conversion from streamoff
	to pos_type.
	(basic_filebuf::imbue):  Don't use ! on pos_type values, use
	== instead. Don't use __check_facet(_M_codecvt) unless is_open().
	* include/bits/postypes.h: New file.
	Add __streamoff_base_type typedef, streamsize.
	(streamoff, streampos, wstreampos): Define typedefs, with
	streamoff defined as...
	(streamoff): New class. Document implementation defined
	aspects.
	(fpos): New implementation. Document implementation defined
	aspects.
	* include/bits/sstream.tcc (basic_stringbuf::seekpos): Use
	explicit conversion from pos_type to off_type.
	* include/std/std_iosfwd.h: Include bits/postypes.h instead
	of bits/fpos.h.
	* testsuite/27_io/basic_filebuf/seekoff/char/11543.cc: New test.
	* testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: New test.
	* testsuite/27_io/fpos/11450.cc: New test.
	* testsuite/27_io/fpos/mbstate_t/12065.cc: New test.
	* testsuite/27_io/fpos/mbstate_t/4_neg.cc: New test.
	* testsuite/27_io/types/3.cc: New test.
	
	2003-10-16  Benjamin Kosnik  <bkoz@redhat.com>
	
	* configure.host: Remove fpos_include_dir.
	* configure.ac: Remove FPOS_INC_SRCDIR.
	* configure: Regenerate.
	* acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Remove FPOS_H.
	* aclocal.m4: Regenerate.
	* include/Makefile.am (host_headers): Remove fpos.h.
	(bits_headers): Add postypes.h.
	* include/Makefile.in: Regenerate.
	* config/os/gnu-linux/fposh: Remove.
	* config/os/generic/fpos.h: Remove.
	
	* testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc: Fixup.
	* testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Same.
	* testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc: Same.
	* testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc: Same.
	* testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Same.
	* testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc: Same.
	* testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc: Same.
	* testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Same.
	* testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc: Same.
	* testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc: Same.
	* testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Same.
	* testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc: Same.
	* testsuite/27_io/basic_istream/seekg/char/2.cc: Same.
	* testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Same.
	* testsuite/27_io/basic_stringbuf/seekpos/char/1.cc: Same.
	* testsuite/27_io/fpos/mbstate_t/3.cc: Same.
	* testsuite/27_io/objects/char/10.cc: Same.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&r1=1.2021&r2=1.2022
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/acinclude.m4.diff?cvsroot=gcc&r1=1.272&r2=1.273
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/aclocal.m4.diff?cvsroot=gcc&r1=1.286&r2=1.287
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.diff?cvsroot=gcc&r1=1.360&r2=1.361
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.ac.diff?cvsroot=gcc&r1=1.8&r2=1.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.host.diff?cvsroot=gcc&r1=1.17&r2=1.18
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config/io/basic_file_stdio.cc.diff?cvsroot=gcc&r1=1.21&r2=1.22
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config/io/basic_file_stdio.h.diff?cvsroot=gcc&r1=1.14&r2=1.15
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config/io/c_io_stdio.h.diff?cvsroot=gcc&r1=1.6&r2=1.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config/os/generic/fpos.h.diff?cvsroot=gcc&r1=1.2&r2=NONE
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config/os/gnu-linux/fpos.h.diff?cvsroot=gcc&r1=1.2&r2=NONE
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/Makefile.am.diff?cvsroot=gcc&r1=1.70&r2=1.71
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/Makefile.in.diff?cvsroot=gcc&r1=1.88&r2=1.89
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/postypes.h.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/char_traits.h.diff?cvsroot=gcc&r1=1.22&r2=1.23
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/fstream.tcc.diff?cvsroot=gcc&r1=1.102&r2=1.103
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/sstream.tcc.diff?cvsroot=gcc&r1=1.35&r2=1.36
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/std/std_iosfwd.h.diff?cvsroot=gcc&r1=1.10&r2=1.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/11543.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc.diff?cvsroot=gcc&r1=1.3&r2=1.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_istream/seekg/char/2.cc.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_stringbuf/seekoff/char/1.cc.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/basic_stringbuf/seekpos/char/1.cc.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/fpos/11450.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/12065.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/4_neg.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/fpos/mbstate_t/3.cc.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/objects/char/10.cc.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/27_io/types/3.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1

Comment 14 Andrew Pinski 2003-10-16 22:41:36 UTC
Fixed for 3.4.
Comment 15 Paolo Carlini 2003-10-16 22:49:42 UTC
Not fixed, actually: the ChangeLog entry of the commit below should not read
PR 8610, will fix.
Comment 16 CVS Commits 2003-10-16 22:53:41 UTC
Subject: Bug 8610

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	paolo@gcc.gnu.org	2003-10-16 22:53:34

Modified files:
	libstdc++-v3   : ChangeLog 

Log message:
	Remove PR 8610 heading mistakenly added to last ChangeLog entry.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&r1=1.2022&r2=1.2023

Comment 17 CVS Commits 2003-10-22 15:52:03 UTC
Subject: Bug 8610

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	paolo@gcc.gnu.org	2003-10-22 15:51:56

Modified files:
	libstdc++-v3   : ChangeLog acinclude.m4 configure.ac acconfig.h 
	                 aclocal.m4 config.h.in configure 
	libstdc++-v3/config/io: basic_file_stdio.cc 
	libstdc++-v3/include/bits: postypes.h 

Log message:
	2003-10-22  Paolo Carlini  <pcarlini@suse.de>
	
	PR libstdc++/8610
	* acinclude.m4 (GLIBCXX_CHECK_INT64_T): New macro,
	checking for the availability of int64_t.
	(GLIBCXX_CHECK_LFS): New macro, checking for LFS support.
	* configure.ac: Call here.
	* acconfig.h: Add undef for the corresponding symbols.
	* config/io/basic_file_stdio.cc	(__basic_file<char>::open):
	Depending on _GLIBCXX_USE_LFS, call fopen64 or fopen.
	(__basic_file<char>::seekoff): Likewise, call lseek64 when
	available, otherwise lseek, checking the __off parameter.
	* include/bits/postypes.h: Typedef __streamoff_base_type
	to int64_t if available, otherwise long long.
	* aclocal.m4: Regenerate.
	* config.h.in: Likewise.
	* configure: Likewise.
	
	* acinclude.m4 (GLIBCXX_CHECK_POLL, GLIBCXX_CHECK_WRITEV):
	Use AC_TRY_LINK instead of AC_TRY_COMPILE.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&r1=1.2033&r2=1.2034
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/acinclude.m4.diff?cvsroot=gcc&r1=1.273&r2=1.274
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.ac.diff?cvsroot=gcc&r1=1.10&r2=1.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/acconfig.h.diff?cvsroot=gcc&r1=1.35&r2=1.36
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/aclocal.m4.diff?cvsroot=gcc&r1=1.287&r2=1.288
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config.h.in.diff?cvsroot=gcc&r1=1.75&r2=1.76
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.diff?cvsroot=gcc&r1=1.362&r2=1.363
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/config/io/basic_file_stdio.cc.diff?cvsroot=gcc&r1=1.22&r2=1.23
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/bits/postypes.h.diff?cvsroot=gcc&r1=1.1&r2=1.2

Comment 18 Paolo Carlini 2003-10-22 15:56:51 UTC
Fixed for 3.4.