This is a libg++ addon for current egcs releases (e.g. egcs-1.1)
and libstdc++ 2.8.1.1.  It is needed only if your applications depend on
libg++ and you cannot easily remove the dependency on libg++.
The standalone libg++ is no longer needed.  Note that this package
is no longer being maintained.

To install, move all the files in this directory into the directory
where you unpacked libstdc++ version 2.8.1.1 (or unpacked version
2.8.0 and applied the diff to convert it to version 2.8.1.1) or egcs-1.x.
Then you can configure/build/check/install libstdc++ or egcs normally.
Now it will include libg++.

libg++-2.8.x is collaborative work of various people, most notably
H.J. Lu and Manfred Hollstein; because libg++ is no longer being actively
maintained you should not start new C++ projects using libg++.

This is the last release before a probably major rewrite.

Changes from libg++-2.8.1.2a-19981218:

 - Fix from Cuong Nguyen <cnguyen@bbg.adc.com> to avoid a
   potential memory leak in rx.

Changes from libg++-2.8.1.2a-19981209:

 - Fix for a shared libg++ on Dec OSF.
 - Various fixes due to recent egcs snapshots' ISO/C++ compliance checking.
 - Another fix for the screen test on Linux.
 - Removal of some GNU gcc/g++ extensions used.
 - Fix for particular (non optimizing) build configurations.
 - Warnings: fix several locations.

Changes from libg++-2.8.1.2a-19981114:

 - Fix for generating g++FAQ.
 - New config go32.
 - Fix for handling --with-gxx-include-dir ourselves.
 - Fix various ISO-C++ related bugs/problems.
 - Add a missing prototype when not optimizing.
 - Fix various sign extension problems in String.
 - Fix a compatibility problem with old libc vs. current glibc.

Changes from libg++-2.8.1.2a:

 - Run DejaGnu based testsuite as early as possible to avoid "silent death"
   due to earlier "make check" errors; add support for people that don't
   have DejaGnu installed.
 - Fix a compatibility problem with some common shells.
 - Fix a problem on SCO systems.
 - Add support for egcs' new ``--enable-languages="..."'' option
   to avoid building this library if no particular cc1plus compiler
   is around.

Changes from libg++-2.8.1.1a:

 - Updated g++ FAQ.
 - Merge with current Cygnus development version.
 - DejaGNU based testsuite added (thanks to Bob Manson).
 - Fix relative path for multilib
 - Fix relative path for cross-compile.
 - Use relative path for symbolic links.
 - Include <termcap.h> in etc/lf/screen.cc for Linux.
 - Add the interface support for the library names.
 - Handle --enable-version-specific-runtime-libs.
 - Fix some parallel build bugs.
 - A librx bug fix.
 - gperf is removed from libg++. The stand-alone gperf is available at

   <ftp://ftp.gnu.org/pub/gnu>

   The current version, as of May 5, 1998, is gperf 2.7.

The libg++ and librx have been tested with

 - egcs 1.0.3 and 1.1 on linux/x86/libc 5, linux/x86/glibc 2.1 and
   linux/alpha/glibc 2.0.7, hppa1.1-hp-hpux10.20, m68k-motorola-sysv,
   m88k-motorola-sysv3, sparc-sun-solaris2.5.1, sparc-sun-solaris2.6
   and sparc-sun-sunos4.1.4.
 - gcc 2.8.1 and libstdc++ 2.8.1.1 on linux/x86/libc 5 and
   linux/x86/glibc 2.0.7, hppa1.1-hp-hpux10.20, m68k-motorola-sysv,
   m88k-motorola-sysv3, sparc-sun-solaris2.5.1, sparc-sun-solaris2.6
   and sparc-sun-sunos4.1.4.

It is available at

ftp://egcs.cygnus.com/pub/egcs/infrastructure/libg++-2.8.1.3.tar.gz

Patches for libg++ 2.8.1.2* are also available at

ftp://egcs.cygnus.com/pub/egcs/infrastructure/libg++-2.8.1.2-2.8.1.3.diff.gz
ftp://egcs.cygnus.com/pub/egcs/infrastructure/libg++-2.8.1.2a-19981114-2.8.1.3.diff.gz
ftp://egcs.cygnus.com/pub/egcs/infrastructure/libg++-2.8.1.2a-19981209-2.8.1.3.diff.gz
ftp://egcs.cygnus.com/pub/egcs/infrastructure/libg++-2.8.1.2a-19981218-2.8.1.3.diff.gz

Potential problems with libstdc++ 2.8.1.1:

1. Since gcc 2.8.1 is installed under /usr on Linux/GNU by default,
   you need to explicitly pass `--prefix=/usr' to the configure
   command for libstdc++; change "/usr" to what's appropriate on
   your system.  Otherwise incorrect header files and libraries
   may be used.

You also need to check the toplevel configure.in and configure to see
if the complete patch enclosed here is already applied (only egcs-1.0.x
releases do not include it already). If not, please do

$ patch -p0 < README.libg++

Then you can configure/build/check/install egcs normally. Now it
will include libg++.


Manfred Hollstein
manfred@s-direktnet.de
1999/02/23
--- 
Sun Sep  7 14:27:56 1997  H.J. Lu  (hjl@gnu.org)

	* configure.in (alpha*-*-linux*): Treat alpha*-*-linux* as
	alpha*-*-linux* and alpha*-*-*.

Mon Aug 25 17:31:49 1997  H.J. Lu  (hjl@gnu.org)

	* configure: When making link, also check the current
	directory. The configure scripts may create one.

Index: configure.in
===================================================================
RCS file: /home/work/cvs/gnu/egcs/configure.in,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 configure.in
--- configure.in	1997/09/17 20:09:19	1.1.1.4
+++ configure.in	1997/10/23 00:01:53
@@ -416,6 +507,12 @@
   alpha*-*-*vms*)
     noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss"
     ;;
+  alpha*-*-linux*)
+    # newlib is not 64 bit ready
+    noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+    # linux has rx in libc
+    skipdirs="$skipdirs target-librx"
+    ;;
   alpha*-*-*)
     # newlib is not 64 bit ready
     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
Index: configure
===================================================================
RCS file: /home/work/cvs/gnu/egcs/configure,v
retrieving revision 1.1.1.2
diff -u -r1.1.1.2 configure
--- configure	1997/09/17 20:09:18	1.1.1.2
+++ configure	1997/09/17 20:22:21
@@ -992,27 +1006,34 @@
                 set ${links}; link=$1; shift; links=$*
 
                 if [ ! -r ${srcdir}/${file} ] ; then
+                  if [ ! -r ${file} ] ; then
+		    
                         echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
                         echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2
                         exit 1
+		  else
+			srcfile=${file}
+		  fi
+		else
+			srcfile=${srcdir}/${file}
                 fi
 
                 ${remove} -f ${link}
 		# Make a symlink if possible, otherwise try a hard link
-		if ${symbolic_link} ${srcdir}/${file} ${link} >/dev/null 2>&1 ; then
+		if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then
 			true
 		else
 			# We need to re-remove the file because Lynx leaves a 
 			# very strange directory there when it fails an NFS symlink.
 			${remove} -r -f ${link}
-			${hard_link} ${srcdir}/${file} ${link}
+			${hard_link} ${srcfile} ${link}
 		fi
                 if [ ! -r ${link} ] ; then
-                        echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2
+                        echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2
                         exit 1
                 fi
 
-                echo "Linked \"${link}\" to \"${srcdir}/${file}\"."
+                echo "Linked \"${link}\" to \"${srcfile}\"."
         done
 
         # Create a .gdbinit file which runs the one in srcdir
