This is the binary release of the GNU C++ library 2.5.3l.2 (The GNU libg++ 2.5.3) for Linux. You have to install gcc 2.5.7 or above and libc 4.5.21 or above to use it. Please don't use it with older gcc or libc. It is on tsx-11.mit.edu under pub/linux/packages/GCC and is compressed with gzip 1.2.4. Iostream is now back to libg++.a. But you have to use it with libc 4.5.19 or above. Due to the upcoming merger of ncurses, I didn't include CursesW.o in libg++.a. The only change from 2.5.3l.1 is libio/isgetline.cc, which I am enclosing here. I discourage compiling libg++ 2.5.3 yourself unless you know what you are doing. I have made many modifications. I hope my changes can be merged in the next libg++ 2.5.x. But I don't know what will happen. If you really want to compile libg++ 2.5.3 yourself, please follow my instructions closely. You can get the source code libg++-2.5.3.tar.gz from any gnu ftp sites like prep.ai.mit.edu:pub/gnu or ftp.uu.net:packages/gnu. You should first apply my patch, libg++-2.5.3l.2.diff.gz, which is on tsx-11.mit.edu under pub/linux/packages/GCC after libg++ 2.5.3 is released. After running "configure", you should go to libg++/src and do 1. rm regex.* 2. vi Makefile. You should remove all the references to regex.[o|h|cc|c]. I don't want to patch libg++ such that it won't compile on other platforms. Then you can do a make at the top. The file list: 1. libg++-2.5.3l.2-p1.tar.gz REQUIRED. libg++.a, libiostream.a, libiberty.a and genclass. It is libg++ 2.5.3l.2. To install cd /usr zcat libg++-2.5.3l.2-p1.tar.gz | tar xvvof - 2. libg++-2.5.3l.2-p2.tar.gz REQUIRED. g++-include. It is libg++ 2.5.3l.2 and is the same as 2.5.3l.1. To install cd /usr zcat libg++-2.5.3l.2-p2.tar.gz | tar xvvof - H.J. hjl@nynexst.com 02/26/94 --- From bothner@cygnus.com Mon Feb 14 19:02:24 1994 Return-Path: Received: from nynexst.com (nynex-ms) by titanic.nynexst.com (4.1/SMI-4.1) id AA25307; Mon, 14 Feb 94 19:02:23 EST Received: from relay1.UU.NET by nynexst.com (4.1/SMI-4.1) id AA25859; Mon, 14 Feb 94 19:08:50 EST Received: from cygnus.com by relay1.UU.NET with SMTP (5.61/UUNET-internet-primary) id AAwdgy18143; Mon, 14 Feb 94 19:02:07 -0500 Received: from kalessin.cygnus.com by cygnus.com (4.1/SMI-4.1) id AA29453; Mon, 14 Feb 94 16:02:48 PST From: bothner@cygnus.com (Per Bothner) Received: from localhost (bothner@localhost) by kalessin.cygnus.com (8.6.4/8.6.4) id QAA16463; Mon, 14 Feb 1994 16:01:50 -0800 Message-Id: <199402150001.QAA16463@kalessin.cygnus.com> To: hjl@nynexst.com (H.J. Lu) Subject: Re: libg++ bug? In-Reply-To: (Your message of Sun, 13 Feb 94 00:55:07 EST.) <9402130555.AA20878@titanic.nynexst.com> Date: Mon, 14 Feb 94 16:01:50 -0800 Status: OR I prefer the following patch. But note that this is tentative. I need to clarify the ANSI specification, after I get the next working paper (in a few days). --Per Index: isgetline.cc =================================================================== RCS file: /rel/cvsfiles/devo/libio/isgetline.cc,v retrieving revision 1.3 diff -c -r1.3 isgetline.cc *** isgetline.cc 1994/01/20 22:21:36 1.3 --- libio/isgetline.cc 1994/02/14 23:04:57 *************** *** 38,54 **** { streambuf *sb = rdbuf(); _IO_size_t count = _IO_getline(sb, buf, len - 1, delim, -1); ! if (count == len-1) ! set(ios::failbit); ! else { ! int ch = sb->sbumpc(); ! if (ch == EOF) ! set(ios::failbit|ios::eofbit); ! else if (ch == (unsigned char)delim) ! count++; ! else ! sb->sungetc(); // Leave delimiter unread. } _gcount = count; } --- 38,50 ---- { streambuf *sb = rdbuf(); _IO_size_t count = _IO_getline(sb, buf, len - 1, delim, -1); ! int ch = sb->sbumpc(); ! if (ch == EOF) ! set(ios::failbit|ios::eofbit); ! else if (ch != (unsigned char)delim) { ! set(ios::failbit); ! sb->sungetc(); // Leave delimiter unread. } _gcount = count; }