summaryrefslogtreecommitdiffstats
path: root/libg++/libg++/README
diff options
context:
space:
mode:
Diffstat (limited to 'libg++/libg++/README')
-rw-r--r--libg++/libg++/README247
1 files changed, 247 insertions, 0 deletions
diff --git a/libg++/libg++/README b/libg++/libg++/README
new file mode 100644
index 0000000..e3231ad
--- /dev/null
+++ b/libg++/libg++/README
@@ -0,0 +1,247 @@
+This is version 2.7.2 of libg++, the GNU C++ class library.
+Release date June 1996 by Cygnus Support
+
+* Please skim through this once BEFORE attempting to make and install libg++.
+
+* You probably want to at least skim ./g++FAQ.txt.
+
+* Contents
+
+ * g++ source files (with their include files) are in the ./src directory
+ * Some simple tests and demo programs are in ./tests
+ * documentation is in ./libg++.texi.
+ * A perfect hash function generator is in ./gperf.
+ * Some miscellaneous files of possible interest are in ./etc
+ (These files are not officially a part of the libg++ distribution,
+ and are subject to arbitrary changes, deletions, etc. from release
+ to release.)
+
+* Copyright restrictions
+
+The GNU Library General Public License (which is in the file
+../COPYING.LIB) covers all libraries (specificly libg++.a) and
+include files that get installed (by 'make install').
+
+Other parts of the libg++ *distribution* that are not part the libg++
+*library* per se have the GNU General Public License (which is in the
+file ../COPYING).
+
+Individual files should bear the appropriate Copyright (let us know
+if you think there is a mistake). But specificly, if your application
+only uses files that are installed by the normal build+install
+procedure, then it is bound by the restrictions of the GNU Library
+General Public License, but not those of the GNU General Public License.
+
+* Pre-installation
+
+ * This version of libg++ requires gcc-2.7.2 or newer.
+ It assume that gcc is responsible for fixing standard C include
+ files (such as stdio.h) so that they are suitable for C++
+ (Using the fixproto script that is part of gcc).
+
+ * You can compile libg++ using a gcc that you haven't installed.
+ The most convenient way to do that is to make a symlink named
+ gcc in the top-level directory (i.e. libg++-2.7.2) that points to
+ the directory containing the new gcc. (You should end up with
+ libg++/../gcc/xgcc being a valid filename for the uninstalled gcc.)
+
+ * With only trivial modifications (like changing file extensions,
+ etc.) most things should compile and run with any modern C++ compiler.
+ However, notice that libg++ may depend on recent (ANSI/ISO) changes
+ to C++. If libg++ depends on a g++ feature that is not specified
+ by the C++ draft standard *or* if there is a simple and clean
+ work-around that would make it more portable, please let me know.
+
+* Installation (see libg++.texi for more details)
+
+ * For VMS, cd to ./vms, and read AAAREADME.TXT
+ [NOTE: The VMS support is obsolete. We need a volunteer to fix it.]
+
+ * For Linux, things are complicated because the Linux C library is
+ based on ../libio. Unfortunately, there is no publicly available
+ version of libc that will work quite right with this release of
+ libg++ and libio.
+
+ The latest released version of libg++ for Linux is
+
+ ftp://sunsite.unc.edu/pub/Linux/GCC/libg++-2.7.1.4.bin.tar.gz
+
+ To use it you need to upgrade your C library to 5.2.15 or higher; the
+ latest released version is
+
+ ftp://sunsite.unc.edu/pub/Linux/GCC/libc-5.2.18.bin.tar.gz
+
+ This release of libio will mostly work with libc 5.2.18, but a few
+ things break; getopt, for instance.
+
+ To get beta releases, you may want to join the Linux Gcc developer's
+ mailing list; send mail to majordomo@vger.rutgers.edu with the text
+ "subscribe linux-gcc" in the message body.
+
+ * To build shared libraries, see README.SHLIB.
+
+ * Make sure your sed is *not* GNU sed version 1.12.
+ Most other versions (including GNU sed 1.13) should be OK.
+ (It has been reported at GNU sed 3.0 fails.)
+
+ * Go to the directory *above* libg++ (i.e.. libg++-2.7.2).
+
+ * Run './configure' to configure the tree and create Makefiles.
+
+ Typical example:
+ ./configure [SYSTEM] --prefix=/usr/gnu
+
+ The prefix says that installation should be into
+ /usr/gnu/lib, /usr/gnu/bin, etc as appropriate.
+
+ The SYSTEM indicates what machine configuration you're
+ running on. If you don't specify it, the system can usually
+ guess a default.
+
+ IMPORTANT: The configure options (including SYSTEM and
+ --prefix) must match those used to configure gcc, otherwise
+ g++ may fail to find libg++.
+
+ See etc/cfg-paper.texi for more details. (This paper is
+ in texinfo format; see the section below on Installing
+ the Documentation on how to make it more readable.)
+
+ * Type `make all "CC=gcc -O2"'.
+ (Builds libg++.a and some other things.) (The "CC=gcc -O2"
+ is optional. It forces use of gcc to compile C programs.
+ Set CXX to specify the C++ compiler, though it defaults to gcc.)
+
+ * Optionally, type `make check' to make and run some tests/demos of libg++.
+
+ * Before installing, if you have an old version that was installed
+ into the same directory(s), you should probably remove it.
+ (There is currently no clean mechanism to do that.
+ You should at least remove $(prefix)/lib/g++-include/*.h,
+ where $(prefix) is by default /usr/local.)
+
+ If the previous version was libg++ 2.4 or older, you *must* remove
+ the old includes. Prior to version 2.5, libg++ installed its own
+ versions of certain standard headers for use on systems where the
+ vendor headers don't include prototypes. Versions 2.5 and later of
+ gcc add prototypes to vendor headers that don't have them, so
+ the libg++ versions are no longer useful, and are harmful when
+ they conflict with the vendor version.
+
+ * Type `make install' to install
+
+ libg++.a (from .)
+ include files (from src and ../libio)
+ prototype files (from src/gen)
+ gperf (from gperf)
+ some other stuff
+
+ * Install the documentation
+
+ If you are a systems administrator installing libg++ for others,
+ please make the documentation available to users!
+
+ The libg++.texi file may be formatted as a paper document by
+
+ * Get a copy of texinfo.tex.
+ This file defines various tex macros used in libg++.texi
+ One is in the gcc release.
+ You can temporarily copy it into the current directory.
+ * Run tex on libg++.texi
+ and do whatever you normally do from there to print it.
+
+ It may be made into an emacs info file:
+
+ * use the 'makeinfo' program (from the texinfo distribution).
+
+ * Copy these files into your emacs info directory
+ (normally somewhere like /usr/gnu/emacs/info).
+ * If you have not done so before, edit the emacs/info/dir file
+ to add a libg++ node, by inserting a line like
+
+ * Libg++: (libg++). The GNU C++ Library
+
+ to the bottom of the file.
+
+ * (Optional) Install, from ./utils
+ g++dep (a version of mkdep that understands c++)
+
+* Notes on compiling and running libg++/tests
+
+It is a very good idea to also cd to the test directory and run tests
+manually, to see what they do.
+
+Compiling and running the tests consumes a fair amount of time and
+disk space!
+
+Some reported diffs may be perfectly reasonable, owing to things like
+floating point precision differences: The expected.out file was created
+on a Sun4/110.
+
+ Some tRational and tFix results depend on floating point precision
+ and may generate slightly different output on different machines.
+
+ tRandom seeds some random-numbers in a way that also relies on
+ floating-point representations -- Your output should be numerically
+ similar, but probably not identical.
+
+* Changes since previous versions(s).
+
+ See the file NEWS.
+
+* Known bugs and problems
+
+ * If "make install" fails with the error message:
+
+ Static constructor test failed - see libg++.README
+
+ this indicates an error in installing gcc.
+ C++ needs special linker support beyond that needed for C, to make
+ sure that static objects get initialized and destroyed properly.
+ Some linkers (including the GNU linker as well as linkers for
+ the Elf object file format) already provide the needed support.
+ In other cases, gcc (or g++) uses the "collect2" linker driver.
+ Gcc should by default do the right thing, but if you tell
+ gcc to assum the GNU linker (with the --with-gnu-linker option),
+ and then fail to correctly install GNU ld, you will lose.
+
+* Lots of other information is in the libg++.texi file. It really is
+ very important to actually read the documentation before using
+ library classes. Examination of the demo files in the test directory
+ may also be useful. (Note however, that the demo files are merely
+ designed to test examples of each class capability,
+ and are not especially good examples of client functions that might
+ use these classes.)
+
+* There is now a gnu libg++ mailing list (bug-lib-g++@prep.ai.mit.edu) and
+ associated usenet gnu news group (gnu.g++.lib.bug). (It is preferred
+ that messages be sent to the mailing list, rather than posted to
+ newsgroup.) To subscribe or unsubscribe to the mailing list,
+ send a request to bug-lib-g++-request@prep.ai.mit.edu.
+
+* You will be performing a valuable service if you use libg++
+ classes and report back any comments, and suggestions, or bugs,
+ preferably to the bug-lib-g++ list. Your feedback is extremely
+ helpful in efforts to make libg++ as useful and reliable as possible.
+
+* We continue to solicit
+
+ * bug reports.
+ * suggestions.
+ * comments.
+ * questions about installing and using libg++
+ * other contributions to be incorporated into libg++.
+ * sample programs using libg++.
+
+ Often, the best place to send such things is bug-lib-g++@prep.ai.mit.edu,
+ although direct mail is also welcome.
+
+* Good luck!
+
+Doug Lea <dl@oswego.edu> designed and implemented most of the classes,
+and was the original maintainer and "owner" of libg++.
+He has handed over "ownership" to Cygnus Support.
+
+Per Bothner <bothner@cygnus.com> of Cygnus Support is now
+maintaining libg++, with much help from the rest of the
+Cygnus G++ team (Jason Merrill, Mike Stump, Brendan Kehoe).
+Cygnus Support, 1937 Landings Drive, Mountain View, CA 94043
OpenPOWER on IntegriCloud