may copy, distribute, and modify it freely as long as you preserve this
copyright notice and permission notice.
-Note most of this information is out of date and superceded by the EGCS
-install procedures. It is provided for historical reference only.
-
Installing GNU CC
*****************
+ Note most of this information is out of date and superceded by the
+EGCS install procedures. It is provided for historical reference only.
+
Here is the procedure for installing GNU CC on a Unix system. See
*Note VMS Install::, for VMS systems. In this section we assume you
compile in the same directory that contains the source files; see *Note
This option does not cause the GNU linker to be installed; it
just modifies the behavior of GNU CC to work with the GNU
- linker. Specifically, it inhibits the installation of
- `collect2', a program which otherwise serves as a front-end
- for the system's linker on most configurations.
+ linker.
`--with-stabs'
On MIPS based systems and on Alphas, you must specify whether
`--nfp' currently has no effect, though perhaps there are
other systems where it could usefully make a difference.
+ `--enable-haifa'
+
+ `--disable-haifa'
+ Use `--enable-haifa' to enable use of an experimental
+ instruction scheduler (from IBM Haifa). This may or may not
+ produce better code. Some targets on which it is known to be
+ a win enable it by default; use `--disable-haifa' to disable
+ it in these cases. `configure' will print out whether the
+ Haifa scheduler is enabled when it is run.
+
`--enable-threads=TYPE'
Certain systems, notably Linux-based GNU systems, can't be
relied on to supply a threads facility for the Objective C
some other compiler.)
16. If you're going to use C++, it's likely that you need to also
- install the libg++ distribution. It should be available from the
- same place where you got the GNU C distribution. Just as GNU C
- does not distribute a C runtime library, it also does not include
- a C++ run-time library. All I/O functionality, special class
- libraries, etc., are available in the libg++ distribution.
+ install a C++ runtime library. Just as GNU C does not distribute
+ a C runtime library, it also does not include a C++ runtime
+ library. All I/O functionality, special class libraries, etc., are
+ provided by the C++ runtime library.
+
+ Here's one way to build and install a C++ runtime library for GNU
+ CC:
+
+ * Build and install GNU CC, so that invoking `gcc' obtains the
+ GNU CC that was just built.
+
+ * Obtain a copy of a compatible `libstdc++' distribution. For
+ example, the `libstdc++-2.8.0.tar.gz' distribution should be
+ compatible with GCC 2.8.0. GCC distributors normally
+ distribute `libstdc++' as well.
+
+ * Set the `CXX' environment variable to `gcc' while running the
+ `libstdc++' distribution's `configure' command. Use the same
+ `configure' options that you used when you invoked GCC's
+ `configure' command.
+
+ * Invoke `make' to build the C++ runtime.
+
+ * Invoke `make install' to install the C++ runtime.
+
+ To summarize, after building and installing GNU CC, invoke the
+ following shell commands in the topmost directory of the C++
+ library distribution. For CONFIGURE-OPTIONS, use the same options
+ that you used to configure GNU CC.
+
+ $ CXX=gcc ./configure CONFIGURE-OPTIONS
+ $ make
+ $ make install
17. GNU CC includes a runtime library for Objective-C because it is an
integral part of the language. You can find the files associated
`m68000-hp-bsd'
HP 9000 series 200 running BSD. Note that the C compiler that
comes with this system cannot compile GNU CC; contact
- `law@cs.utah.edu' to get binaries of GNU CC for bootstrapping.
+ `law@cygnus.com' to get binaries of GNU CC for bootstrapping.
`m68k-altos'
Altos 3068. You must use the GNU assembler, linker and debugger.
disk:[gcc.gxx_include.] gnu_gxx_include
with the appropriate disk and directory name. If you are going to
- be using libg++, this is where the libg++ install procedure will
- install the libg++ header files.
+ be using a C++ runtime library, this is where its install
+ procedure will install its header files.
2. Obtain the file `gcc-cc1plus.exe', and place this in the same
directory that `gcc-cc1.exe' is kept.
`collect2'
==========
- Many target systems do not have support in the assembler and linker
-for "constructors"--initialization functions to be called before the
-official "start" of `main'. On such systems, GNU CC uses a utility
-called `collect2' to arrange to call these functions at start time.
+ GNU CC uses a utility called `collect2' on nearly all systems to
+arrange to call various initialization functions at start time.
The program `collect2' works by linking the program once and looking
through the linker output file for symbols with particular names
already suitable for ANSI C and GNU CC, nothing special need be done).
`GPLUS_INCLUDE_DIR' means the same thing for native and cross. It
-is where `g++' looks first for header files. `libg++' installs only
-target independent header files in that directory.
+is where `g++' looks first for header files. The C++ library installs
+only target independent header files in that directory.
`LOCAL_INCLUDE_DIR' is used only for a native compiler. It is
normally `/usr/local/include'. GNU CC searches this directory so that