Bug 16210 - [3.4 only] gratuitously omits "long long" I/O
Summary: [3.4 only] gratuitously omits "long long" I/O
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libstdc++ (show other bugs)
Version: 3.4.0
: P2 minor
Target Milestone: 3.4.2
Assignee: Paolo Carlini
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-06-25 20:50 UTC by Aaron M. Ucko
Modified: 2004-07-06 23:43 UTC (History)
2 users (show)

See Also:
Host: alphaev6-dec-osf5.1
Target: alphaev6-dec-osf5.1
Build: alphaev6-dec-osf5.1
Known to work:
Known to fail:
Last reconfirmed: 2004-06-25 21:34:26


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aaron M. Ucko 2004-06-25 20:50:00 UTC
On systems without strto(u)ll, such as OSF/1 5.1, configure leaves
_GLIBCXX_USE_LONG_LONG undefined, disabling all "long long" I/O.  However,
AFAICT libstdc++-3 has done its own parsing since R1.54 of
bits/locale_facets.tcc, and has always done its own formatting, so it should be
safe to make "long long" I/O available unconditionally these days.

This bug is particularly aggravating given that bits/postypes.h uses "long long"
for streamoff even if "long" is the same size.
Comment 1 Andrew Pinski 2004-06-25 21:04:05 UTC
I think this is only true as of 3.4.0 but I could be wrong.
Comment 2 Aaron M. Ucko 2004-06-25 21:13:35 UTC
(In reply to comment #1)
> I think this is only true as of 3.4.0 but I could be wrong.

Which aspect?  The use of 64-bit friendly stream types is new in 3.4, but
locale_facets.tcc actually seems to have done its own parsing since 3.1.  (The
change occurred in January 2002.)
Comment 3 Paolo Carlini 2004-06-25 21:34:26 UTC
By the way, Andrew is right about stro(u)ll unused only in 3.4, not before.
Comment 4 Aaron M. Ucko 2004-06-25 21:46:17 UTC
(In reply to comment #3)
> By the way, Andrew is right about stro(u)ll unused only in 3.4, not before.

Ah, right, there is actually code outside include ;-).  At any rate, thanks for
taking this on.
Comment 5 CVS Commits 2004-06-26 08:42:59 UTC
Subject: Bug 16210

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	paolo@gcc.gnu.org	2004-06-26 08:42:49

Modified files:
	libstdc++-v3   : ChangeLog acinclude.m4 configure 

Log message:
	2004-06-26  Paolo Carlini  <pcarlini@suse.de>
	
	PR libstdc++/16210
	* acinclude.m4 (GLIBCXX_ENABLE_LONG_LONG): Do not check for the
	availability of strto(u)ll, not used anymore in the iostreams.
	* configure: Regenerate.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&r1=1.2542&r2=1.2543
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/acinclude.m4.diff?cvsroot=gcc&r1=1.290&r2=1.291
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.diff?cvsroot=gcc&r1=1.393&r2=1.394

Comment 6 Benjamin Kosnik 2004-07-06 22:22:21 UTC
Paolo, if you put this in the gcc-3_4-branch now, this bug report can be closed...
Comment 7 Paolo Carlini 2004-07-06 22:31:57 UTC
> Paolo, if you put this in the gcc-3_4-branch now, this bug report can be
> closed...

Are you reading my mind? ;)

I was in the process of doing that, when I noticed that gcc-3_4 still uses
automake 1.7.8... Shall I just regenerate everything, basically bringing over
this commit of yours too?

2004-06-14  Benjamin Kosnik  <bkoz@redhat.com>

	* Makefile.in: Regenerate with automake 1.8.5.
	* aclocal.m4: Same.
	* include/Makefile.in: Same.
	* libmath/Makefile.in: Same.
	* libsupc++/Makefile.in: Same.
	* po/Makefile.in: Same.
	* src/Makefile.in: Same.
	* testsuite/Makefile.in: Same.

???
Comment 8 Benjamin Kosnik 2004-07-06 23:14:08 UTC
actually, you have to use the old versions for the branch.... so keep with 1.7.8.

-benjamin
Comment 9 CVS Commits 2004-07-06 23:41:04 UTC
Subject: Bug 16210

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_4-branch
Changes by:	paolo@gcc.gnu.org	2004-07-06 23:40:59

Modified files:
	libstdc++-v3   : ChangeLog configure aclocal.m4 acinclude.m4 

Log message:
	2004-07-06  Paolo Carlini  <pcarlini@suse.de>
	
	PR libstdc++/16210
	* acinclude.m4 (GLIBCXX_ENABLE_LONG_LONG): Do not check for the
	availability of strto(u)ll, not used anymore in the iostreams.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.2224.2.137&r2=1.2224.2.138
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/configure.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.373.4.13&r2=1.373.4.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/aclocal.m4.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.296.4.4&r2=1.296.4.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/acinclude.m4.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.280.4.4&r2=1.280.4.5

Comment 10 Paolo Carlini 2004-07-06 23:43:01 UTC
Fixed for 3.4.2 too (automake 1.7.8 there)