mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-22 15:00:55 +08:00
release branch changes from 11-27 snapshot to egcs-1.0.
From-SVN: r16970
This commit is contained in:
parent
435bba3a39
commit
f2d765451e
@ -1,3 +1,7 @@
|
||||
Wed Dec 3 07:55:59 1997 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* configure (gxx_include_dir): Fix thinko.
|
||||
|
||||
Tue Dec 2 10:55:34 1997 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* Makefile.in (INSTALL_TARGET_CROSS): Define.
|
||||
|
54
INSTALL/BUILD
Normal file
54
INSTALL/BUILD
Normal file
@ -0,0 +1,54 @@
|
||||
Building egcs-1.0
|
||||
|
||||
Now that egcs is configured, you are ready to build the compiler and
|
||||
runtime libraries.
|
||||
|
||||
We highly recommend that egcs be built using gnu-make; other
|
||||
versions make work, then again they might not. To be safe build with gnu-make.
|
||||
|
||||
Building a native compiler
|
||||
For a native build issue the command "make bootstrap". This will build
|
||||
the entire egcs compiler system, which includes the following steps:
|
||||
|
||||
|
||||
Build host tools necessary to build the compiler such as texinfo, bison,
|
||||
gperf.
|
||||
|
||||
Build target tools for use by the compiler such as gas, gld, and binutils.
|
||||
|
||||
Perform a 3-stage bootstrap of the compiler.
|
||||
|
||||
Perform a comparison test of the stage2 and stage3 compilers.
|
||||
|
||||
Build runtime libraries using the stage3 compiler from the previous step.
|
||||
|
||||
|
||||
If you are short on disk space you might consider "make bootstrap-lean"
|
||||
instead. This is identical to "make bootstrap" except that object files
|
||||
from the stage1 and stage2 of the 3-stage bootstrap of the compiler are
|
||||
deleted as soon as they are no longer needed.
|
||||
|
||||
Building a cross compiler
|
||||
|
||||
We recommend reading the crossgcc FAQ for information about building
|
||||
cross compilers.
|
||||
"ftp://ftp.cygnus.com/pub/embedded/crossgcc/FAQ-0.8.1"
|
||||
|
||||
For a cross build, issue the command "make cross", which performs the
|
||||
following steps:
|
||||
|
||||
Build host tools necessary to build the compiler such as texinfo, bison,
|
||||
gperf.
|
||||
|
||||
Build target tools for use by the compiler such as gas, gld, and binutils.
|
||||
|
||||
Build the compiler (single stage only).
|
||||
|
||||
Build runtime libraries using the compiler from the previous step.
|
||||
|
||||
|
||||
Note that if an error occurs in any step the make process will exit.
|
||||
|
||||
|
||||
Last modified on December 2, 1997.
|
||||
|
108
INSTALL/CONFIGURE
Normal file
108
INSTALL/CONFIGURE
Normal file
@ -0,0 +1,108 @@
|
||||
Configuring egcs-1.0
|
||||
|
||||
Like most GNU software, egcs must be configured before it can be built.
|
||||
This document attempts to describe the recommended configuration procedure
|
||||
for both native and cross targets.
|
||||
|
||||
We use srcdir to refer to the toplevel source directory for
|
||||
egcs; we use objdir to refer to the toplevel build/object
|
||||
directory for egcs.
|
||||
|
||||
First, we highly recommend that egcs be built into a separate
|
||||
directory than the sources. This is how we generally build egcs; building
|
||||
where srcdir == objdir should still work, but doesn't get
|
||||
extensive testing.
|
||||
|
||||
Second, when configuring a native system, either "cc" must be in your
|
||||
path or you must set CC in your environment before running configure.
|
||||
Otherwise the configuration scripts may fail.
|
||||
|
||||
To configure egcs:
|
||||
|
||||
% mkdir objdir
|
||||
% cd objdir
|
||||
% srcdir/configure [target] [options]
|
||||
|
||||
|
||||
target specification
|
||||
|
||||
egcs has code to correctly determine the correct value for
|
||||
target for nearly all native systems. Therefore, we highly
|
||||
recommend you not provide a configure target when configuring a
|
||||
native compiler.
|
||||
|
||||
target must be specified when configuring a cross compiler;
|
||||
examples of valid targets would be i960-rtems, m68k-coff, sh-elf, etc.
|
||||
|
||||
|
||||
options specification
|
||||
|
||||
Use options to override several configure time options for
|
||||
egcs. A partial list of supported options:
|
||||
|
||||
|
||||
--prefix=dirname -- Specify the toplevel installation
|
||||
directory. This is the recommended way to install the tools into a directory
|
||||
other than the default. The toplevel installation directory defaults to
|
||||
/usr/local.
|
||||
|
||||
These additional options control where certain parts of the distribution
|
||||
are installed. Normally you should not need to use these options.
|
||||
|
||||
--with-local-prefix=dirname -- Specify the installation
|
||||
directory for local include files. The default is /usr/local.
|
||||
|
||||
--with-gxx-include-dir=dirname -- Specify the installation
|
||||
directory for g++ header files. The default is /usr/local/include/g++.
|
||||
|
||||
|
||||
--enable-shared -- Build shared versions of the C++ runtime
|
||||
libraries if supported --disable-shared is the default.
|
||||
|
||||
--enable-haifa -- Enable the new Haifa instruction scheduler in the
|
||||
compiler; the new scheduler can significantly improve code on some targets.
|
||||
--disable-haifa is currently the default on all platforms except the HPPA.
|
||||
|
||||
--with-gnu-as -- Specify that the compiler should assume the GNU
|
||||
assembler (aka gas) is available.
|
||||
|
||||
--with-gnu-ld -- Specify that the compiler should assume the GNU
|
||||
linker (aka gld) is available.
|
||||
|
||||
--with-stabs -- Specify that stabs debugging information should be used
|
||||
instead of whatever format the host normally uses. Normally GCC uses the
|
||||
same debug format as the host system.
|
||||
|
||||
--enable-multilib -- Specify that multiple target libraries
|
||||
should be built to support different target variants, calling conventions,
|
||||
etc. This is the default.
|
||||
|
||||
--enable-threads -- Specify that the target supports threads.
|
||||
This only effects the Objective-C compiler and runtime library.
|
||||
|
||||
--enable-threads=lib -- Specify that lib is the
|
||||
thread support library. This only effects the Objective-C compiler and
|
||||
runtime library.
|
||||
|
||||
--with-cpu=cpu -- Specify which cpu variant the compiler should
|
||||
generate code for by default. This is currently only supported on the
|
||||
RS6000/PowerPC ports.
|
||||
|
||||
|
||||
Some options which only apply to building cross compilers:
|
||||
|
||||
--with-headers=dir -- Specifies a directory which has target
|
||||
include files.
|
||||
--with-libs=dirs -- Specifies a list of directories which contain
|
||||
the target runtime libraries.
|
||||
--with-newlib -- Specifies that "newlib" is being used as the target
|
||||
C library. This causes __eprintf to be omitted from libgcc.a on the
|
||||
assumption that it will be provided by newlib.
|
||||
|
||||
|
||||
Note that each --enable option has a corresponding --disable option and
|
||||
that each --with option has a corresponding --without option.
|
||||
|
||||
|
||||
|
||||
Last modified on December 2, 1997.
|
322
INSTALL/FAQ
Normal file
322
INSTALL/FAQ
Normal file
@ -0,0 +1,322 @@
|
||||
egcs Frequently Asked Questions
|
||||
|
||||
|
||||
How is egcs be different from gcc2?
|
||||
|
||||
Six years ago, gcc version 1 had reached a point of stability. For the
|
||||
targets it could support, it worked well. It had limitations inherent in
|
||||
its design that would be difficult to resolve, so a major effort was made
|
||||
and gcc version 2 was the result. When we had gcc2 in a useful state,
|
||||
development efforts on gcc1 stopped and we all concentrated on making
|
||||
gcc2 better than gcc1 could ever be. This is the kind of step forward
|
||||
we want to make with egcs.
|
||||
|
||||
In brief, the three biggest differences between egcs and gcc2 are
|
||||
these:
|
||||
|
||||
|
||||
More rexamination of basic architectual decisions of
|
||||
gcc and an interest in adding new optimizations;
|
||||
|
||||
working with the groups who have fractured out from gcc2 (like
|
||||
the Linux folks, the Intel optimizations folks, Fortran folks)
|
||||
including more front-ends; and finally
|
||||
|
||||
An open development model (see below) for the development process.
|
||||
|
||||
|
||||
These three differences will work together to result in a more
|
||||
useful compiler, a more stable compiler, a central compiler that works
|
||||
for more people, a compiler that generates better code.
|
||||
|
||||
|
||||
There are a lot of exciting compiler optimizations that have come
|
||||
out. We want them in gcc. There are a lot of front ends out there for
|
||||
gcc for languages like Fortran or Pascal. We want them easily
|
||||
installable by users. After six years of working on gcc2, we've come
|
||||
to see problems and limitations in the way gcc is architected; it is
|
||||
time to address these again.
|
||||
|
||||
|
||||
What is an open development model?
|
||||
|
||||
With egcs, we are going to try a bazaar style[1] approach to its
|
||||
development: We're going to be making snapshots publically available
|
||||
to anyone who wants to try them; we're going to welcome anyone to join
|
||||
the development mailing list. All of the discussions on the
|
||||
development mailing list are available via the web. We're going to be
|
||||
making releases with a much higher frequency than they have been made
|
||||
in the past: We're shooting for three by the end of 1997.
|
||||
|
||||
In addition to weekly snapshots of the egcs development sources, we
|
||||
are going to look at making the sources readable from a CVS server by
|
||||
anyone. We want to make it so external maintainers of parts of egcs
|
||||
are able to commit changes to their part of egcs directly into the
|
||||
sources without going through an intermediary.
|
||||
|
||||
There have been many potential gcc developers who were not able to
|
||||
participate in gcc development in the past. We these people to help in
|
||||
any way they can; we ultimately want gcc to be the best compiler in the
|
||||
world.
|
||||
|
||||
A compiler is a complicated piece of software, there will still be
|
||||
strong central maintainers who will reject patches, who will demand
|
||||
documentation of implementations, and who will keep the level of
|
||||
quality as high as it is today. Code that could use wider testing may
|
||||
be intergrated--code that is simply ill-conceived won't be.
|
||||
|
||||
egcs is not the first piece of software to use this open development
|
||||
process; FreeBSD, the Emacs lisp repository, and Linux are a few
|
||||
examples of the bazaar style of development.
|
||||
|
||||
With egcs, we will be adding new features and optimizations at a
|
||||
rate that has not been done since the creation of gcc2; these additions
|
||||
will inevitably have a temporarily destabilizing effect. With the help
|
||||
of developers working together with this bazaar style development, the
|
||||
resulting stability and quality levels will be better than we've had
|
||||
before.
|
||||
|
||||
cathedral-vs-bazaar[1]
|
||||
We've been discussing different development models a lot over the
|
||||
past few months. The paper which started all of this introduced two
|
||||
terms: A cathedral development model versus a bazaar
|
||||
development model. The paper is written by Eric S. Raymond, it is
|
||||
called `` http://locke.ccil.org/~esr/writings/cathedral.html" The
|
||||
Cathedral and the Bazaar''. The paper is a useful starting point
|
||||
for discussions.
|
||||
|
||||
|
||||
|
||||
bits/libc-lock.h: No such file or directory
|
||||
egcs includes a tightly integrated libio and libstdc++ implementation which
|
||||
can cause problems on hosts which have libio integrated into their C library
|
||||
(most notably Linux).
|
||||
|
||||
We believe that we've solved the major technical problems for the most
|
||||
common versions of libc found on Linux systems. However, some versions
|
||||
of Linux use pre-release versions of glibc2, which egcs has trouble detecting
|
||||
and correctly handling.
|
||||
|
||||
If you're using one of these pre-release versions of glibc2, you may get
|
||||
a message "bits/libc-lock.h: No such file or directory" when building egcs.
|
||||
Unfortunately, to fix this problem you will need to update your C library to
|
||||
glibc2.0.5c.
|
||||
|
||||
Late breaking news: we may have at least a partial solution for these
|
||||
problems. So this FAQ entry may no longer be needed.
|
||||
|
||||
|
||||
`_IO_stdfile_0_lock' was not declared in this scope
|
||||
If you get this error, it means either egcs incorrectly guessed what version
|
||||
of libc is installed on your linux system, or you incorrectly specified a
|
||||
version of glibc when configuring egcs.
|
||||
|
||||
If you did not provide a target name when configuring egcs, then you've
|
||||
found a bug which needs to be reported. If you did provide a target name at
|
||||
configure time, then you should reconfigure without specifying a target name.
|
||||
|
||||
|
||||
Problems building the Fortran compiler
|
||||
The Fortran front end can not be built with most vendor compilers; it must
|
||||
be built with gcc. As a result, you may get an error if you do not follow
|
||||
the install instructions carefully.
|
||||
|
||||
In particular, instead of using "make" to build egcs, you should use
|
||||
"make bootstrap" if you are building a native compiler or "make cross"
|
||||
if you are building a cross compiler.
|
||||
|
||||
It has also been reported that the Fortran compiler can not be built
|
||||
on Red Hat 4.X linux for the Alpha. Fixing this may require upgrading
|
||||
binutils or to Red Hat 5.0; we'll provide more information as it becomes
|
||||
available.
|
||||
|
||||
|
||||
Problems building on MIPS platforms
|
||||
egcs requires the use of GAS on all versions of Irix, except Irix 6 due
|
||||
to limitations in older Irix assemblers.
|
||||
|
||||
Either of these messages indicates that you are using the MIPS assembler
|
||||
when instead you should be using GAS.
|
||||
|
||||
as0: Error: ./libgcc2.c, line 1:Badly delimited numeric literal
|
||||
.4byte $LECIE1-$LSCIE1
|
||||
as0: Error: ./libgcc2.c, line 1:malformed statement
|
||||
|
||||
|
||||
|
||||
as0: Error: /home/law/egcs_release/gcc/libgcc2.c, line 1:undefined symbol in expression
|
||||
.word $LECIE1-$LSCIE1
|
||||
|
||||
|
||||
For Irix 6, you should use the native assembler as GAS is not supported
|
||||
on Irix 6.
|
||||
|
||||
|
||||
Problems with exception handling on x86 platforms
|
||||
If you are using the GNU assembler (aka gas) on an x86 platform and
|
||||
exception handling is not working correctly, then odds are you're using a
|
||||
buggy assembler.
|
||||
|
||||
We recommend binutils-2.8.0.1.15 or newer.
|
||||
"ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.15.tar.gz binutils-2.8.0.1.15 source
|
||||
ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.15.bin.tar.gz binutils-2.8.0.1.15 x86 binary for libc5
|
||||
ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.15.glibc.bin.tar.gz binutils-2.8.0.1.15 x86 binary for glibc2
|
||||
Or, you can try a
|
||||
ftp://ftp.cygnus.com/pub/egcs/infrastructure/gas-970915.tar.gz binutils snapshot; however, be aware that the binutils snapshot is untested
|
||||
and may not work (or even build). Use it at your own risk.
|
||||
|
||||
|
||||
Bootstrap comparison failures on HPs
|
||||
If you bootstrap the compiler on hpux10 using the HP assembler instead of
|
||||
gas, every file will fail the comparison test.
|
||||
|
||||
The HP asembler inserts timestamps into object files it creates, causing
|
||||
every file to be different. The location of the timestamp varies for each
|
||||
object file, so there's no real way to work around this mis-feature.
|
||||
|
||||
Odds are your compiler is fine, but there's no way to be certain.
|
||||
|
||||
If you use GAS on HPs, then you will not run into this problem because
|
||||
GAS never inserts timestamps into object files. For this and various other
|
||||
reasons we highly recommend using GAS on HPs.
|
||||
|
||||
|
||||
Bootstrap loops rebuilding cc1 over and over
|
||||
When building egcs, the build process loops rebuilding cc1 over and
|
||||
over again. This happens on mips-sgi-irix5.2, and possibly other platforms.
|
||||
|
||||
This is probably a bug somewhere in the egcs Makefile. Until we find and
|
||||
fix this bug we recommend you use GNU make instead of vendor supplied make
|
||||
programs.
|
||||
|
||||
|
||||
Dynamic linker is unable to find GCC libraries
|
||||
This problem manifests itself by programs not finding shared libraries
|
||||
they depend on when the programs are started. Note this problem often manifests
|
||||
itself with failures in the libio/libstdc++ tests after configuring with
|
||||
--enable-shared and building egcs.
|
||||
|
||||
GCC does not specify a runpath so that the dynamic linker can find dynamic
|
||||
libraries at runtime.
|
||||
|
||||
The short explaination is that if you always pass a -R option to the
|
||||
linker, then your programs become dependent on directories which
|
||||
may be NFS mounted, and programs may hang unnecessarily when an
|
||||
NFS server goes down.
|
||||
|
||||
The problem is not programs that do require the directories; those
|
||||
programs are going to hang no matter what you do. The problem is
|
||||
programs that do not require the directories.
|
||||
|
||||
SunOS effectively always passed a -R option for every -L option;
|
||||
this was a bad idea, and so it was removed for Solaris. We should
|
||||
not recreate it.
|
||||
|
||||
|
||||
Unable to run the testsuite
|
||||
If you get a message about unable to find "standard.exp" when trying to
|
||||
run the egcs testsuites, then your dejagnu is too old to run the egcs tests.
|
||||
You will need to get a newer version of dejagnu; we've made a
|
||||
<a href="ftp://ftp.cygnus.com/pub/egcs/infrastructure/dejagnu-971028.tar.gz">
|
||||
dejagnu snapshot available until a new version of dejagnu can be released.
|
||||
|
||||
|
||||
How to build a cross compiler
|
||||
Building cross compilers is a rather complex undertaking because they
|
||||
usually need additional software (cross assembler, cross linker, target
|
||||
libraries, target include files, etc).
|
||||
|
||||
We recommend reading the <a href="ftp://ftp.cygnus.com/pub/embedded/crossgcc/FAQ-0.8.1">
|
||||
crossgcc FAQ for information about building cross compilers.
|
||||
|
||||
If you have all the pieces available, then `make cross' should build a
|
||||
cross compiler. `make LANGUAGES="c c++" install'will install the cross
|
||||
compiler.
|
||||
|
||||
Note that if you're trying to build a cross compiler in a tree which
|
||||
includes binutils-2.8 in addition to egcs, then you're going to need to
|
||||
make a couple minor tweaks so that the cross assembler, linker and
|
||||
nm utilities will be found.
|
||||
|
||||
binutils-2.8 builds those files as gas.new, ld.new and nm.new; egcs gcc
|
||||
looks for them using gas-new, ld-new and nm-new, so you may have to arrange
|
||||
for any symlinks which point to <file>.new to be changed to <file>-new.
|
||||
|
||||
|
||||
Snapshots, how, when, why
|
||||
We make snapshots of the egcs sources about once a week; there is no
|
||||
predetermined schedule. These snapshots are intended to give everyone
|
||||
access to work in progress. Any given snapshot may generate incorrect code
|
||||
or even fail to build.
|
||||
|
||||
If you plan on downloading and using snapshots, we highly recommend you
|
||||
subscribe to the egcs mailing lists. See <a href="index.html#mailinglists">
|
||||
mailing lists on the main egcs page for instructions on how to subscribe.
|
||||
|
||||
When using the diff files to update from older snapshots to newer snapshots,
|
||||
make sure to use "-E" and "-p" arguments to patch so that empty files are
|
||||
deleted and full pathnames are provided to patch. If your version of
|
||||
patch does not support "-E", you'll need to get a newer version. Also note
|
||||
that you may need autoconf, autoheader and various other programs if you use
|
||||
diff files to update from one snapshot to the next.
|
||||
|
||||
|
||||
How to install both egcs and gcc2
|
||||
It may be desirable to install both egcs and gcc2 on the same system. This
|
||||
can be done by using different prefix paths at configure time and a few
|
||||
symlinks.
|
||||
|
||||
Basically, configure the two compilers with different --prefix options,
|
||||
then build and install each compiler. Assume you want "gcc" to be the egcs
|
||||
compiler and available in /usr/local/bin; also assume that you want "gcc2"
|
||||
to be the gcc2 compiler and also available in /usr/local/bin.
|
||||
|
||||
The easiest way to do this is to configure egcs with --prefix=/usr/local/egcs
|
||||
and gcc2 with --prefix=/usr/local/gcc2. Build and install both compilers.
|
||||
Then make a symlink from /usr/local/bin/gcc to /usr/local/egcs/bin/gcc and
|
||||
from /usr/local/bin/gcc2 to /usr/local/gcc2/bin/gcc. Create similar links
|
||||
for the "g++", "c++" and "g77" compiler drivers.
|
||||
|
||||
|
||||
Problems building Linux kernels
|
||||
If you installed a recent binutils/gas snapshot on your Linux system,
|
||||
you may not be able to build the kernel because objdump does not understand
|
||||
the "-k" switch. The solution for this problem is to remove /usr/bin/encaps.
|
||||
|
||||
You may get an internal compiler error compiling process.c in newer
|
||||
versions of the Linux kernel on x86 machines. This is a bug in an asm
|
||||
statement in process.c, not a bug in egcs. XXX How to fix?!?
|
||||
|
||||
You may get errors with the X driver of the form
|
||||
_X11TransSocketUNIXConnect: Can't connect: errno = 111
|
||||
|
||||
It's a kernel bug. The function sys_iopl in arch/i386/kernel/process.c
|
||||
does an illegal hack which used to work but is now broken since GCC optimizes
|
||||
more aggressively . The newer 2.1.x kernels already have a fix which should
|
||||
also work in 2.0.32.
|
||||
|
||||
|
||||
Virtual memory exhausted error
|
||||
This error means your system ran out of memory; this can happen for large
|
||||
files, particularly when optimizing. If you're getting this error you should
|
||||
consider trying to simplify your files or reducing the optimization level.
|
||||
|
||||
Note that using -pedantic or -Wreturn-type can cause an explosion in the
|
||||
amount of memory needed for template-heavy C++ code, such as code that uses
|
||||
STL. Also note that -Wall includes -Wreturn-type, so if you use -Wall you
|
||||
will need to specify -Wno-return-type to turn it off.
|
||||
|
||||
|
||||
GCC can not find GAS
|
||||
Some configurations like irix4, irix5, hpux* require the use of the GNU
|
||||
assembler intead of the system assembler. To ensure that egcs finds the GNU
|
||||
assembler, you should configure the GNU assembler with the same --prefix
|
||||
option as you used for egcs. Then build & install the GNU assembler.
|
||||
|
||||
|
||||
egcs does not work on Red Hat 5.0
|
||||
egcs does not currently work with Red Hat 5.0; we'll update this
|
||||
entry with more information as it becomes available.
|
||||
|
||||
|
||||
Last modified: December 2, 1997
|
19
INSTALL/FINALINSTALL
Normal file
19
INSTALL/FINALINSTALL
Normal file
@ -0,0 +1,19 @@
|
||||
Final install egcs-1.0
|
||||
|
||||
Now that egcs has been built and tested, you can install it with
|
||||
`cd objdir; make install' for a native compiler or
|
||||
`cd objdir; make install LANGUAGES="c c++"' for a cross compiler
|
||||
(note installing cross compilers will be easier in the next release!).
|
||||
|
||||
|
||||
That step completes the installation of egcs; user level binaries can
|
||||
be found in prefix/bin where prefix is the value you specified
|
||||
with the --prefix to configure (or /usr/local by default).
|
||||
|
||||
If you don't mind, please send egcs@cygnus.com a short mail message
|
||||
indicating that you successfully built and installed egcs. Include
|
||||
the output from running srcdir/config.guess.
|
||||
|
||||
If you find a bug in egcs, please report it to egcs-bugs@cygnus.com
|
||||
|
||||
Last modified on December 2, 1997.
|
34
INSTALL/INDEX
Normal file
34
INSTALL/INDEX
Normal file
@ -0,0 +1,34 @@
|
||||
Installing egcs-1.0
|
||||
|
||||
This document describes the generic installation procedure for egcs as
|
||||
well as detailing some target specific installation instructions for egcs.
|
||||
|
||||
egcs includes several components that previously were separate distributions
|
||||
with their own installation instructions. This document supercedes all
|
||||
package specific installation instructions. We provide the component specific
|
||||
installation information in the source distribution for historical reference
|
||||
purposes only.
|
||||
|
||||
We recommend you read the entire generic installation instructions as
|
||||
well as any target specific installation instructions before you proceed
|
||||
to configure, build, test and install egcs.
|
||||
|
||||
If something goes wrong in the configure, build, test or install
|
||||
procedures, first double check that you followed the generic and target
|
||||
specific installation instructions carefully. Then check the EGCS FAQ
|
||||
(FAQ) to see if your problem is covered before you file a bug report.
|
||||
|
||||
The installation procedure is broken into four steps.
|
||||
|
||||
|
||||
Configure see CONFIGURE
|
||||
Build see BUILD
|
||||
Test see TEST
|
||||
Final Install see FINALINSTALL
|
||||
|
||||
|
||||
Before starting the build/install procedure please browse the
|
||||
host/target specific installation notes (SPECIFIC).
|
||||
|
||||
Last modified on December 2, 1997.
|
||||
|
14
INSTALL/README
Normal file
14
INSTALL/README
Normal file
@ -0,0 +1,14 @@
|
||||
This directory contains installation instrutions for egcs-1.00.
|
||||
|
||||
We're providing installation instructions in two forms, html and
|
||||
plaintext.
|
||||
|
||||
index.html is the toplevel install file for html browsers.
|
||||
|
||||
INDEX is the toplevel install file in plaintext form.
|
||||
|
||||
The most recent HTML installation instructions for egcs can be obtained from
|
||||
the egcs web site:
|
||||
|
||||
http://www.cygnus.com/egcs/install
|
||||
|
106
INSTALL/SPECIFIC
Normal file
106
INSTALL/SPECIFIC
Normal file
@ -0,0 +1,106 @@
|
||||
Host/Target specific installation notes for egcs-1.0
|
||||
|
||||
alpha*-*-*
|
||||
No specific installation needs/instructions.
|
||||
|
||||
|
||||
i?86-*-linux*
|
||||
You will need binutils-2.8.1.0.15 or newer for exception handling to work.
|
||||
|
||||
i?86-*-sco3.2v5*
|
||||
The SCO assembler is currently required. The GNU assembler is not up
|
||||
to the task of switching between ELF and COFF at runtime.
|
||||
|
||||
Unlike various prereleases of GCC, that used '-belf' and defaulted to
|
||||
COFF, you must now use the '-melf' and '-mcoff' flags to toggle between
|
||||
the two object file formats. ELF is now the default.
|
||||
|
||||
Look in gcc/config/i386/sco5.h (search for "messy") for additional
|
||||
OpenServer-specific flags.
|
||||
|
||||
|
||||
|
||||
hppa*-hp-hpux*
|
||||
We highly recommend using gas/binutils-2.8 on all hppa platforms; you
|
||||
may encounter a variety of problems when using the HP assembler.
|
||||
|
||||
hppa*-hp-hpux9
|
||||
The HP assembler has major problems on this platform. We've tried to work
|
||||
around the worst of the problems. However, those workarounds may be causing
|
||||
linker crashes in some circumstances; the workarounds also probably prevent
|
||||
shared libraries from working. Use the GNU assembler to avoid these problems.
|
||||
|
||||
The configuration scripts for egcs will also trigger a bug in the hpux9
|
||||
shell. To avoid this problem set CONFIG_SHELL to /bin/ksh and SHELL to
|
||||
/bin/ksh in your environment.
|
||||
|
||||
hppa*-hp-hpux10
|
||||
For hpux10.20, we highly recommend you pick up the latest sed
|
||||
patch from HP. HP has two sites which provide patches free of charge.
|
||||
|
||||
http://us-support.external.hp.com for US, Canada, Asia-Pacific, and
|
||||
Latin-America
|
||||
http://europe-support.external.hp.com for Europe
|
||||
|
||||
Retrieve patch PHCO_12862.
|
||||
|
||||
The HP assembler on these systems is much better than the hpux9 assembler,
|
||||
but still has some problems. Most notably the assembler inserts timestamps
|
||||
into each object file it creates, causing the 3-stage comparison test to fail
|
||||
during a "make bootstrap". You should be able to continue by saying "make all"
|
||||
after getting the failure from "make bootstrap".
|
||||
|
||||
m68k-*-nextstep*
|
||||
You absolutely must use GNU sed and GNU make on this platform.
|
||||
|
||||
If you try to build the integrated C++ & C++ runtime libraries on this system
|
||||
you will run into trouble with include files. The way to get around this is
|
||||
to use the following sequence. Note you must have write permission to
|
||||
prefix for this sequence to work.
|
||||
|
||||
cd objdir
|
||||
make all-texinfo all-bison all-byacc all-binutils all-gas all-ld
|
||||
cd gcc
|
||||
make bootstrap
|
||||
make install-headers-tar
|
||||
cd ..
|
||||
make bootstrap3
|
||||
|
||||
m68k-sun-sunos4.1.1
|
||||
It is reported that you may need the GNU assembler on this platform.
|
||||
|
||||
mips*-sgi-irix4
|
||||
mips*-sgi-irix5
|
||||
You must use GAS on these platforms, the native assembler can not handle the
|
||||
code for exception handling support on this platform.
|
||||
|
||||
These systems don't have ranlib, which various components in egcs need; you
|
||||
should be able to avoid this problem by installing GNU binutils, which includes
|
||||
a functional ranlib for this system.
|
||||
|
||||
You may get the following warning on irix4 platforms, it can be safely
|
||||
ignored.
|
||||
|
||||
warning: foo.o does not have gp tables for all its sections.
|
||||
|
||||
mips*-sgi-irix6
|
||||
You must not use GAS on irix6 platforms; doing so will only cause problems.
|
||||
|
||||
These systems don't have ranlib, which various components in egcs need; you
|
||||
should be able to avoid this problem by making a dummy script called ranlib
|
||||
which just exits with zero status and placing it in your path.
|
||||
|
||||
rs6000-ibm-aix*
|
||||
powerpc-ibm-aix*
|
||||
At least one person as reported problems with older versions of gnu-make on
|
||||
this platform. make-3.76 is reported to work correctly.
|
||||
|
||||
powerpc-*-linux-gnu*
|
||||
You will need binutils-2.8.1.0.17 from ftp://ftp.yggdrasil.com/private/hjl for
|
||||
a working egcs. It is strongly recommended to recompile binutils with egcs
|
||||
if you initially built it with gcc-2.7.2.*.
|
||||
|
||||
|
||||
exception handling
|
||||
XXX Linux stuff
|
||||
Last modified on December 2, 1997.
|
28
INSTALL/TEST
Normal file
28
INSTALL/TEST
Normal file
@ -0,0 +1,28 @@
|
||||
Testing egcs-1.0
|
||||
|
||||
Before you install egcs, you might wish to run the egcs testsuite; this
|
||||
step is optional and may require you to download additional software.
|
||||
|
||||
First, you must have downloaded the egcs testsuites; the full distribution
|
||||
contains testsuites. If you downloaded the "core" compiler plus any front
|
||||
ends, then you do not have the testsuites. You can download the testsuites
|
||||
from the same site where you downloaded the core distribution and language
|
||||
front ends.
|
||||
|
||||
Second, you must have a new version of dejagnu on your system; dejagnu-1.3
|
||||
will not work. We have made a dejagnu snapshot
|
||||
ftp://ftp.cygnus.com/pub/egcs/infrastructure/dejagnu-971028.tar.gz
|
||||
dejagnu snapshot available in ftp.cygnus.com:/pub/egcs/infrastructure until
|
||||
a new version of dejagnu can be released.
|
||||
|
||||
Assuming you've got the testsuites unpacked and have installed an appropriate
|
||||
dejagnu, you can run the testsuite with "cd objdir; make -k check".
|
||||
This may take a long time. Go get some lunch.
|
||||
|
||||
The testing process will try to test as many components in the egcs
|
||||
distrubution as possible, including the C, C++ and Fortran compiler as
|
||||
well as the C++ runtime libraries.
|
||||
|
||||
How to interpret test results XXX.
|
||||
|
||||
Last modified on December 2, 1997.
|
66
INSTALL/build.html
Normal file
66
INSTALL/build.html
Normal file
@ -0,0 +1,66 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Building egcs-1.0 </title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
<h1 align="center">Building egcs-1.0</h1>
|
||||
|
||||
<p>Now that egcs is configured, you are ready to build the compiler and
|
||||
runtime libraries.
|
||||
|
||||
<p>We <b>highly</b> recommend that egcs be built using gnu-make; other
|
||||
versions make work, then again they might not. To be safe build with gnu-make.
|
||||
|
||||
<p><b>Building a native compiler</b>
|
||||
<p>For a native build issue the command "make bootstrap". This will build
|
||||
the entire egcs compiler system, which includes the following steps:
|
||||
|
||||
<ul>
|
||||
<li> Build host tools necessary to build the compiler such as texinfo, bison,
|
||||
gperf.<p>
|
||||
|
||||
<li> Build target tools for use by the compiler such as gas, gld, and
|
||||
binutils.<p>
|
||||
|
||||
<li> Perform a 3-stage bootstrap of the compiler.<p>
|
||||
|
||||
<li> Perform a comparison test of the stage2 and stage3 compilers.<p>
|
||||
|
||||
<li> Build runtime libraries using the stage3 compiler from the previous
|
||||
step.<p>
|
||||
</ul>
|
||||
|
||||
<p>If you are short on disk space you might consider "make bootstrap-lean"
|
||||
instead. This is identical to "make bootstrap" except that object files
|
||||
from the stage1 and stage2 of the 3-stage bootstrap of the compiler are
|
||||
deleted as soon as they are no longer needed.
|
||||
|
||||
<p><b>Building a cross compiler</b>
|
||||
|
||||
<p> We recommend reading the
|
||||
<a href="ftp://ftp.cygnus.com/pub/embedded/crossgcc/FAQ-0.8.1">
|
||||
crossgcc FAQ</a> for information about building cross compilers.
|
||||
|
||||
<p>For a cross build, issue the command "make cross", which performs the
|
||||
following steps:
|
||||
<ul>
|
||||
<li> Build host tools necessary to build the compiler such as texinfo, bison,
|
||||
gperf.<p>
|
||||
|
||||
<li> Build target tools for use by the compiler such as gas, gld, and
|
||||
binutils.<p>
|
||||
|
||||
<li> Build the compiler (single stage only).<p>
|
||||
|
||||
<li> Build runtime libraries using the compiler from the previous
|
||||
step.<p>
|
||||
</ul>
|
||||
|
||||
<p>Note that if an error occurs in any step the make process will exit.
|
||||
|
||||
<p>
|
||||
<hr>
|
||||
<i>Last modified on December 2, 1997.</i>
|
||||
|
||||
</body>
|
||||
</html>
|
122
INSTALL/configure.html
Normal file
122
INSTALL/configure.html
Normal file
@ -0,0 +1,122 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Configuring egcs-1.0 </title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
<h1 align="center">Configuring egcs-1.0</h1>
|
||||
|
||||
<p>Like most GNU software, egcs must be configured before it can be built.
|
||||
This document attempts to describe the recommended configuration procedure
|
||||
for both native and cross targets.
|
||||
|
||||
<p>We use <i>srcdir</i> to refer to the toplevel source directory for
|
||||
egcs; we use <i>objdir</i> to refer to the toplevel build/object
|
||||
directory for egcs.
|
||||
|
||||
<p>First, we <b>highly</b> recommend that egcs be built into a separate
|
||||
directory than the sources. This is how we generally build egcs; building
|
||||
where <i>srcdir</i> == <i>objdir</i> should still work, but doesn't get
|
||||
extensive testing.
|
||||
|
||||
<p>Second, when configuring a native system, either "cc" must be in your
|
||||
path or you must set CC in your environment before running configure.
|
||||
Otherwise the configuration scripts may fail.
|
||||
|
||||
<p>To configure egcs:
|
||||
|
||||
<blockquote>
|
||||
<tt>
|
||||
<br>% mkdir <i>objdir</i>
|
||||
<br>% cd <i>objdir</i>
|
||||
<br>% <i>srcdir</i>/configure <b>[target]</b> <b>[options]</b>
|
||||
</tt>
|
||||
</blockquote>
|
||||
|
||||
|
||||
<p><b>target specification</b>
|
||||
<ul>
|
||||
<li> egcs has code to correctly determine the correct value for
|
||||
<b>target</b> for nearly all native systems. Therefore, we highly
|
||||
recommend you not provide a configure target when configuring a
|
||||
native compiler.
|
||||
|
||||
<li> <b>target</b> must be specified when configuring a cross compiler;
|
||||
examples of valid targets would be i960-rtems, m68k-coff, sh-elf, etc.
|
||||
</ul>
|
||||
|
||||
|
||||
<p><b> options specification</b>
|
||||
|
||||
<p>Use <b>options</b> to override several configure time options for
|
||||
egcs. A partial list of supported <tt>options</tt>:
|
||||
|
||||
<ul>
|
||||
<li> <tt>--prefix=</tt><i>dirname</i> -- Specify the toplevel installation
|
||||
directory. This is the recommended way to install the tools into a directory
|
||||
other than the default. The toplevel installation directory defaults to
|
||||
/usr/local.
|
||||
|
||||
<br>These additional options control where certain parts of the distribution
|
||||
are installed. Normally you should not need to use these options.
|
||||
<ul>
|
||||
<li> <tt>--with-local-prefix=</tt><i>dirname</i> -- Specify the installation
|
||||
directory for local include files. The default is /usr/local.
|
||||
|
||||
<li> <tt>--with-gxx-include-dir=</tt><i>dirname</i> -- Specify the installation
|
||||
directory for g++ header files. The default is /usr/local/include/g++.
|
||||
</ul>
|
||||
|
||||
<li> <tt>--enable-shared</tt> -- Build shared versions of the C++ runtime
|
||||
libraries if supported <tt>--disable-shared</tt> is the default.
|
||||
|
||||
<li> <tt>--enable-haifa</tt> -- Enable the new Haifa instruction scheduler in the
|
||||
compiler; the new scheduler can significantly improve code on some targets.
|
||||
<tt>--disable-haifa</tt> is currently the default on all platforms except the HPPA.
|
||||
|
||||
<li> <tt>--with-gnu-as</tt> -- Specify that the compiler should assume the GNU
|
||||
assembler (aka gas) is available.
|
||||
|
||||
<li> <tt>--with-gnu-ld</tt> -- Specify that the compiler should assume the GNU
|
||||
linker (aka gld) is available.
|
||||
|
||||
<li> <tt>--with-stabs</tt> -- Specify that stabs debugging information should be used
|
||||
instead of whatever format the host normally uses. Normally GCC uses the
|
||||
same debug format as the host system.
|
||||
|
||||
<li> <tt>--enable-multilib</tt> -- Specify that multiple target libraries
|
||||
should be built to support different target variants, calling conventions,
|
||||
etc. This is the default.
|
||||
|
||||
<li> <tt>--enable-threads</tt> -- Specify that the target supports threads.
|
||||
This only effects the Objective-C compiler and runtime library.
|
||||
|
||||
<li> <tt>--enable-threads=</tt><i>lib</i> -- Specify that <i>lib</i> is the
|
||||
thread support library. This only effects the Objective-C compiler and
|
||||
runtime library.
|
||||
|
||||
<li> <tt>--with-cpu=</tt><i>cpu</i> -- Specify which cpu variant the compiler should
|
||||
generate code for by default. This is currently only supported on the
|
||||
RS6000/PowerPC ports.
|
||||
</ul>
|
||||
|
||||
<p>Some options which only apply to building cross compilers:
|
||||
<ul>
|
||||
<li> <tt>--with-headers=</tt><i>dir</i> -- Specifies a directory which has target
|
||||
include files.
|
||||
<li> <tt>--with-libs=</tt><i>dirs</i> -- Specifies a list of directories which contain
|
||||
the target runtime libraries.
|
||||
<li> <tt>--with-newlib</tt> -- Specifies that "newlib" is being used as the target
|
||||
C library. This causes __eprintf to be omitted from libgcc.a on the
|
||||
assumption that it will be provided by newlib.
|
||||
</ul>
|
||||
|
||||
<p>Note that each <tt>--enable</tt> option has a corresponding <tt>--disable</tt> option and
|
||||
that each <tt>--with</tt> option has a corresponding <tt>--without</tt> option.
|
||||
|
||||
|
||||
<p>
|
||||
<hr>
|
||||
<i>Last modified on December 2, 1997.</i>
|
||||
|
||||
</body>
|
||||
</html>
|
365
INSTALL/faq.html
Normal file
365
INSTALL/faq.html
Normal file
@ -0,0 +1,365 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>egcs Frequently Asked Questions</title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
<h1 align="center">egcs Frequently Asked Questions</h1>
|
||||
|
||||
<ol>
|
||||
<li><a href="#gcc-2-diff">How is egcs be different from gcc2?</a>
|
||||
<li><a href="#open-development">What is an open development model?</a>
|
||||
<li><a href="#libc-lock">bits/libc-lock.h: No such file or directory</a>
|
||||
<li><a href="#morelibc">`_IO_stdfile_0_lock' was not declared in this scope</a>
|
||||
<li><a href="#fortran">Problems building the Fortran compiler</a>
|
||||
<li><a href="#mips">Problems building on MIPS platforms</a>
|
||||
<li><a href="#x86eh">Problems with exception handling on x86 platforms</a>
|
||||
<li><a href="#hpcompare">Bootstrap comparison failures on HPs</a>
|
||||
<li><a href="#makebugs">Bootstrap loops rebuilding cc1 over and over</a>
|
||||
<li><a href="#rpath">Dynamic linker is unable to find GCC libraries</a>
|
||||
<li><a href="#rpath">libstdc++/libio tests fail badly with --enable-shared</a>
|
||||
<li><a href="#dejagnu">Unable to run the testsuite</a>
|
||||
<li><a href="#cross">How to build a cross compiler</a>
|
||||
<li><a href="#multiple">How to install both gcc2 and egcs</a>
|
||||
<li><a href="#snapshot">Snapshots, how, when, why</a>
|
||||
<li><a href="#linuxkernel">Problems building Linux kernels</a>
|
||||
<li><a href="#memexhausted">Virtual memory exhausted</a>
|
||||
<li><a href="#gas">GCC can not find GAS</a>
|
||||
<li><a href="#rh5.0">egcs does not work on Red Hat 5.0</a>
|
||||
|
||||
</ol>
|
||||
|
||||
<hr>
|
||||
<h2><a name="gcc-2-diff">How is egcs be different from gcc2?</a></h2>
|
||||
|
||||
<p>Six years ago, gcc version 1 had reached a point of stability. For the
|
||||
targets it could support, it worked well. It had limitations inherent in
|
||||
its design that would be difficult to resolve, so a major effort was made
|
||||
and gcc version 2 was the result. When we had gcc2 in a useful state,
|
||||
development efforts on gcc1 stopped and we all concentrated on making
|
||||
gcc2 better than gcc1 could ever be. This is the kind of step forward
|
||||
we want to make with egcs.
|
||||
|
||||
<p>In brief, the three biggest differences between egcs and gcc2 are
|
||||
these:
|
||||
|
||||
<ul>
|
||||
<li>More rexamination of basic architectual decisions of
|
||||
gcc and an interest in adding new optimizations;
|
||||
|
||||
<li>working with the groups who have fractured out from gcc2 (like
|
||||
the Linux folks, the Intel optimizations folks, Fortran folks)
|
||||
including more front-ends; and finally
|
||||
|
||||
<li>An open development model (<a
|
||||
href="#open-development">see below</a>) for the development process.
|
||||
</ul>
|
||||
|
||||
<p>These three differences will work together to result in a more
|
||||
useful compiler, a more stable compiler, a central compiler that works
|
||||
for more people, a compiler that generates better code.
|
||||
|
||||
|
||||
<p>There are a lot of exciting compiler optimizations that have come
|
||||
out. We want them in gcc. There are a lot of front ends out there for
|
||||
gcc for languages like Fortran or Pascal. We want them easily
|
||||
installable by users. After six years of working on gcc2, we've come
|
||||
to see problems and limitations in the way gcc is architected; it is
|
||||
time to address these again.
|
||||
|
||||
<hr>
|
||||
<h2><a name="open-development">What is an open development model?</a></h2>
|
||||
|
||||
<p>With egcs, we are going to try a bazaar style<a
|
||||
href="#cathedral-vs-bazaar"><b>[1]</b></a> approach to its
|
||||
development: We're going to be making snapshots publically available
|
||||
to anyone who wants to try them; we're going to welcome anyone to join
|
||||
the development mailing list. All of the discussions on the
|
||||
development mailing list are available via the web. We're going to be
|
||||
making releases with a much higher frequency than they have been made
|
||||
in the past: We're shooting for three by the end of 1997.
|
||||
|
||||
<p>In addition to weekly snapshots of the egcs development sources, we
|
||||
are going to look at making the sources readable from a CVS server by
|
||||
anyone. We want to make it so external maintainers of parts of egcs
|
||||
are able to commit changes to their part of egcs directly into the
|
||||
sources without going through an intermediary.
|
||||
|
||||
<p>There have been many potential gcc developers who were not able to
|
||||
participate in gcc development in the past. We these people to help in
|
||||
any way they can; we ultimately want gcc to be the best compiler in the
|
||||
world.
|
||||
|
||||
<p>A compiler is a complicated piece of software, there will still be
|
||||
strong central maintainers who will reject patches, who will demand
|
||||
documentation of implementations, and who will keep the level of
|
||||
quality as high as it is today. Code that could use wider testing may
|
||||
be intergrated--code that is simply ill-conceived won't be.
|
||||
|
||||
<p>egcs is not the first piece of software to use this open development
|
||||
process; FreeBSD, the Emacs lisp repository, and Linux are a few
|
||||
examples of the bazaar style of development.
|
||||
|
||||
<p>With egcs, we will be adding new features and optimizations at a
|
||||
rate that has not been done since the creation of gcc2; these additions
|
||||
will inevitably have a temporarily destabilizing effect. With the help
|
||||
of developers working together with this bazaar style development, the
|
||||
resulting stability and quality levels will be better than we've had
|
||||
before.
|
||||
|
||||
<blockquote>
|
||||
<a name="cathedral-vs-bazaar"><b>[1]</b></a>
|
||||
We've been discussing different development models a lot over the
|
||||
past few months. The paper which started all of this introduced two
|
||||
terms: A <b>cathedral</b> development model versus a <b>bazaar</b>
|
||||
development model. The paper is written by Eric S. Raymond, it is
|
||||
called ``<a
|
||||
href="http://locke.ccil.org/~esr/writings/cathedral.html">The
|
||||
Cathedral and the Bazaar</a>''. The paper is a useful starting point
|
||||
for discussions.
|
||||
</blockquote>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="libc-lock">bits/libc-lock.h: No such file or directory</a></h2>
|
||||
<p>egcs includes a tightly integrated libio and libstdc++ implementation which
|
||||
can cause problems on hosts which have libio integrated into their C library
|
||||
(most notably Linux).
|
||||
|
||||
<p>We believe that we've solved the major technical problems for the most
|
||||
common versions of libc found on Linux systems. However, some versions
|
||||
of Linux use pre-release versions of glibc2, which egcs has trouble detecting
|
||||
and correctly handling.
|
||||
|
||||
<p>If you're using one of these pre-release versions of glibc2, you may get
|
||||
a message "bits/libc-lock.h: No such file or directory" when building egcs.
|
||||
Unfortunately, to fix this problem you will need to update your C library to
|
||||
glibc2.0.5c.
|
||||
|
||||
<p>Late breaking news: we may have at least a partial solution for these
|
||||
problems. So this FAQ entry may no longer be needed.
|
||||
|
||||
<hr>
|
||||
<h2><a name="morelibc">`_IO_stdfile_0_lock' was not declared in this scope</a></h2>
|
||||
<p>If you get this error, it means either egcs incorrectly guessed what version
|
||||
of libc is installed on your linux system, or you incorrectly specified a
|
||||
version of glibc when configuring egcs.
|
||||
|
||||
<p>If you did not provide a target name when configuring egcs, then you've
|
||||
found a bug which needs to be reported. If you did provide a target name at
|
||||
configure time, then you should reconfigure without specifying a target name.
|
||||
|
||||
<hr>
|
||||
<h2><a name="fortran">Problems building the Fortran compiler</a></h2>
|
||||
<p>The Fortran front end can not be built with most vendor compilers; it must
|
||||
be built with gcc. As a result, you may get an error if you do not follow
|
||||
the install instructions carefully.
|
||||
|
||||
<p>In particular, instead of using "make" to build egcs, you should use
|
||||
"make bootstrap" if you are building a native compiler or "make cross"
|
||||
if you are building a cross compiler.
|
||||
|
||||
<p>It has also been reported that the Fortran compiler can not be built
|
||||
on Red Hat 4.X linux for the Alpha. Fixing this may require upgrading
|
||||
binutils or to Red Hat 5.0; we'll provide more information as it becomes
|
||||
available.
|
||||
|
||||
<hr>
|
||||
<h2><a name="mips">Problems building on MIPS platforms</a></h2>
|
||||
<p>egcs requires the use of GAS on all versions of Irix, except Irix 6 due
|
||||
to limitations in older Irix assemblers.
|
||||
|
||||
<p> Either of these messages indicates that you are using the MIPS assembler
|
||||
when instead you should be using GAS.
|
||||
|
||||
<pre>
|
||||
as0: Error: ./libgcc2.c, line 1:Badly delimited numeric literal
|
||||
.4byte $LECIE1-$LSCIE1
|
||||
as0: Error: ./libgcc2.c, line 1:malformed statement
|
||||
</pre>
|
||||
|
||||
<hr>
|
||||
<pre>
|
||||
as0: Error: /home/law/egcs_release/gcc/libgcc2.c, line 1:undefined symbol in expression
|
||||
.word $LECIE1-$LSCIE1
|
||||
|
||||
</pre>
|
||||
|
||||
|
||||
<p> For Irix 6, you should use the native assembler as GAS is not supported
|
||||
on Irix 6.
|
||||
|
||||
<hr>
|
||||
<h2> <a name="x86eh">Problems with exception handling on x86 platforms</a></h2>
|
||||
<p>If you are using the GNU assembler (aka gas) on an x86 platform and
|
||||
exception handling is not working correctly, then odds are you're using a
|
||||
buggy assembler.
|
||||
|
||||
<p>We recommend binutils-2.8.0.1.15 or newer.
|
||||
<br><a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.15.tar.gz"> binutils-2.8.0.1.15 source</a>
|
||||
<br><a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.15.bin.tar.gz"> binutils-2.8.0.1.15 x86 binary for libc5</a>
|
||||
<br><a href="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/binutils-2.8.1.0.15.glibc.bin.tar.gz"> binutils-2.8.0.1.15 x86 binary for glibc2</a>
|
||||
Or, you can try a
|
||||
<a href="ftp://ftp.cygnus.com/pub/egcs/infrastructure/gas-970915.tar.gz"> binutils snapshot</a>; however, be aware that the binutils snapshot is untested
|
||||
and may not work (or even build). Use it at your own risk.
|
||||
|
||||
<hr>
|
||||
<h2> <a name="hpcompare">Bootstrap comparison failures on HPs</a></h2>
|
||||
<p>If you bootstrap the compiler on hpux10 using the HP assembler instead of
|
||||
gas, every file will fail the comparison test.
|
||||
|
||||
<p>The HP asembler inserts timestamps into object files it creates, causing
|
||||
every file to be different. The location of the timestamp varies for each
|
||||
object file, so there's no real way to work around this mis-feature.
|
||||
|
||||
<p>Odds are your compiler is fine, but there's no way to be certain.
|
||||
|
||||
<p>If you use GAS on HPs, then you will not run into this problem because
|
||||
GAS never inserts timestamps into object files. For this and various other
|
||||
reasons we highly recommend using GAS on HPs.
|
||||
|
||||
<hr>
|
||||
<h2> <a name="makebugs">Bootstrap loops rebuilding cc1 over and over</a></h2>
|
||||
<p>When building egcs, the build process loops rebuilding cc1 over and
|
||||
over again. This happens on mips-sgi-irix5.2, and possibly other platforms.
|
||||
|
||||
<p>This is probably a bug somewhere in the egcs Makefile. Until we find and
|
||||
fix this bug we recommend you use GNU make instead of vendor supplied make
|
||||
programs.
|
||||
|
||||
<hr>
|
||||
<h2> <a name="rpath">Dynamic linker is unable to find GCC libraries</a></h2>
|
||||
<p>This problem manifests itself by programs not finding shared libraries
|
||||
they depend on when the programs are started. Note this problem often manifests
|
||||
itself with failures in the libio/libstdc++ tests after configuring with
|
||||
--enable-shared and building egcs.
|
||||
|
||||
<p>GCC does not specify a runpath so that the dynamic linker can find dynamic
|
||||
libraries at runtime.
|
||||
|
||||
<p>The short explaination is that if you always pass a -R option to the
|
||||
linker, then your programs become dependent on directories which
|
||||
may be NFS mounted, and programs may hang unnecessarily when an
|
||||
NFS server goes down.
|
||||
|
||||
<p>The problem is not programs that do require the directories; those
|
||||
programs are going to hang no matter what you do. The problem is
|
||||
programs that do not require the directories.
|
||||
|
||||
<p>SunOS effectively always passed a -R option for every -L option;
|
||||
this was a bad idea, and so it was removed for Solaris. We should
|
||||
not recreate it.
|
||||
|
||||
<hr>
|
||||
<h2> <a name="dejagnu">Unable to run the testsuite</a></h2>
|
||||
<p>If you get a message about unable to find "standard.exp" when trying to
|
||||
run the egcs testsuites, then your dejagnu is too old to run the egcs tests.
|
||||
You will need to get a newer version of dejagnu; we've made a
|
||||
<a href="ftp://ftp.cygnus.com/pub/egcs/infrastructure/dejagnu-971028.tar.gz">
|
||||
dejagnu snapshot</a> available until a new version of dejagnu can be released.
|
||||
|
||||
<hr>
|
||||
<h2> <a name="cross">How to build a cross compiler</a></h2>
|
||||
<p> Building cross compilers is a rather complex undertaking because they
|
||||
usually need additional software (cross assembler, cross linker, target
|
||||
libraries, target include files, etc).
|
||||
|
||||
<p> We recommend reading the <a href="ftp://ftp.cygnus.com/pub/embedded/crossgcc/FAQ-0.8.1">
|
||||
crossgcc FAQ</a> for information about building cross compilers.
|
||||
|
||||
<p> If you have all the pieces available, then `make cross' should build a
|
||||
cross compiler. `make LANGUAGES="c c++" install'will install the cross
|
||||
compiler.
|
||||
|
||||
<p> Note that if you're trying to build a cross compiler in a tree which
|
||||
includes binutils-2.8 in addition to egcs, then you're going to need to
|
||||
make a couple minor tweaks so that the cross assembler, linker and
|
||||
nm utilities will be found.
|
||||
|
||||
<p>binutils-2.8 builds those files as gas.new, ld.new and nm.new; egcs gcc
|
||||
looks for them using gas-new, ld-new and nm-new, so you may have to arrange
|
||||
for any symlinks which point to <file>.new to be changed to <file>-new.
|
||||
|
||||
<hr>
|
||||
<h2> <a name="snapshot">Snapshots, how, when, why</a></h2>
|
||||
<p> We make snapshots of the egcs sources about once a week; there is no
|
||||
predetermined schedule. These snapshots are intended to give everyone
|
||||
access to work in progress. Any given snapshot may generate incorrect code
|
||||
or even fail to build.
|
||||
|
||||
<p>If you plan on downloading and using snapshots, we highly recommend you
|
||||
subscribe to the egcs mailing lists. See <a href="index.html#mailinglists">
|
||||
mailing lists</a> on the main egcs page for instructions on how to subscribe.
|
||||
|
||||
<p>When using the diff files to update from older snapshots to newer snapshots,
|
||||
make sure to use "-E" and "-p" arguments to patch so that empty files are
|
||||
deleted and full pathnames are provided to patch. If your version of
|
||||
patch does not support "-E", you'll need to get a newer version. Also note
|
||||
that you may need autoconf, autoheader and various other programs if you use
|
||||
diff files to update from one snapshot to the next.
|
||||
|
||||
<hr>
|
||||
<h2> <a name="multiple">How to install both egcs and gcc2</a></h2>
|
||||
<p>It may be desirable to install both egcs and gcc2 on the same system. This
|
||||
can be done by using different prefix paths at configure time and a few
|
||||
symlinks.
|
||||
|
||||
<p>Basically, configure the two compilers with different --prefix options,
|
||||
then build and install each compiler. Assume you want "gcc" to be the egcs
|
||||
compiler and available in /usr/local/bin; also assume that you want "gcc2"
|
||||
to be the gcc2 compiler and also available in /usr/local/bin.
|
||||
|
||||
<p>The easiest way to do this is to configure egcs with --prefix=/usr/local/egcs
|
||||
and gcc2 with --prefix=/usr/local/gcc2. Build and install both compilers.
|
||||
Then make a symlink from /usr/local/bin/gcc to /usr/local/egcs/bin/gcc and
|
||||
from /usr/local/bin/gcc2 to /usr/local/gcc2/bin/gcc. Create similar links
|
||||
for the "g++", "c++" and "g77" compiler drivers.
|
||||
|
||||
<hr>
|
||||
<h2> <a name="linuxkernel">Problems building Linux kernels</a></h2>
|
||||
<p>If you installed a recent binutils/gas snapshot on your Linux system,
|
||||
you may not be able to build the kernel because objdump does not understand
|
||||
the "-k" switch. The solution for this problem is to remove /usr/bin/encaps.
|
||||
|
||||
<p>You may get an internal compiler error compiling process.c in newer
|
||||
versions of the Linux kernel on x86 machines. This is a bug in an asm
|
||||
statement in process.c, not a bug in egcs. XXX How to fix?!?
|
||||
|
||||
<p>You may get errors with the X driver of the form
|
||||
<pre>
|
||||
_X11TransSocketUNIXConnect: Can't connect: errno = 111
|
||||
</pre>
|
||||
|
||||
<p>It's a kernel bug. The function sys_iopl in arch/i386/kernel/process.c
|
||||
does an illegal hack which used to work but is now broken since GCC optimizes
|
||||
more aggressively . The newer 2.1.x kernels already have a fix which should
|
||||
also work in 2.0.32.
|
||||
|
||||
<hr>
|
||||
<h2> <a name="memexhausted">Virtual memory exhausted error</a></h2>
|
||||
<p> This error means your system ran out of memory; this can happen for large
|
||||
files, particularly when optimizing. If you're getting this error you should
|
||||
consider trying to simplify your files or reducing the optimization level.
|
||||
|
||||
<p>Note that using -pedantic or -Wreturn-type can cause an explosion in the
|
||||
amount of memory needed for template-heavy C++ code, such as code that uses
|
||||
STL. Also note that -Wall includes -Wreturn-type, so if you use -Wall you
|
||||
will need to specify -Wno-return-type to turn it off.
|
||||
|
||||
<hr>
|
||||
<h2> <a name="gas">GCC can not find GAS</a></h2>
|
||||
<p>Some configurations like irix4, irix5, hpux* require the use of the GNU
|
||||
assembler intead of the system assembler. To ensure that egcs finds the GNU
|
||||
assembler, you should configure the GNU assembler with the same --prefix
|
||||
option as you used for egcs. Then build & install the GNU assembler.
|
||||
|
||||
<hr>
|
||||
<h2> <a name="rh5.0">egcs does not work on Red Hat 5.0</a></h2>
|
||||
<p> egcs does not currently work with Red Hat 5.0; we'll update this
|
||||
entry with more information as it becomes available.
|
||||
|
||||
<hr>
|
||||
<p><a href="index.html">Return to the egcs home page</a>
|
||||
<p><i>Last modified: December 2, 1997</i>
|
||||
|
||||
</body>
|
||||
</html>
|
30
INSTALL/finalinstall.html
Normal file
30
INSTALL/finalinstall.html
Normal file
@ -0,0 +1,30 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Final install egcs-1.0 </title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
<h1 align="center">Final install egcs-1.0</h1>
|
||||
|
||||
<p>Now that egcs has been built and tested, you can install it with
|
||||
`cd <i>objdir</i>; make install' for a native compiler or
|
||||
`cd <i>objdir</i>; make install LANGUAGES="c c++"' for a cross compiler
|
||||
(note installing cross compilers will be easier in the next release!).
|
||||
|
||||
|
||||
<p>That step completes the installation of egcs; user level binaries can
|
||||
be found in <i>prefix</i>/bin where <i>prefix</i> is the value you specified
|
||||
with the --prefix to configure (or /usr/local by default).
|
||||
|
||||
<p>If you don't mind, please send egcs@cygnus.com a short mail message
|
||||
indicating that you successfully built and installed egcs. Include
|
||||
the output from running <i>srcdir</i>/config.guess.
|
||||
|
||||
<p>If you find a bug in egcs, please report it to
|
||||
<a href="mailto:egcs-bugs@cygnus.com">egcs-bugs@cygnus.com</a>.
|
||||
|
||||
<p>
|
||||
<hr>
|
||||
<i>Last modified on December 2, 1997.</i>
|
||||
|
||||
</body>
|
||||
</html>
|
47
INSTALL/index.html
Normal file
47
INSTALL/index.html
Normal file
@ -0,0 +1,47 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Installing egcs-1.0 </title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
<h1 align="center">Installing egcs-1.0</h1>
|
||||
|
||||
<p>This document describes the generic installation procedure for egcs as
|
||||
well as detailing some target specific installation instructions for egcs.
|
||||
|
||||
<p>egcs includes several components that previously were separate distributions
|
||||
with their own installation instructions. This document supercedes all
|
||||
package specific installation instructions. We provide the component specific
|
||||
installation information in the source distribution for historical reference
|
||||
purposes only.
|
||||
|
||||
<p>We recommend you read the entire generic installation instructions as
|
||||
well as any target specific installation instructions before you proceed
|
||||
to configure, build, test and install egcs.
|
||||
|
||||
<p>If something goes wrong in the configure, build, test or install
|
||||
procedures, first double check that you followed the generic and target
|
||||
specific installation instructions carefully. Then check the
|
||||
<a href="../faq.html">FAQ</a> to see if your problem is covered before you file
|
||||
a bug report.
|
||||
|
||||
<p>The installation procedure is broken into four steps.
|
||||
|
||||
<ul>
|
||||
|
||||
<li> <a href="configure.html">configure</a>
|
||||
<li> <a href="build.html">build</a>
|
||||
<li> <a href="test.html">test</a> (optional)
|
||||
<li> <a href="finalinstall.html">install</a>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>Before starting the build/install procedure <b>please</b> browse the
|
||||
<a href="specific.html">host/target specific installation notes</a>.
|
||||
|
||||
<hr>
|
||||
<a href="../index.html">Return to the egcs home page</a>
|
||||
</body>
|
||||
</html>
|
||||
<hr>
|
||||
<i>Last modified on December 2, 1997.</i>
|
||||
|
119
INSTALL/specific.html
Normal file
119
INSTALL/specific.html
Normal file
@ -0,0 +1,119 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Host/Target specific installation notes for egcs-1.0 </title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
<h1 align="center">Host/Target specific installation notes for egcs-1.0</h1>
|
||||
|
||||
<p><b>alpha*-*-*</b><br>
|
||||
No specific installation needs/instructions.
|
||||
|
||||
|
||||
<p><b>i?86-*-linux*</b><br>
|
||||
You will need binutils-2.8.1.0.15 or newer for exception handling to work.
|
||||
|
||||
<p><b>i?86-*-sco3.2v5*</b><br>
|
||||
The SCO assembler is currently required. The GNU assembler is not up
|
||||
to the task of switching between ELF and COFF at runtime.
|
||||
|
||||
<br>Unlike various prereleases of GCC, that used '-belf' and defaulted to
|
||||
COFF, you must now use the '-melf' and '-mcoff' flags to toggle between
|
||||
the two object file formats. ELF is now the default.
|
||||
|
||||
<br>Look in gcc/config/i386/sco5.h (search for "messy") for additional
|
||||
OpenServer-specific flags.
|
||||
|
||||
|
||||
|
||||
<p><b>hppa*-hp-hpux*</b><br>
|
||||
We <b>highly</b> recommend using gas/binutils-2.8 on all hppa platforms; you
|
||||
may encounter a variety of problems when using the HP assembler.
|
||||
|
||||
XXX How to make sure gcc finds/uses gas.
|
||||
|
||||
<p><b>hppa*-hp-hpux9</b><br>
|
||||
The HP assembler has major problems on this platform. We've tried to work
|
||||
around the worst of the problems. However, those workarounds may be causing
|
||||
linker crashes in some circumstances; the workarounds also probably prevent
|
||||
shared libraries from working. Use the GNU assembler to avoid these problems.
|
||||
|
||||
<br>The configuration scripts for egcs will also trigger a bug in the hpux9
|
||||
shell. To avoid this problem set CONFIG_SHELL to /bin/ksh and SHELL to
|
||||
/bin/ksh in your environment.
|
||||
|
||||
<p><b>hppa*-hp-hpux10</b><br>
|
||||
For hpux10.20, we <b>highly</b> recommend you pick up the latest sed
|
||||
patch from HP. HP has two sites which provide patches free of charge.
|
||||
|
||||
<br><a href="http://us-support.external.hp.com">US, Canada, Asia-Pacific, and
|
||||
Latin-America</a>
|
||||
<br><a href="http://europe-support.external.hp.com">Europe</a>
|
||||
|
||||
<p>Retrieve patch PHCO_12862.
|
||||
|
||||
<p>The HP assembler on these systems is much better than the hpux9 assembler,
|
||||
but still has some problems. Most notably the assembler inserts timestamps
|
||||
into each object file it creates, causing the 3-stage comparison test to fail
|
||||
during a "make bootstrap". You should be able to continue by saying "make all"
|
||||
after getting the failure from "make bootstrap".
|
||||
|
||||
<p><b>m68k-*-nextstep*</b><br>
|
||||
You absolutely must use GNU sed and GNU make on this platform.
|
||||
|
||||
<p>If you try to build the integrated C++ & C++ runtime libraries on this system
|
||||
you will run into trouble with include files. The way to get around this is
|
||||
to use the following sequence. Note you must have write permission to
|
||||
<i>prefix</i> for this sequence to work.
|
||||
|
||||
<p>cd <i>objdir</i><br>
|
||||
make all-texinfo all-bison all-byacc all-binutils all-gas all-ld<br>
|
||||
cd gcc<br>
|
||||
make bootstrap<br>
|
||||
make install-headers-tar<br>
|
||||
cd ..<br>
|
||||
make bootstrap3<br>
|
||||
|
||||
<p><b>m68k-sun-sunos4.1.1</b><br>
|
||||
It is reported that you may need the GNU assembler on this platform.
|
||||
|
||||
<p><b>mips*-sgi-irix4</b><br>
|
||||
<b>mips*-sgi-irix5</b><br>
|
||||
You must use GAS on these platforms, the native assembler can not handle the
|
||||
code for exception handling support on this platform.
|
||||
|
||||
<p>These systems don't have ranlib, which various components in egcs need; you
|
||||
should be able to avoid this problem by installing GNU binutils, which includes
|
||||
a functional ranlib for this system.
|
||||
|
||||
<p>You may get the following warning on irix4 platforms, it can be safely
|
||||
ignored.
|
||||
<pre>
|
||||
warning: foo.o does not have gp tables for all its sections.
|
||||
</pre>
|
||||
|
||||
<p><b>mips*-sgi-irix6</b><br>
|
||||
You must not use GAS on irix6 platforms; doing so will only cause problems.
|
||||
|
||||
<p>These systems don't have ranlib, which various components in egcs need; you
|
||||
should be able to avoid this problem by making a dummy script called ranlib
|
||||
which just exits with zero status and placing it in your path.
|
||||
|
||||
<p><b>rs6000-ibm-aix*</b><br>
|
||||
<b>powerpc-ibm-aix*</b><br>
|
||||
At least one person as reported problems with older versions of gnu-make on
|
||||
this platform. make-3.76 is reported to work correctly.
|
||||
|
||||
<p><b>powerpc-*-linux-gnu*</b><br>
|
||||
You will need
|
||||
<a href="ftp://ftp.yggdrasil.com/private/hjl">binutils-2.8.1.0.17</a> for
|
||||
a working egcs. It is strongly recommended to recompile binutils with egcs
|
||||
if you initially built it with gcc-2.7.2.*.
|
||||
|
||||
<p>
|
||||
exception handling
|
||||
<p>XXX Linux stuff
|
||||
<hr>
|
||||
<i>Last modified on December 2, 1997.</i>
|
||||
|
||||
</body>
|
||||
</html>
|
37
INSTALL/test.html
Normal file
37
INSTALL/test.html
Normal file
@ -0,0 +1,37 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Testing egcs-1.0 </title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
<h1 align="center">Testing egcs-1.0</h1>
|
||||
|
||||
<p>Before you install egcs, you might wish to run the egcs testsuite; this
|
||||
step is optional and may require you to download additional software.
|
||||
|
||||
<p>First, you must have downloaded the egcs testsuites; the full distribution
|
||||
contains testsuites. If you downloaded the "core" compiler plus any front
|
||||
ends, then you do not have the testsuites. You can download the testsuites
|
||||
from the same site where you downloaded the core distribution and language
|
||||
front ends.
|
||||
|
||||
<p>Second, you must have a new version of dejagnu on your system; dejagnu-1.3
|
||||
will not work. We have made a
|
||||
<a href="ftp://ftp.cygnus.com/pub/egcs/infrastructure/dejagnu-971028.tar.gz">
|
||||
dejagnu snapshot</a> available in ftp.cygnus.com:/pub/egcs/infrastructure until
|
||||
a new version of dejagnu can be released.
|
||||
|
||||
<p>Assuming you've got the testsuites unpacked and have installed an appropriate
|
||||
dejagnu, you can run the testsuite with "cd <i>objdir</i>; make -k check".
|
||||
This may take a long time. Go get some lunch.
|
||||
|
||||
<p>The testing process will try to test as many components in the egcs
|
||||
distrubution as possible, including the C, C++ and Fortran compiler as
|
||||
well as the C++ runtime libraries.
|
||||
|
||||
<p> How to interpret test results XXX.
|
||||
|
||||
<hr>
|
||||
<i>Last modified on December 2, 1997.</i>
|
||||
|
||||
</body>
|
||||
</html>
|
6
configure
vendored
6
configure
vendored
@ -81,7 +81,7 @@ subdirs=
|
||||
target_alias=NOTARGET
|
||||
target_makefile_frag=
|
||||
undefs=NOUNDEFS
|
||||
version="$Revision: 1.2 $"
|
||||
version="$Revision: 1.3 $"
|
||||
x11=default
|
||||
|
||||
### we might need to use some other shell than /bin/sh for running subshells
|
||||
@ -1174,10 +1174,10 @@ EOF
|
||||
# provide a proper gxx_include_dir to all subdirs.
|
||||
# Note, if you change the default, make sure to fix both here
|
||||
# and in the gcc subdirectory.
|
||||
if test -z "${gxx_include_dir}"; then
|
||||
if test -z "${with_gxx_include_dir}"; then
|
||||
echo gxx_include_dir = '${prefix}/include/g++' >> ${Makefile}
|
||||
else
|
||||
echo gxx_include_dir = ${gxx_include_dir} >> ${Makefile}
|
||||
echo gxx_include_dir = ${with_gxx_include_dir} >> ${Makefile}
|
||||
fi
|
||||
|
||||
# reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS,
|
||||
|
@ -53,6 +53,12 @@ Tue Dec 2 12:54:33 1997 Jim Wilson <wilson@cygnus.com>
|
||||
* unroll.c (find_splittable_givs): Remove last change. Handle givs
|
||||
with a dest_reg that was created by loop.
|
||||
|
||||
Sat Nov 29 12:44:57 1997 David Edelsohn <edelsohn@mhpcc.edu>
|
||||
|
||||
* rs6000.c (function_arg_partial_nregs): Undo Nov. 26 patch.
|
||||
|
||||
* rs6000/aix41.h (ASM_CPU_SPEC): Define.
|
||||
|
||||
Fri Nov 28 10:00:27 1997 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* configure.in: Fix NCR entries.
|
||||
@ -90,6 +96,11 @@ Wed Nov 26 15:47:30 1997 Michael Meissner <meissner@cygnus.com>
|
||||
* rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Keep stack aligned to 16
|
||||
byte boundary, and maintain stack backchain.
|
||||
|
||||
Tue Nov 25 14:08:12 1997 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* mips.md (fix_truncdfsi2, fix_truncsfsi2, fix_truncdfdi2,
|
||||
fix_truncsfdi2): Change *.
|
||||
|
||||
Wed Nov 26 11:12:26 1997 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* toplev.c (main): Complain about -gdwarfn.
|
||||
|
@ -3,6 +3,9 @@ This file documents the installation of the GNU compiler. Copyright
|
||||
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
|
||||
*****************
|
||||
|
||||
|
12
gcc/NEWS
12
gcc/NEWS
@ -1,4 +1,4 @@
|
||||
Noteworthy changes in GCC version 2.8.0:
|
||||
Noteworthy changes in GCC for EGCS.
|
||||
|
||||
The -specs=file switch allows you to override default specs used in invoking
|
||||
programs like cc1, as, etc.
|
||||
@ -14,6 +14,8 @@ The following new targets are supported:
|
||||
Solaris 2.51 running on PowerPC's.
|
||||
Linux running on PowerPC's.
|
||||
Embedded target m32r-elf.
|
||||
Embedded target arc-elf.
|
||||
IRIX 6.2 running on MIPS.
|
||||
|
||||
New features for the Hitachi H8/300(H).
|
||||
|
||||
@ -26,6 +28,9 @@ New features for SPARC-based systems:
|
||||
|
||||
-mcpu=xxx
|
||||
-mtune=xxx
|
||||
-malign-loops=xxx
|
||||
-malign-jumps=xxx
|
||||
-malign-functions=xxx
|
||||
-mimpure-text and -mno-impure-text
|
||||
|
||||
New features for all rs6000 and PowerPC systems:
|
||||
@ -56,6 +61,8 @@ or embedded systems:
|
||||
-memb
|
||||
-msim
|
||||
-mmvme
|
||||
-myellowknife
|
||||
-mads
|
||||
wchar_t is now of type long, not unsigned short as per ABI.
|
||||
-p/-pg support
|
||||
-mcpu=403 now implies -mstrict-align.
|
||||
@ -82,6 +89,9 @@ Directory names used for storing the multilib libraries on System V and
|
||||
embedded PowerPC systems have been shortened to work with commands like tar
|
||||
that have fixed limits on pathname size.
|
||||
|
||||
The DWARF 2 debugging information format is supported on ELF systems, and
|
||||
is the default for -ggdb where available.
|
||||
|
||||
Noteworthy changes in GCC version 2.7.2:
|
||||
|
||||
A few bugs have been fixed (most notably the generation of an
|
||||
|
4157
gcc/ORDERS
4157
gcc/ORDERS
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
This directory contains the version 2.7.2 release of the GNU C
|
||||
This directory contains the egcs version 1.0 release of the GNU C
|
||||
compiler. It includes all of the support for compiling C++ and
|
||||
Objective C, including a run-time library for Objective C.
|
||||
|
||||
|
@ -14,6 +14,10 @@ which is the top-level directory containing the gcc back end, the
|
||||
gcc C front end, and other non-Fortran files, and gcc/f/, which
|
||||
contains all of the Fortran files.
|
||||
|
||||
* Note, if this is an egcs release, all the installation information
|
||||
which follows is not needed. It is provided for historical reference
|
||||
only.
|
||||
|
||||
* To build GNU Fortran, you must have a source distribution of gcc
|
||||
version 2.7.2.2. Do not attempt to use any other version
|
||||
of gcc, because this version of g77 is designed to work only with
|
||||
@ -163,4 +167,4 @@ the compiler is in the second pass, otherwise it is in the first.
|
||||
(This information might help you reduce a test case and/or work around
|
||||
a bug in g77 until a fix is available.)
|
||||
|
||||
Any questions or comments on these topics, email fortran@gnu.ai.mit.edu.
|
||||
Any questions or comments on these topics, email egcs@cygnus.com
|
||||
|
@ -36,6 +36,37 @@ Boston, MA 02111-1307, USA. */
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC "-u %(asm_cpu)"
|
||||
|
||||
/* Common ASM definitions used by ASM_SPEC amonst the various targets
|
||||
for handling -mcpu=xxx switches. */
|
||||
|
||||
#undef ASM_CPU_SPEC
|
||||
#define ASM_CPU_SPEC \
|
||||
"%{!mcpu*: \
|
||||
%{mpower: %{!mpower2: -mpwr}} \
|
||||
%{mpower2: -mpwr2} \
|
||||
%{mpowerpc*: -mppc} \
|
||||
%{mno-power: %{!mpowerpc*: -mcom}} \
|
||||
%{!mno-power: %{!mpower2: %(asm_default)}}} \
|
||||
%{mcpu=common: -mcom} \
|
||||
%{mcpu=power: -mpwr} \
|
||||
%{mcpu=power2: -mpwr2} \
|
||||
%{mcpu=powerpc: -mppc} \
|
||||
%{mcpu=rios: -mpwr} \
|
||||
%{mcpu=rios1: -mpwr} \
|
||||
%{mcpu=rios2: -mpwr2} \
|
||||
%{mcpu=rsc: -mpwr} \
|
||||
%{mcpu=rsc1: -mpwr} \
|
||||
%{mcpu=403: -mppc} \
|
||||
%{mcpu=505: -mppc} \
|
||||
%{mcpu=601: -m601} \
|
||||
%{mcpu=602: -mppc} \
|
||||
%{mcpu=603: -m603} \
|
||||
%{mcpu=603e: -m603} \
|
||||
%{mcpu=604: -m604} \
|
||||
%{mcpu=620: -mppc} \
|
||||
%{mcpu=821: -mppc} \
|
||||
%{mcpu=860: -mppc}"
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "-D_IBMR2 -D_POWER -D_AIX -D_AIX32 -D_AIX41 \
|
||||
-Asystem(unix) -Asystem(aix)"
|
||||
|
@ -1387,9 +1387,6 @@ function_arg_partial_nregs (cum, mode, type, named)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (GET_MODE_CLASS (mode) == MODE_FLOAT && TARGET_HARD_FLOAT)
|
||||
return 0;
|
||||
|
||||
if (cum->words < GP_ARG_NUM_REG
|
||||
&& GP_ARG_NUM_REG < (cum->words + RS6000_ARG_SIZE (mode, type, named)))
|
||||
{
|
||||
|
@ -3,6 +3,9 @@ compiler. Copyright (C) 1995, 1996 Free Software Foundation, Inc. You
|
||||
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 Fortran
|
||||
**********************
|
||||
|
||||
@ -1594,7 +1597,7 @@ general) are broken, at least for their system.
|
||||
until you're sure your distribution is widely used and has been well
|
||||
tested. This especially goes for those of you making any changes to
|
||||
the `g77' sources to port `g77', e.g. to OS/2.
|
||||
<fortran@gnu.ai.mit.edu> has received a fair number of bug reports that
|
||||
<fortran@gnu.org> has received a fair number of bug reports that
|
||||
turned out to be problems with other peoples' ports and distributions,
|
||||
about which nothing could be done for the user. Once you are quite
|
||||
certain a bug report does not involve your efforts, you can forward it
|
||||
|
@ -91,7 +91,7 @@ translations approved by the Free Software Foundation instead of in the
|
||||
original English.
|
||||
@end ifinfo
|
||||
|
||||
Contributed by James Craig Burley (@email{burley@@gnu.ai.mit.edu}).
|
||||
Contributed by James Craig Burley (@email{burley@@gnu.org}).
|
||||
Inspired by a first pass at translating @file{g77-0.5.16/f/DOC} that
|
||||
was contributed to Craig by David Ronis (@email{ronis@@onsager.chem.mcgill.ca}).
|
||||
|
||||
@ -762,7 +762,7 @@ without royalty; alteration is not permitted.
|
||||
@cindex improvements, funding
|
||||
|
||||
Work on GNU Fortran is still being done mostly by its author,
|
||||
James Craig Burley (@email{burley@@gnu.ai.mit.edu}), who is a volunteer
|
||||
James Craig Burley (@email{burley@@gnu.org}), who is a volunteer
|
||||
for, not an employee of, the Free Software Foundation (FSF).
|
||||
As with other GNU software, funding is important because it can pay for
|
||||
needed equipment, personnel, and so on.
|
||||
@ -772,7 +772,7 @@ needed equipment, personnel, and so on.
|
||||
The FSF provides information on the best way to fund ongoing
|
||||
development of GNU software (such as GNU Fortran) in documents
|
||||
such as the ``GNUS Bulletin''.
|
||||
Email @email{gnu@@prep.ai.mit.edu} for information on funding the FSF.
|
||||
Email @email{gnu@@gnu.org} for information on funding the FSF.
|
||||
|
||||
To fund specific GNU Fortran work in particular, the FSF might
|
||||
provide a means for that, but the FSF does not provide direct funding
|
||||
@ -801,7 +801,7 @@ would be able to plan on not doing contract work for many months and
|
||||
could thus devote that time to work on projects (such as the planned
|
||||
changes for 0.6) that require longer timeframes to complete.
|
||||
For the latest information on the status of the author, do
|
||||
@kbd{finger -l burley@@gate.gnu.ai.mit.edu} on a UNIX system
|
||||
@kbd{finger -l burley@@gnu.org} on a UNIX system
|
||||
(or any system with a command like UNIX @code{finger}).
|
||||
|
||||
Another important way to support work on GNU Fortran is to volunteer
|
||||
@ -810,7 +810,7 @@ Work is needed on documentation, testing, porting
|
||||
to various machines, and in some cases, coding (although major
|
||||
changes planned for version 0.6 make it difficult to add manpower to this
|
||||
area).
|
||||
Email @email{fortran@@gnu.ai.mit.edu} to volunteer for this work.
|
||||
Email @email{egcs@@cygnus.com} to volunteer for this work.
|
||||
|
||||
@xref{Funding,,Funding Free Software}, for more information.
|
||||
|
||||
@ -3251,9 +3251,9 @@ users use @code{g77}.
|
||||
such changes to @code{g77}.
|
||||
|
||||
To find out about existing bugs and ongoing plans for GNU
|
||||
Fortran, retrieve @code{ftp://alpha.gnu.ai.mit.edu/g77.plan}
|
||||
Fortran, retrieve @code{ftp://alpha.gnu.org/g77.plan}
|
||||
or, if you cannot do that, email
|
||||
@email{fortran@@gnu.ai.mit.edu} asking for a recent copy of the
|
||||
@email{fortran@@gnu.org} asking for a recent copy of the
|
||||
GNU Fortran @file{.plan} file.
|
||||
|
||||
@heading In 0.5.21:
|
||||
@ -10164,7 +10164,7 @@ or installing @code{g77} is not provided here.
|
||||
|
||||
To find out about major bugs discovered in the current release and
|
||||
possible workarounds for them, retrieve
|
||||
@code{ftp://alpha.gnu.ai.mit.edu/g77.plan}.
|
||||
@code{ftp://alpha.gnu.org/g77.plan}.
|
||||
|
||||
(Note that some of this portion of the manual is lifted
|
||||
directly from the @code{gcc} manual, with minor modifications
|
||||
@ -12290,8 +12290,8 @@ exposes it more readily than other compilers.
|
||||
@node Bug Lists
|
||||
@section Where to Report Bugs
|
||||
@cindex bug report mailing lists
|
||||
@kindex fortran@@gnu.ai.mit.edu
|
||||
Send bug reports for GNU Fortran to @email{fortran@@gnu.ai.mit.edu}.
|
||||
@kindex egcs-bugs@@cygnus.com
|
||||
Send bug reports for GNU Fortran to @email{egcs-bugs@@cygnus.com}.
|
||||
|
||||
Often people think of posting bug reports to a newsgroup instead of
|
||||
mailing them.
|
||||
@ -12627,7 +12627,7 @@ we should be able to reproduce the crash ourselves.
|
||||
If you would like to write bug fixes or improvements for the GNU Fortran
|
||||
compiler, that is very helpful.
|
||||
Send suggested fixes to the bug report
|
||||
mailing list, @email{fortran@@gnu.ai.mit.edu}.
|
||||
mailing list, @email{egcs-bugs@@cygnus.com}.
|
||||
|
||||
Please follow these guidelines so we can study your patches efficiently.
|
||||
If you don't follow these guidelines, your information might still be
|
||||
@ -12752,7 +12752,7 @@ The service directory is found in the file named @file{SERVICE} in the
|
||||
GNU CC distribution.
|
||||
|
||||
@item
|
||||
Send a message to @email{fortran@@gnu.ai.mit.edu}.
|
||||
Send a message to @email{egcs@@cygnus.com}.
|
||||
@end itemize
|
||||
|
||||
@end ifset
|
||||
|
@ -7,6 +7,9 @@
|
||||
|
||||
@c 1997-09-09
|
||||
|
||||
Note most of this information is out of date and superceded by the EGCS
|
||||
install procedures. It is provided for historical reference only.
|
||||
|
||||
@ifclear INSTALLONLY
|
||||
@node Installation
|
||||
@chapter Installing GNU Fortran
|
||||
@ -2106,7 +2109,7 @@ until you're sure your distribution is widely used and has been
|
||||
well tested.
|
||||
This especially goes for those of you making any
|
||||
changes to the @code{g77} sources to port @code{g77}, e.g. to OS/2.
|
||||
@email{fortran@@gnu.ai.mit.edu} has received a fair number of bug
|
||||
@email{fortran@@gnu.org} has received a fair number of bug
|
||||
reports that turned out to be problems with other peoples' ports
|
||||
and distributions, about which nothing could be done for the
|
||||
user.
|
||||
|
@ -1,3 +1,10 @@
|
||||
971202
|
||||
It is not necessary to apply the "backend" patch to an egcs based gcc
|
||||
release. The files in this directory are included in the egcs distribution
|
||||
for historical purposes only.
|
||||
|
||||
|
||||
|
||||
970909
|
||||
|
||||
This directory contains .diff files for various GNU CC distributions
|
||||
|
@ -230,7 +230,7 @@ ffelex_append_to_token_ (char c)
|
||||
}
|
||||
#ifdef MAP_CHARACTER
|
||||
Sorry, MAP_CHARACTER is not going to work as expected in GNU Fortran,
|
||||
please contact fortran@gnu.ai.mit.edu if you wish to fund work to
|
||||
please contact fortran@gnu.org if you wish to fund work to
|
||||
port g77 to non-ASCII machines.
|
||||
#endif
|
||||
ffelex_token_->text[ffelex_token_->length++] = c;
|
||||
|
14
gcc/gcc.1
14
gcc/gcc.1
@ -20,10 +20,10 @@
|
||||
.if n .sp
|
||||
.if t .sp 0.4
|
||||
..
|
||||
.Id $Id: gcc.1,v 1.4 1993/10/13 23:19:12 pesch Exp $
|
||||
.Id $Id: gcc.1,v 1.1.1.2 1997/11/02 08:40:04 law Exp $
|
||||
.TH GCC 1 "\*(Dt" "GNU Tools" "GNU Tools"
|
||||
.SH NAME
|
||||
gcc, g++ \- GNU project C and C++ Compiler (v2.7)
|
||||
gcc, g++ \- GNU project C and C++ Compiler (egcs-1.0)
|
||||
.SH SYNOPSIS
|
||||
.B gcc
|
||||
.RI "[ " option " | " filename " ].\|.\|."
|
||||
@ -190,6 +190,8 @@ in the following sections.
|
||||
\-Wformat
|
||||
.RI \-Wid\-clash\- len
|
||||
\-Wimplicit
|
||||
\-Wimplicit\-int
|
||||
\-Wimplicit\-function\-declaration
|
||||
\-Winline
|
||||
\-Wmain
|
||||
\-Wmissing\-prototypes
|
||||
@ -1717,8 +1719,14 @@ An unsigned value is compared against zero with `\|\c
|
||||
\&\|'.
|
||||
.PP
|
||||
.TP
|
||||
.B \-Wimplicit-int
|
||||
Warn whenever a declaration does not specify a type.
|
||||
.TP
|
||||
.B \-Wimplicit-function-declaration
|
||||
Warn whenever a function is used before being declared.
|
||||
.TP
|
||||
.B \-Wimplicit
|
||||
Warn whenever a function or parameter is implicitly declared.
|
||||
Same as -Wimplicit-int and -Wimplicit-function-declaration.
|
||||
.TP
|
||||
.B \-Wmain
|
||||
Warn if the
|
||||
|
43
gcc/gcc.texi
43
gcc/gcc.texi
@ -148,12 +148,12 @@ original English.
|
||||
@sp 1
|
||||
@c The version number appears twice more in this file.
|
||||
|
||||
@center for version 2.7.2
|
||||
@center for egcs-1.0
|
||||
@page
|
||||
@vskip 0pt plus 1filll
|
||||
Copyright @copyright{} 1988, 89, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
|
||||
@sp 2
|
||||
For GCC Version 2.7.2@*
|
||||
For EGCS Version 1.0@*
|
||||
@sp 1
|
||||
Published by the Free Software Foundation @*
|
||||
59 Temple Place - Suite 330@*
|
||||
@ -194,19 +194,19 @@ original English.
|
||||
@ifset USING
|
||||
This manual documents how to run, install and port the GNU
|
||||
compiler, as well as its new features and incompatibilities, and how to
|
||||
report bugs. It corresponds to GNU CC version 2.7.2.
|
||||
report bugs. It corresponds to EGCS version 1.0.
|
||||
@end ifset
|
||||
@end ifset
|
||||
|
||||
@ifclear INTERNALS
|
||||
This manual documents how to run and install the GNU compiler,
|
||||
as well as its new features and incompatibilities, and how to report
|
||||
bugs. It corresponds to GNU CC version 2.7.2.
|
||||
bugs. It corresponds to EGCS version 1.0.
|
||||
@end ifclear
|
||||
@ifclear USING
|
||||
This manual documents how to port the GNU compiler,
|
||||
as well as its new features and incompatibilities, and how to report
|
||||
bugs. It corresponds to GNU CC version 2.7.1.
|
||||
bugs. It corresponds to EGCS version 1.0.
|
||||
@end ifclear
|
||||
|
||||
@end ifinfo
|
||||
@ -2188,24 +2188,13 @@ for improvement of GNU CC or GNU C++ are welcome in any case.
|
||||
@node Bug Lists
|
||||
@section Where to Report Bugs
|
||||
@cindex bug report mailing lists
|
||||
@kindex bug-gcc@@prep.ai.mit.edu
|
||||
Send bug reports for GNU C to @samp{bug-gcc@@prep.ai.mit.edu}.
|
||||
@kindex egcs-bugs@@cygnus.com
|
||||
Send bug reports for GNU C to @samp{egcs-bugs@@cygnus.com}.
|
||||
|
||||
@kindex bug-g++@@prep.ai.mit.edu
|
||||
@kindex bug-libg++@@prep.ai.mit.edu
|
||||
Send bug reports for GNU C++ to @samp{bug-g++@@prep.ai.mit.edu}. If
|
||||
your bug involves the C++ class library libg++, send mail instead to the
|
||||
address @samp{bug-lib-g++@@prep.ai.mit.edu}. If you're not sure, you
|
||||
can send the bug report to both lists.
|
||||
|
||||
@strong{Do not send bug reports to @samp{help-gcc@@prep.ai.mit.edu} or
|
||||
to the newsgroup @samp{gnu.gcc.help}.} Most users of GNU CC do not want
|
||||
to receive bug reports. Those that do, have asked to be on
|
||||
@samp{bug-gcc} and/or @samp{bug-g++}.
|
||||
|
||||
The mailing lists @samp{bug-gcc} and @samp{bug-g++} both have newsgroups
|
||||
which serve as repeaters: @samp{gnu.gcc.bug} and @samp{gnu.g++.bug}.
|
||||
Each mailing list and its newsgroup carry exactly the same messages.
|
||||
@kindex egcs-bugs@@cygnus.com
|
||||
@kindex egcs-bugs@@cygnus.com
|
||||
Send bug reports for GNU C++ and the C++ runtime libraries to
|
||||
@samp{egcs-bugs@@cygnus.com}.
|
||||
|
||||
Often people think of posting bug reports to the newsgroup instead of
|
||||
mailing them. This appears to work, but it has one problem which can be
|
||||
@ -2491,7 +2480,7 @@ we should be able to reproduce the crash ourselves.
|
||||
|
||||
If you would like to write bug fixes or improvements for the GNU C
|
||||
compiler, that is very helpful. Send suggested fixes to the bug report
|
||||
mailing list, @code{bug-gcc@@prep.ai.mit.edu}.
|
||||
mailing list, @code{egcs-bugs@@cygnus.com}.
|
||||
|
||||
Please follow these guidelines so we can study your patches efficiently.
|
||||
If you don't follow these guidelines, your information might still be
|
||||
@ -2611,8 +2600,8 @@ ways to find it:
|
||||
@itemize @bullet
|
||||
@item
|
||||
Send a message to a suitable network mailing list. First try
|
||||
@code{bug-gcc@@prep.ai.mit.edu}, and if that brings no response, try
|
||||
@code{help-gcc@@prep.ai.mit.edu}.
|
||||
@code{egcs-bugs@@cygnus.com}, and if that brings no response, try
|
||||
@code{egcs@@cygnus.com}.
|
||||
|
||||
@item
|
||||
Look in the service directory for someone who might help you for a fee.
|
||||
@ -2625,13 +2614,13 @@ GNU CC distribution.
|
||||
|
||||
If you would like to help pretest GNU CC releases to assure they work
|
||||
well, or if you would like to work on improving GNU CC, please contact
|
||||
the maintainers at @code{bug-gcc@@gnu.ai.mit.edu}. A pretester should
|
||||
the maintainers at @code{egcs@@cygnus.com}. A pretester should
|
||||
be willing to try to investigate bugs as well as report them.
|
||||
|
||||
If you'd like to work on improvements, please ask for suggested projects
|
||||
or suggest your own ideas. If you have already written an improvement,
|
||||
please tell us about it. If you have not yet started work, it is useful
|
||||
to contact @code{bug-gcc@@prep.ai.mit.edu} before you start; the
|
||||
to contact @code{egcs@@cygnus.com} before you start; the
|
||||
maintainers may be able to suggest ways to make your extension fit in
|
||||
better with the rest of GNU CC and with other development plans.
|
||||
|
||||
|
@ -5,6 +5,9 @@
|
||||
@c The text of this file appears in the file INSTALL
|
||||
@c in the GCC distribution, as well as in the GCC manual.
|
||||
|
||||
Note most of this information is out of date and superceded by the EGCS
|
||||
install procedures. It is provided for historical reference only.
|
||||
|
||||
@ifclear INSTALLONLY
|
||||
@node Installation
|
||||
@chapter Installing GNU CC
|
||||
|
@ -366,7 +366,7 @@ in the following sections.
|
||||
@xref{Code Gen Options,,Options for Code Generation Conventions}.
|
||||
@smallexample
|
||||
-fcall-saved-@var{reg} -fcall-used-@var{reg}
|
||||
-ffixed-@var{reg} -finhibit-size-directive
|
||||
-fexceptions -ffixed-@var{reg} -finhibit-size-directive
|
||||
-fcheck-memory-usage -fprefix-function-name
|
||||
-fno-common -fno-ident -fno-gnu-linker
|
||||
-fpcc-struct-return -fpic -fPIC
|
||||
@ -2306,7 +2306,7 @@ These two options are intended to be removed someday, once
|
||||
they have helped determine the efficacy of various
|
||||
approaches to improving loop optimizations.
|
||||
|
||||
Please let us (@code{egcs@@cygnus.com} and @code{fortran@@gnu.ai.mit.edu})
|
||||
Please let us (@code{egcs@@cygnus.com} and @code{fortran@@gnu.org})
|
||||
know how use of these options affects
|
||||
the performance of your production code.
|
||||
We're very interested in code that runs @emph{slower}
|
||||
@ -5389,6 +5389,14 @@ environment with multiple threads, but only rarely need to specify it in
|
||||
a single-threaded environment since stack overflow is automatically
|
||||
detected on nearly all systems if there is only one stack.
|
||||
|
||||
@item -fexceptions
|
||||
Enable exception handling. For some targets, this implies
|
||||
generation of frame unwind information for all functions, which can produce
|
||||
significant data size overhead, though it does not affect execution.
|
||||
|
||||
This option is on by default for languages that support exception
|
||||
handling (such as C++), and off for those that don't (such as C).
|
||||
|
||||
@item +e0
|
||||
@itemx +e1
|
||||
Control whether virtual function definitions in classes are used to
|
||||
|
@ -1,3 +1,9 @@
|
||||
*** Major changes in libio for egcs:
|
||||
|
||||
* Better support for Linux.
|
||||
|
||||
* Dejagnu testsuite.
|
||||
|
||||
*** Major changes in libio version 2.7.0:
|
||||
|
||||
* The data representations of _IO_FILE and streambufs have been modified.
|
||||
|
@ -1,13 +1,9 @@
|
||||
SUMMARY OF RECENT MAJOR CHANGES to LIBSTDC++.
|
||||
(Also check ../libio/NEWS.)
|
||||
|
||||
*** Noteworthy changes in libstdc++ version 2.8.0:
|
||||
*** Noteworthy changes in libstdc++ for EGCS
|
||||
|
||||
* The STL implementation in libstdc++ is now only slightly modified from
|
||||
the HP distribution, thanks to improved template support in gcc 2.8.0.
|
||||
* EGCS includes the SGI STL implementation without changes.
|
||||
|
||||
* The string representation class is now nested in the basic_string
|
||||
template, since this is supported in the new gcc.
|
||||
|
||||
* As a result of these and other changes, libstc++ 2.8.0 is not binary
|
||||
* As a result of these and other changes, libstc++ for EGCS is not binary
|
||||
compatible with previous releases of libstdc++.
|
||||
|
@ -1,3 +1,8 @@
|
||||
Tue Dec 2 20:24:40 1997 Bruno Haible <haible@ilog.fr>
|
||||
|
||||
* makeinfo/makeinfo.c (find_and_load, convert_from_stream):
|
||||
Zero-terminate the file contents.
|
||||
|
||||
Fri Oct 31 09:39:31 1997 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* Makefile.in (install targets): Add a dummy target for sunos make.
|
||||
|
@ -1,3 +1,6 @@
|
||||
Note most of this information is out of date and superceded by the EGCS
|
||||
install procedures. It is provided for historical reference only.
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Makeinfo -- convert texinfo format files into info files.
|
||||
$Id: makeinfo.c,v 1.2 1997/09/03 04:25:24 law Exp $
|
||||
$Id: makeinfo.c,v 1.5 1998/03/03 09:03:45 law Exp $
|
||||
|
||||
Copyright (C) 1987, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
|
||||
|
||||
@ -1167,7 +1167,7 @@ find_and_load (filename)
|
||||
goto error_exit;
|
||||
|
||||
/* Load the file. */
|
||||
result = (char *)xmalloc (1 + file_size);
|
||||
result = (char *)xmalloc (file_size + 2);
|
||||
|
||||
/* VMS stat lies about the st_size value. The actual number of
|
||||
readable bytes is always less than this value. The arcane
|
||||
@ -1207,6 +1207,8 @@ find_and_load (filename)
|
||||
extra unnecessary work each time it is called (that is a lot of times).
|
||||
The SIZE_OF_INPUT_TEXT is one past the actual end of the text. */
|
||||
input_text[size_of_input_text] = '\n';
|
||||
/* Necessary, because later on we call strlen(input_text+limit). */
|
||||
input_text[size_of_input_text+1] = '\0';
|
||||
return (result);
|
||||
}
|
||||
|
||||
@ -1947,21 +1949,22 @@ convert_from_stream (stream, name)
|
||||
FILE *stream;
|
||||
char *name;
|
||||
{
|
||||
char *buffer = (char *)NULL;
|
||||
int buffer_offset = 0, buffer_size = 0;
|
||||
int buffer_size = READ_BUFFER_GROWTH;
|
||||
char *buffer = (char *) xmalloc (buffer_size + 2);
|
||||
int buffer_offset = 0;
|
||||
|
||||
initialize_conversion ();
|
||||
|
||||
/* Read until the end of the stream. This isn't strictly correct, since
|
||||
the texinfo input may end before the stream ends, but it is a quick
|
||||
working hueristic. */
|
||||
working heuristic. */
|
||||
while (!feof (stream))
|
||||
{
|
||||
int count;
|
||||
|
||||
if (buffer_offset + (READ_BUFFER_GROWTH + 1) >= buffer_size)
|
||||
if (buffer_offset + READ_BUFFER_GROWTH > buffer_size)
|
||||
buffer = (char *)
|
||||
xrealloc (buffer, (buffer_size += READ_BUFFER_GROWTH));
|
||||
xrealloc (buffer, (buffer_size += READ_BUFFER_GROWTH) + 2);
|
||||
|
||||
count = fread (buffer + buffer_offset, 1, READ_BUFFER_GROWTH, stream);
|
||||
|
||||
@ -1988,6 +1991,8 @@ convert_from_stream (stream, name)
|
||||
extra unnecessary work each time it is called (that is a lot of times).
|
||||
The SIZE_OF_INPUT_TEXT is one past the actual end of the text. */
|
||||
input_text[size_of_input_text] = '\n';
|
||||
/* Necessary, because later on we call strlen(input_text+limit). */
|
||||
input_text[size_of_input_text+1] = '\0';
|
||||
|
||||
convert_from_loaded_file (name);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user