2001-05-12 00:10:54 +02:00
|
|
|
\input texinfo.tex @c -*-texinfo-*-
|
|
|
|
@c @ifnothtml
|
|
|
|
@c %**start of header
|
|
|
|
@setfilename install.info
|
|
|
|
@settitle Installing GCC
|
|
|
|
@setchapternewpage odd
|
|
|
|
@c %**end of header
|
|
|
|
@c @end ifnothtml
|
|
|
|
|
|
|
|
@c Specify title for specific html page
|
|
|
|
@ifset indexhtml
|
|
|
|
@settitle Installing GCC
|
|
|
|
@end ifset
|
|
|
|
@ifset specifichtml
|
|
|
|
@settitle Host/Target specific installation notes for GCC
|
|
|
|
@end ifset
|
|
|
|
@ifset downloadhtml
|
|
|
|
@settitle Downloading GCC
|
|
|
|
@end ifset
|
|
|
|
@ifset configurehtml
|
|
|
|
@settitle Installing GCC: Configuration
|
|
|
|
@end ifset
|
|
|
|
@ifset buildhtml
|
|
|
|
@settitle Installing GCC: Building
|
|
|
|
@end ifset
|
|
|
|
@ifset testhtml
|
|
|
|
@settitle Installing GCC: Testing
|
|
|
|
@end ifset
|
|
|
|
@ifset finalinstallhtml
|
|
|
|
@settitle Installing GCC: Final installation
|
|
|
|
@end ifset
|
|
|
|
@ifset binarieshtml
|
|
|
|
@settitle Installing GCC: Binaries
|
|
|
|
@end ifset
|
|
|
|
|
2001-06-03 08:40:15 +02:00
|
|
|
@comment $Id: install.texi,v 1.13 2001/06/02 22:33:30 jsm28 Exp $
|
2001-05-12 00:10:54 +02:00
|
|
|
@c Copyright (C) 2001 Free Software Foundation, Inc.
|
|
|
|
@c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com
|
|
|
|
|
|
|
|
@c Include everything if we're not making html
|
|
|
|
@ifnothtml
|
|
|
|
@set indexhtml
|
|
|
|
@set specifichtml
|
|
|
|
@set downloadhtml
|
|
|
|
@set configurehtml
|
|
|
|
@set buildhtml
|
|
|
|
@set testhtml
|
|
|
|
@set finalinstallhtml
|
|
|
|
@set binarieshtml
|
|
|
|
@end ifnothtml
|
|
|
|
|
|
|
|
@c Part 2 Summary Description and Copyright
|
|
|
|
@ifinfo
|
|
|
|
|
|
|
|
Copyright @copyright{} 2001 Free Software Foundation, Inc.
|
|
|
|
@end ifinfo
|
|
|
|
|
|
|
|
@c Part 3 Titlepage and Copyright
|
|
|
|
@titlepage
|
|
|
|
@sp 10
|
|
|
|
@comment The title is printed in a large font.
|
2001-06-02 20:21:37 +02:00
|
|
|
@center @titlefont{Installing GCC}
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
@c The following two commands start the copyright page.
|
|
|
|
@page
|
2001-06-02 20:21:37 +02:00
|
|
|
@vskip 0pt plus 1filll
|
2001-05-12 00:10:54 +02:00
|
|
|
Copyright @copyright{} 2001 Free Software Foundation, Inc.
|
|
|
|
@end titlepage
|
|
|
|
|
|
|
|
@c Part 4 Top node and Master Menu
|
|
|
|
@ifinfo
|
|
|
|
@node Top, , , (dir)
|
|
|
|
@comment node-name, next, Previous, up
|
|
|
|
|
|
|
|
@menu
|
|
|
|
* Installing GCC:: This document describes the generic installation
|
|
|
|
procedure for GCC as well as detailing some target
|
|
|
|
specific installation instructions.
|
|
|
|
|
|
|
|
* Specific:: Host/target specific installation notes for GCC.
|
|
|
|
* Binaries:: Where to get pre-compiled binaries.
|
|
|
|
|
|
|
|
* Concept Index:: This index has two entries.
|
|
|
|
@end menu
|
|
|
|
@end ifinfo
|
|
|
|
|
|
|
|
@c Part 5 The Body of the Document
|
|
|
|
@c ***Installing GCC**********************************************************
|
|
|
|
@ifinfo
|
|
|
|
@comment node-name, next, previous, up
|
|
|
|
@node Installing GCC, Binaries, , Top
|
|
|
|
@end ifinfo
|
|
|
|
@ifset indexhtml
|
|
|
|
@html
|
|
|
|
<h1 align="center">Installing GCC</h1>
|
|
|
|
@end html
|
|
|
|
@ifnothtml
|
|
|
|
@chapter Installing GCC
|
|
|
|
@end ifnothtml
|
|
|
|
|
|
|
|
The latest version of this document is always available at
|
|
|
|
@uref{http://gcc.gnu.org/install/,,http://gcc.gnu.org/install/}.
|
|
|
|
|
|
|
|
This document describes the generic installation procedure for GCC as well
|
|
|
|
as detailing some target specific installation instructions.
|
|
|
|
|
|
|
|
GCC includes several components that previously were separate distributions
|
|
|
|
with their own installation instructions. This document supersedes all
|
|
|
|
package specific installation instructions. We provide the component
|
|
|
|
specific installation information in the source distribution for historical
|
|
|
|
reference purposes only.
|
|
|
|
|
|
|
|
@emph{Before} starting the build/install procedure please check the
|
|
|
|
@ifnothtml
|
|
|
|
@xref{Specific, host/target specific installation notes}.
|
|
|
|
@end ifnothtml
|
|
|
|
@ifnotinfo
|
|
|
|
@uref{specific.html,,host/target specific installation notes}.
|
|
|
|
@end ifnotinfo
|
|
|
|
We recommend you browse the entire generic installation instructions before
|
|
|
|
you proceed.
|
|
|
|
|
|
|
|
The installation procedure itself is broken into five steps.
|
|
|
|
|
|
|
|
@ifinfo
|
|
|
|
@menu
|
|
|
|
* Downloading the source::
|
|
|
|
* Configuration::
|
|
|
|
* Building::
|
|
|
|
* Testing:: (optional)
|
|
|
|
* Final install::
|
|
|
|
@end menu
|
|
|
|
@end ifinfo
|
|
|
|
@ifnotinfo
|
|
|
|
@enumerate
|
|
|
|
@item
|
|
|
|
@uref{download.html,,Downloading the source}
|
|
|
|
@item
|
|
|
|
@uref{configure.html,,Configuration}
|
|
|
|
@item
|
|
|
|
@uref{build.html,,Building}
|
|
|
|
@item
|
|
|
|
@uref{test.html,,Testing} (optional)
|
|
|
|
@item
|
|
|
|
@uref{finalinstall.html,,Final install}
|
|
|
|
@end enumerate
|
|
|
|
@end ifnotinfo
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
Please note that GCC does not support @samp{make uninstall} and probably
|
2001-05-12 00:10:54 +02:00
|
|
|
won't do so in the near future as this would open a can of worms. Instead,
|
|
|
|
we suggest that you install GCC into a directory of its own and simply
|
2001-06-01 20:08:19 +02:00
|
|
|
remove that directory when you do not need that specific version of GCC
|
|
|
|
any longer.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
@html
|
|
|
|
<hr>
|
|
|
|
<p>
|
|
|
|
@end html
|
|
|
|
@ifhtml
|
|
|
|
@uref{./index.html,,Return to the GCC Installation page}
|
|
|
|
@end ifhtml
|
|
|
|
@end ifset
|
|
|
|
|
|
|
|
@c ***Downloading the source**************************************************
|
|
|
|
@ifinfo
|
|
|
|
@comment node-name, next, previous, up
|
|
|
|
@node Downloading the source, Configuration, , Installing GCC
|
|
|
|
@end ifinfo
|
|
|
|
@ifset downloadhtml
|
|
|
|
@html
|
|
|
|
<h1 align="center">Downloading GCC</h1>
|
|
|
|
@end html
|
|
|
|
@ifnothtml
|
|
|
|
@chapter Downloading GCC
|
|
|
|
@end ifnothtml
|
|
|
|
@cindex Downloading GCC
|
|
|
|
@cindex Downloading the Source
|
|
|
|
|
|
|
|
GCC is distributed via CVS and FTP tarballs compressed with gzip or
|
|
|
|
bzip2. It is possible to download a full distribution or specific
|
|
|
|
components.
|
|
|
|
|
|
|
|
Please refer to our @uref{http://gcc.gnu.org/releases.html,,releases web page}
|
|
|
|
for information on how to obtain GCC.
|
|
|
|
|
|
|
|
The full distribution includes the C, C++, Objective-C, Fortran, Java,
|
|
|
|
and Chill compilers. The full distribution also includes runtime libraries
|
|
|
|
for C++, Objective-C and Fortran. In the future the GNU compiler testsuites
|
|
|
|
will be included in the full distribution.
|
|
|
|
|
|
|
|
If you choose to download specific components, you must download the core
|
|
|
|
gcc distribution plus any language specific distributions you wish to
|
|
|
|
use. The core distribution includes the C language front-end as well as the
|
|
|
|
shared components. Each language has a tarball which includes the language
|
|
|
|
front-end as well as the language runtime (when appropriate).
|
|
|
|
|
|
|
|
Unpack the core distribution as well as any language specific
|
|
|
|
distributions in the same directory.
|
|
|
|
|
|
|
|
If you also intend to build binutils (either to upgrade an existing
|
|
|
|
installation or for use in place of the corresponding tools of your
|
|
|
|
OS), unpack the binutils distribution either in the same directory or
|
|
|
|
a separate one. In the latter case, add symbolic links to any
|
|
|
|
components of the binutils you intend to build alongside the compiler
|
|
|
|
(bfd, binutils, gas, gprof, ld, opcodes,...) to the directory containing
|
|
|
|
the GCC sources.
|
|
|
|
|
|
|
|
@html
|
|
|
|
<hr>
|
|
|
|
<p>
|
|
|
|
@end html
|
|
|
|
@ifhtml
|
|
|
|
@uref{./index.html,,Return to the GCC Installation page}
|
|
|
|
@end ifhtml
|
|
|
|
@end ifset
|
|
|
|
|
|
|
|
@c ***Configuration***********************************************************
|
|
|
|
@ifinfo
|
|
|
|
@comment node-name, next, previous, up
|
|
|
|
@node Configuration, Building, Downloading the source, Installing GCC
|
|
|
|
@end ifinfo
|
|
|
|
@ifset configurehtml
|
|
|
|
@html
|
|
|
|
<h1 align="center">Installing GCC: Configuration</h1>
|
|
|
|
@end html
|
|
|
|
@ifnothtml
|
|
|
|
@chapter Installing GCC: Configuration
|
|
|
|
@end ifnothtml
|
|
|
|
@cindex Configuration
|
|
|
|
@cindex Installing GCC: Configuration
|
|
|
|
|
|
|
|
Like most GNU software, GCC must be configured before it can be built.
|
|
|
|
This document describes the recommended configuration procedure
|
|
|
|
for both native and cross targets.
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
We use @var{srcdir} to refer to the toplevel source directory for
|
|
|
|
GCC; we use @var{objdir} to refer to the toplevel build/object directory.
|
|
|
|
|
|
|
|
If you obtained the sources via CVS, @var{srcdir} must refer to the top
|
|
|
|
@file{gcc} directory, the one where the @file{MAINTAINERS} can be found,
|
|
|
|
and not its @file{gcc} subdirectory, otherwise the build will fail.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
First, we @strong{highly} recommend that GCC be built into a
|
|
|
|
separate directory than the sources which does @strong{not} reside
|
|
|
|
within the source tree. This is how we generally build GCC; building
|
2001-06-01 20:08:19 +02:00
|
|
|
where @var{srcdir} == @var{objdir} should still work, but doesn't
|
|
|
|
get extensive testing; building where @var{objdir} is a subdirectory
|
|
|
|
of @var{srcdir} is unsupported.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
Second, when configuring a native system, either @command{cc} or
|
|
|
|
@command{gcc} must be in your path or you must set @env{CC} in
|
2001-05-16 16:57:06 +02:00
|
|
|
your environment before running configure. Otherwise the configuration
|
|
|
|
scripts may fail.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
To configure GCC:
|
|
|
|
|
|
|
|
@example
|
2001-06-01 20:08:19 +02:00
|
|
|
% mkdir @var{objdir}
|
|
|
|
% cd @var{objdir}
|
2001-06-02 20:21:37 +02:00
|
|
|
% @var{srcdir}/configure [@var{target}] [@var{options}]
|
2001-05-12 00:10:54 +02:00
|
|
|
@end example
|
|
|
|
|
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading Target specification
|
2001-05-12 00:10:54 +02:00
|
|
|
@itemize @bullet
|
|
|
|
@item
|
2001-06-01 20:08:19 +02:00
|
|
|
GCC has code to correctly determine the correct value for @var{target}
|
2001-05-12 00:10:54 +02:00
|
|
|
for nearly all native systems. Therefore, we highly recommend you not
|
|
|
|
provide a configure target when configuring a native compiler.
|
|
|
|
|
|
|
|
@item
|
2001-06-01 20:08:19 +02:00
|
|
|
@var{target} must be specified as @option{--target=}@var{target}
|
2001-05-12 00:10:54 +02:00
|
|
|
when configuring a cross compiler; examples of valid targets would be
|
|
|
|
i960-rtems, m68k-coff, sh-elf, etc.
|
|
|
|
|
|
|
|
@item
|
2001-06-01 20:08:19 +02:00
|
|
|
Specifying just @var{target} instead of @option{--target=}@var{target}
|
|
|
|
implies that the host defaults to @var{target}.
|
2001-05-12 00:10:54 +02:00
|
|
|
@end itemize
|
|
|
|
|
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading Options specification
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
Use @var{options} to override several configure time options for
|
|
|
|
GCC. A partial list of supported @var{options}:
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@table @code
|
|
|
|
@item --prefix=@var{dirname}
|
|
|
|
Specify the toplevel installation
|
2001-05-12 00:10:54 +02:00
|
|
|
directory. This is the recommended way to install the tools into a directory
|
|
|
|
other than the default. The toplevel installation directory defaults to
|
|
|
|
@code{/usr/local}.
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
We @strong{highly} recommend against @var{dirname} being the same or a
|
|
|
|
subdirectory of @var{objdir} or vice versa.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
These additional options control where certain parts of the distribution
|
|
|
|
are installed. Normally you should not need to use these options.
|
2001-06-02 20:21:37 +02:00
|
|
|
@table @code
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --with-gxx-include-dir=@var{dirname}
|
|
|
|
Specify
|
2001-06-01 20:08:19 +02:00
|
|
|
the installation directory for g++ header files. The default is
|
|
|
|
@file{/usr/local/include/g++}.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@end table
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --with-local-prefix=@var{dirname}
|
|
|
|
Specify the
|
2001-06-02 15:59:52 +02:00
|
|
|
installation directory for local include files. The default is
|
|
|
|
@file{/usr/local}. Specify this option if you want the compiler to
|
|
|
|
search directory @file{@var{dirname}/include} for locally installed
|
|
|
|
header files @emph{instead} of @file{/usr/local/include}.
|
|
|
|
|
|
|
|
You should specify @option{--with-local-prefix} @strong{only} if your
|
|
|
|
site has a different convention (not @file{/usr/local}) for where to put
|
|
|
|
site-specific files.
|
|
|
|
|
|
|
|
The default value for @option{--with-local-prefix} is @file{/usr/local}
|
|
|
|
regardless of the value of @option{--prefix}. Specifying
|
|
|
|
@option{--prefix} has no effect on which directory GCC searches for
|
|
|
|
local header files. This may seem counterintuitive, but actually it is
|
|
|
|
logical.
|
|
|
|
|
|
|
|
The purpose of @option{--prefix} is to specify where to @emph{install
|
|
|
|
GCC}. The local header files in @file{/usr/local/include}---if you put
|
|
|
|
any in that directory---are not part of GCC. They are part of other
|
|
|
|
programs---perhaps many others. (GCC installs its own header files in
|
|
|
|
another directory which is based on the @option{--prefix} value.)
|
|
|
|
|
|
|
|
@strong{Do not} specify @file{/usr} as the @option{--with-local-prefix}!
|
|
|
|
The directory you use for @option{--with-local-prefix} @strong{must not}
|
|
|
|
contain any of the system's standard header files. If it did contain
|
|
|
|
them, certain programs would be miscompiled (including GNU Emacs, on
|
|
|
|
certain targets), because this would override and nullify the header
|
|
|
|
file corrections made by the @code{fixincludes} script.
|
|
|
|
|
|
|
|
Indications are that people who use this option use it based on mistaken
|
|
|
|
ideas of what it is for. People use it as if it specified where to
|
|
|
|
install part of GCC. Perhaps they make this assumption because
|
|
|
|
installing GCC creates the directory.
|
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --enable-shared
|
|
|
|
Build shared versions of the
|
2001-06-01 20:08:19 +02:00
|
|
|
C++ runtime libraries if supported. This is the default on most
|
|
|
|
systems. Use @option{--disable-shared} for static libraries. Note that
|
|
|
|
up to the gcc version 2.95.x series, static libraries were the default
|
|
|
|
on all systems.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item @anchor{with-gnu-as}--with-gnu-as
|
|
|
|
Specify that the compiler should assume that the
|
2001-06-01 20:08:19 +02:00
|
|
|
assembler it finds is the GNU assembler. However, this does not modify
|
|
|
|
the rules to find an assembler and will result in confusion if found
|
|
|
|
assembler is not actually the GNU assembler. If you have more than one
|
|
|
|
assembler installed on your system, you may want to use this option in
|
|
|
|
connection with @option{--with-as=@file{/path/to/gas}}.
|
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --with-as=@file{/path/to/as}
|
|
|
|
Specify that the
|
2001-06-01 20:08:19 +02:00
|
|
|
compiler should use the assembler pointed to by @var{pathname}, rather
|
|
|
|
than the one found by the standard rules to find an assembler, which
|
|
|
|
are:
|
2001-05-12 00:10:54 +02:00
|
|
|
@itemize @bullet
|
|
|
|
@item
|
2001-06-01 20:08:19 +02:00
|
|
|
Check the
|
|
|
|
@file{@var{exec_prefix}/lib/gcc-lib/@var{target}/@var{version}}
|
|
|
|
directory, where @var{exec_prefix} defaults to @var{prefix} which
|
|
|
|
defaults to @file{/usr/local} unless overridden by the
|
|
|
|
@option{--prefix=/pathname} switch described above. @var{target} is the
|
|
|
|
target system triple, such as @var{sparc-sun-solaris2.7}, and
|
|
|
|
@var{version} denotes the GCC version, such as 2.95.2.
|
2001-05-12 00:10:54 +02:00
|
|
|
@item
|
2001-06-01 20:08:19 +02:00
|
|
|
Check operating system specific directories (e.g. @file{/usr/ccs/bin} on
|
|
|
|
Sun Solaris).
|
2001-05-12 00:10:54 +02:00
|
|
|
@end itemize
|
2001-06-01 20:08:19 +02:00
|
|
|
Note that these rules do not check for the value of @env{PATH}. You may
|
|
|
|
want to use @option{--with-as} if no assembler is installed in the
|
|
|
|
directories listed above, or if you have multiple assemblers installed
|
|
|
|
and want to choose one that is not found by the above rules.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item @anchor{with-gnu-ld}--with-gnu-ld
|
|
|
|
Same as @uref{#with-gnu-as,,@option{--with-gnu-as}}
|
2001-06-01 20:08:19 +02:00
|
|
|
but for linker.
|
2001-05-31 10:15:15 +02:00
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --with-ld=@file{/path/to/ld}
|
|
|
|
Same as
|
2001-06-01 20:08:19 +02:00
|
|
|
@option{--with-as}, but for the linker.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --with-stabs
|
|
|
|
Specify that stabs debugging
|
2001-06-01 20:08:19 +02:00
|
|
|
information should be used instead of whatever format the host normally
|
|
|
|
uses. Normally GCC uses the same debug format as the host system.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --enable-multilib
|
|
|
|
Specify that multiple target
|
2001-06-01 20:08:19 +02:00
|
|
|
libraries should be built to support different target variants, calling
|
|
|
|
conventions, etc. This is the default.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --enable-threads
|
|
|
|
Specify that the target
|
2001-06-01 20:08:19 +02:00
|
|
|
supports threads. This affects the Objective-C compiler and runtime
|
|
|
|
library, and exception handling for other languages like C++ and Java.
|
2001-06-02 15:59:52 +02:00
|
|
|
On some systems, this is the default.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --enable-threads=@var{lib}
|
|
|
|
Specify that
|
2001-06-01 20:08:19 +02:00
|
|
|
@var{lib} is the thread support library. This affects the Objective-C
|
|
|
|
compiler and runtime library, and exception handling for other languages
|
2001-06-02 15:59:52 +02:00
|
|
|
like C++ and Java. The possibilities for @var{lib} are @samp{aix},
|
|
|
|
@samp{dce}, @samp{decosf1}, @samp{irix}, @samp{mach}, @samp{os2},
|
|
|
|
@samp{posix}, @samp{pthreads}, @samp{single}, @samp{solaris},
|
|
|
|
@samp{vxworks} and @samp{win32}.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --with-cpu=@var{cpu}
|
|
|
|
Specify which cpu variant the
|
2001-05-12 00:10:54 +02:00
|
|
|
compiler should generate code for by default. This is currently
|
|
|
|
only supported on the some ports, specifically arm, powerpc, and
|
|
|
|
SPARC. If configure does not recognize the model name (e.g. arm700,
|
|
|
|
603e, or ultrasparc) you provide, please check the configure script
|
|
|
|
for a complete list of supported models.
|
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --enable-target-optspace
|
|
|
|
Specify that target
|
2001-06-01 20:08:19 +02:00
|
|
|
libraries should be optimized for code space instead of code speed.
|
|
|
|
This is the default for the m32r platform.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --enable-cpp
|
|
|
|
Specify that a shell script which
|
2001-06-01 20:08:19 +02:00
|
|
|
emulates traditional cpp functionality should be installed.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --enable-cpplib
|
|
|
|
Specify that the functionality of
|
2001-05-12 00:10:54 +02:00
|
|
|
CPP should be integrated into the compiler itself. This option is
|
|
|
|
not supported by snapshots since November 2000. In snapshots where
|
|
|
|
it is supported, it is not enabled by default, except for snapshots
|
|
|
|
very close to November 2000.
|
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --enable-maintainer-mode
|
|
|
|
The build rules that
|
2001-06-02 15:59:52 +02:00
|
|
|
regenerate the GCC master message catalog @code{gcc.pot} are normally
|
|
|
|
disabled. This is because it can only be rebuilt if the complete source
|
|
|
|
tree is present. If you have changed the sources and want to rebuild the
|
|
|
|
catalog, configuring with @option{--enable-maintainer-mode} will enable
|
|
|
|
this. Note that you need a recent version of the @code{gettext} tools
|
|
|
|
to do so.
|
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --without-fast-fixincludes
|
|
|
|
Specify that the
|
2001-06-01 20:08:19 +02:00
|
|
|
old, slower method of fixing the system header files should be used.
|
2001-05-12 00:10:54 +02:00
|
|
|
EGCS 1.1.x and older releases default to the slow version. GCC 2.95 and
|
|
|
|
newer releases will default to the fast version.
|
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --enable-version-specific-runtime-libs
|
|
|
|
Specify
|
2001-06-01 20:08:19 +02:00
|
|
|
that runtime libraries should be installed in the compiler specific
|
|
|
|
subdirectory (@file{@var{libsubdir}}) rather than the usual places. In
|
|
|
|
addition, libstdc++'s include files will be installed in
|
|
|
|
@file{@var{libsubdir}/include/g++} unless you overruled it by using
|
|
|
|
@option{--with-gxx-include-dir=}@var{dirname}. Using this option is
|
|
|
|
particularly useful if you intend to use several versions of GCC in
|
|
|
|
parallel. This is currently supported by @option{libf2c} and
|
|
|
|
@option{libstdc++}.
|
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --enable-languages=@var{lang1},@var{lang2},@dots{}
|
|
|
|
Specify that only a particular subset of compilers and
|
2001-06-01 20:08:19 +02:00
|
|
|
their runtime libraries should be built. For a list of valid values for
|
|
|
|
@var{lang}@option{x} you can issue the following command in the
|
|
|
|
@file{gcc} directory of your GCC source tree:@* @samp{grep language=
|
|
|
|
*/config-lang.in}@* Currently, you can use any of the following:
|
|
|
|
@code{c++}, @code{f77}, @code{java} and @code{objc}.
|
2001-05-12 00:10:54 +02:00
|
|
|
@code{CHILL} is not currently maintained, and will almost
|
|
|
|
certainly fail to compile. Note that this switch does not work with
|
|
|
|
EGCS 1.1.2 or older versions of egcs. It is supported in GCC 2.95
|
|
|
|
and newer versions.@*
|
2001-06-01 20:08:19 +02:00
|
|
|
If you do not pass this flag, all languages available in the @file{gcc}
|
|
|
|
sub-tree will be configured. Re-defining LANGUAGES when calling
|
2001-06-02 20:21:37 +02:00
|
|
|
@samp{make bootstrap} @strong{does not} work anymore, as those
|
2001-06-01 20:08:19 +02:00
|
|
|
language sub-directories might not have been configured!
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --disable-libgcj
|
|
|
|
Specify that the run-time libraries
|
2001-05-12 00:10:54 +02:00
|
|
|
used by GCJ should not be built. This is useful in case you intend
|
|
|
|
to use GCJ with some other run-time, or you're going to install it
|
|
|
|
separately, or it just happens not to build on your particular
|
|
|
|
machine. In general, if the Java front-end is enabled, the GCJ
|
|
|
|
libraries will be enabled too, unless they're known to not work on
|
|
|
|
the target platform. If GCJ is enabled but libgcj isn't built, you
|
|
|
|
may need to port it; in this case, before modifying the top-level
|
|
|
|
configure.in so that libgcj is enabled by default on this platform,
|
|
|
|
you may use @option{--enable-libgcj} to override the default.
|
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --with-dwarf2
|
|
|
|
Specify that the compiler should
|
2001-06-01 20:08:19 +02:00
|
|
|
use DWARF2 debugging information as the default.
|
2001-06-02 20:21:37 +02:00
|
|
|
@end table
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
Some options which only apply to building cross compilers:
|
2001-06-02 20:21:37 +02:00
|
|
|
@table @code
|
|
|
|
@item --with-headers=@var{dir}
|
|
|
|
Specifies a directory
|
2001-06-01 20:08:19 +02:00
|
|
|
which has target include files.
|
2001-05-12 00:10:54 +02:00
|
|
|
@emph{This options is required} when building a cross
|
2001-06-01 20:08:19 +02:00
|
|
|
compiler, if @file{@var{prefix}/@var{target}/sys-include} doesn't pre-exist.
|
|
|
|
These include files will be copied into the @file{gcc} install directory.
|
|
|
|
Fixincludes will be run on these files to make them compatible with
|
|
|
|
@command{gcc}.
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}''
|
2001-06-01 20:08:19 +02:00
|
|
|
Specifies a list of directories which contain the target runtime
|
|
|
|
libraries. These libraries will be copied into the @file{gcc} install
|
|
|
|
directory.
|
2001-06-02 20:21:37 +02:00
|
|
|
@item --with-newlib
|
|
|
|
Specifies that ``newlib'' is
|
2001-06-01 20:08:19 +02:00
|
|
|
being used as the target C library. This causes @code{__eprintf} to be
|
|
|
|
omitted from libgcc.a on the assumption that it will be provided by
|
|
|
|
newlib.
|
2001-06-02 20:21:37 +02:00
|
|
|
@end table
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
Note that each @option{--enable} option has a corresponding
|
|
|
|
@option{--disable} option and that each @option{--with} option has a
|
|
|
|
corresponding @option{--without} option.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
@html
|
|
|
|
<hr>
|
|
|
|
<p>
|
|
|
|
@end html
|
|
|
|
@ifhtml
|
|
|
|
@uref{./index.html,,Return to the GCC Installation page}
|
|
|
|
@end ifhtml
|
|
|
|
@end ifset
|
|
|
|
|
|
|
|
@c ***Building****************************************************************
|
|
|
|
@ifinfo
|
|
|
|
@comment node-name, next, previous, up
|
|
|
|
@node Building, Testing, Configuration, Installing GCC
|
|
|
|
@end ifinfo
|
|
|
|
@ifset buildhtml
|
|
|
|
@html
|
|
|
|
<h1 align="center">Installing GCC: Building</h1>
|
|
|
|
@end html
|
|
|
|
@ifnothtml
|
|
|
|
@chapter Building
|
|
|
|
@end ifnothtml
|
|
|
|
@cindex Installing GCC: Building
|
|
|
|
|
|
|
|
Now that GCC is configured, you are ready to build the compiler and
|
|
|
|
runtime libraries.
|
|
|
|
|
|
|
|
We @strong{highly} recommend that GCC be built using GNU make;
|
|
|
|
other versions may work, then again they might not.
|
|
|
|
|
|
|
|
(For example, many broken versions of make will fail if you use the
|
2001-06-03 00:33:30 +02:00
|
|
|
recommended setup where @var{objdir} is different from @var{srcdir}.
|
|
|
|
Other broken versions may recompile parts of the compiler when
|
|
|
|
installing the compiler.)
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
Some commands executed when making the compiler may fail (return a
|
|
|
|
non-zero status) and be ignored by @code{make}. These failures, which
|
|
|
|
are often due to files that were not found, are expected, and can safely
|
|
|
|
be ignored.
|
|
|
|
|
|
|
|
It is normal to have compiler warnings when compiling certain files.
|
|
|
|
Unless you are a GCC developer, you can generally ignore these warnings
|
|
|
|
unless they cause compilation to fail.
|
|
|
|
|
|
|
|
On certain old systems, defining certain environment variables such as
|
|
|
|
@code{CC} can interfere with the functioning of @code{make}.
|
|
|
|
|
|
|
|
If you encounter seemingly strange errors when trying to build the
|
|
|
|
compiler in a directory other than the source directory, it could be
|
|
|
|
because you have previously configured the compiler in the source
|
|
|
|
directory. Make sure you have done all the necessary preparations.
|
|
|
|
|
|
|
|
If you build GCC on a BSD system using a directory stored in an old System
|
|
|
|
V file system, problems may occur in running @code{fixincludes} if the
|
|
|
|
System V file system doesn't support symbolic links. These problems
|
|
|
|
result in a failure to fix the declaration of @code{size_t} in
|
|
|
|
@file{sys/types.h}. If you find that @code{size_t} is a signed type and
|
|
|
|
that type mismatches occur, this could be the cause.
|
|
|
|
|
|
|
|
The solution is not to use such a directory for building GCC.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
@section Building a native compiler
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
For a native build issue the command @samp{make bootstrap}. This
|
2001-05-12 00:10:54 +02:00
|
|
|
will build the entire GCC system, which includes the following steps:
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
|
|
|
Build host tools necessary to build the compiler such as texinfo, bison,
|
|
|
|
gperf.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Build target tools for use by the compiler such as binutils (bfd,
|
|
|
|
binutils, gas, gprof, ld, and opcodes)@*
|
|
|
|
if they have been individually linked
|
|
|
|
or moved into the top level GCC source tree before configuring.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Perform a 3-stage bootstrap of the compiler.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Perform a comparison test of the stage2 and stage3 compilers.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Build runtime libraries using the stage3 compiler from the previous step.
|
|
|
|
|
|
|
|
@end itemize
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
If you are short on disk space you might consider @samp{make
|
|
|
|
bootstrap-lean} instead. This is identical to @samp{make
|
|
|
|
bootstrap} except that object files from the stage1 and
|
2001-05-12 00:10:54 +02:00
|
|
|
stage2 of the 3-stage bootstrap of the compiler are deleted as
|
|
|
|
soon as they are no longer needed.
|
|
|
|
|
|
|
|
|
|
|
|
If you want to save additional space during the bootstrap and in
|
|
|
|
the final installation as well, you can build the compiler binaries
|
2001-06-01 20:08:19 +02:00
|
|
|
without debugging information with @samp{make CFLAGS='-O' LIBCFLAGS='-g
|
|
|
|
-O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap}. This will save
|
2001-05-12 00:10:54 +02:00
|
|
|
roughly 40% of disk space both for the bootstrap and the final installation.
|
|
|
|
(Libraries will still contain debugging information.)
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
If you used the flag @option{--enable-languages=...} to restrict
|
2001-05-12 00:10:54 +02:00
|
|
|
the compilers to be built, only those you've actually enabled will be
|
|
|
|
built. This will of course only build those runtime libraries, for
|
|
|
|
which the particular compiler has been built. Please note,
|
2001-06-01 20:08:19 +02:00
|
|
|
that re-defining LANGUAGES when calling @samp{make bootstrap}
|
2001-06-02 20:21:37 +02:00
|
|
|
@strong{does not} work anymore!
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
@section Building a cross compiler
|
|
|
|
|
|
|
|
We recommend reading the
|
|
|
|
@uref{http://www.objsw.com/CrossGCC/,,crossgcc FAQ}
|
|
|
|
for information about building cross compilers.
|
|
|
|
|
|
|
|
When building a cross compiler, it is not generally possible to do a
|
|
|
|
3-stage bootstrap of the compiler. This makes for an interesting problem
|
|
|
|
as parts of GCC can only be built with GCC.
|
|
|
|
|
|
|
|
To build a cross compiler, we first recommend building and installing a
|
|
|
|
native compiler. You can then use the native GCC compiler to build the
|
|
|
|
cross compiler.
|
|
|
|
|
|
|
|
Assuming you have already installed a native copy of GCC and configured
|
2001-06-01 20:08:19 +02:00
|
|
|
your cross compiler, issue the command @samp{make}, which performs the
|
2001-05-12 00:10:54 +02:00
|
|
|
following steps:
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
|
|
|
Build host tools necessary to build the compiler such as texinfo, bison,
|
|
|
|
gperf.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Build target tools for use by the compiler such as binutils (bfd,
|
|
|
|
binutils, gas, gprof, ld, and opcodes)
|
|
|
|
if they have been individually linked or moved into the top level GCC source
|
|
|
|
tree before configuring.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Build the compiler (single stage only).
|
|
|
|
|
|
|
|
@item
|
|
|
|
Build runtime libraries using the compiler from the previous step.
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
Note that if an error occurs in any step the make process will exit.
|
|
|
|
|
|
|
|
@section Building in parallel
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
If you have a multiprocessor system you can use @samp{make bootstrap
|
|
|
|
MAKE="make -j 2" -j 2} or just @samp{make -j 2 bootstrap}
|
|
|
|
for GNU Make 3.79 and above instead of just @samp{make bootstrap}
|
2001-05-12 00:10:54 +02:00
|
|
|
when building GCC. You can use a bigger number instead of two if
|
|
|
|
you like. In most cases, it won't help to use a number bigger than
|
|
|
|
the number of processors in your machine.
|
|
|
|
|
|
|
|
@html
|
|
|
|
<hr>
|
|
|
|
<p>
|
|
|
|
@end html
|
|
|
|
@ifhtml
|
|
|
|
@uref{./index.html,,Return to the GCC Installation page}
|
|
|
|
@end ifhtml
|
|
|
|
@end ifset
|
|
|
|
|
|
|
|
@c ***Testing*****************************************************************
|
|
|
|
@ifinfo
|
|
|
|
@comment node-name, next, previous, up
|
|
|
|
@node Testing, Final install, Building, Installing GCC
|
|
|
|
@end ifinfo
|
|
|
|
@ifset testhtml
|
|
|
|
@html
|
|
|
|
<h1 align="center">Installing GCC: Testing</h1>
|
|
|
|
@end html
|
|
|
|
@ifnothtml
|
|
|
|
@chapter Installing GCC: Testing
|
|
|
|
@end ifnothtml
|
|
|
|
@cindex Testing
|
|
|
|
@cindex Installing GCC: Testing
|
|
|
|
@cindex Testsuite
|
|
|
|
|
|
|
|
@strong{Please note that this is only applicable
|
|
|
|
to current development versions of GCC and GCC 3.0 or later.
|
|
|
|
GCC 2.95.x does not come with a testsuite.}
|
|
|
|
|
|
|
|
Before you install GCC, you might wish to run the testsuite. This
|
|
|
|
step is optional and may require you to download additional software.
|
|
|
|
|
|
|
|
First, you must have @uref{download.html,,downloaded the testsuites}.
|
|
|
|
The full distribution contains testsuites; only if you downloaded the
|
|
|
|
``core'' compiler plus any front ends, you do not have the testsuites.
|
|
|
|
|
|
|
|
Second, you must have a @uref{http://www.gnu.org/software/dejagnu/,,current version of DejaGnu} installed;
|
|
|
|
dejagnu 1.3 is not sufficient.
|
|
|
|
|
|
|
|
Now you may need specific preparations:
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
|
|
|
In order to run the libio tests on targets which do not fully
|
|
|
|
support Unix/POSIX commands (e.g. Cygwin), the references to the dbz
|
|
|
|
directory have to be deleted from @code{libio/configure.in}.
|
|
|
|
|
|
|
|
@item
|
|
|
|
The following environment variables must be set appropriately, as in
|
|
|
|
the following example (which assumes that DejaGnu has been installed
|
|
|
|
under @code{/usr/local}):
|
|
|
|
|
|
|
|
@example
|
|
|
|
TCL_LIBRARY = /usr/local/share/tcl8.0
|
|
|
|
DEJAGNULIBS = /usr/local/share/dejagnu
|
|
|
|
@end example
|
|
|
|
|
|
|
|
On systems such as Cygwin, these paths are required to be actual
|
|
|
|
paths, not mounts or links; presumably this is due to some lack of
|
|
|
|
portability in the DejaGnu code.
|
|
|
|
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
Finally, you can run the testsuite (which may take a long time):
|
|
|
|
@example
|
2001-06-02 20:21:37 +02:00
|
|
|
cd @var{objdir}; make -k check
|
2001-05-12 00:10:54 +02:00
|
|
|
@end example
|
|
|
|
|
|
|
|
The testing process will try to test as many components in the GCC
|
|
|
|
distribution as possible, including the C, C++ and Fortran compilers as
|
|
|
|
well as the C++ runtime libraries.
|
|
|
|
|
|
|
|
@section How can I run the test suite on selected tests?
|
|
|
|
|
|
|
|
As a first possibility to cut down the number of tests that are run it is
|
2001-06-01 20:08:19 +02:00
|
|
|
possible to use @samp{make check-gcc} or @samp{make check-g++}
|
2001-05-12 00:10:54 +02:00
|
|
|
in the gcc subdirectory of the object directory. To further cut down the
|
|
|
|
tests the following is possible:
|
|
|
|
|
|
|
|
@example
|
|
|
|
make check-gcc RUNTESTFLAGS="execute.exp <other options>"
|
|
|
|
@end example
|
|
|
|
|
|
|
|
This will run all gcc execute tests in the testsuite.
|
|
|
|
|
|
|
|
@example
|
|
|
|
make check-g++ RUNTESTFLAGS="old-deja.exp=9805* <other options>"
|
|
|
|
@end example
|
|
|
|
|
|
|
|
This will run the g++ "old-deja" tests in the testsuite where the filename
|
|
|
|
matches 9805*.
|
|
|
|
|
|
|
|
The *.exp files are located in the testsuite directories of the GCC
|
|
|
|
source, the most important ones being compile.exp, execute.exp, dg.exp
|
|
|
|
and old-deja.exp. To get a list of the possible *.exp files, pipe the
|
2001-06-01 20:08:19 +02:00
|
|
|
output of @samp{make check} into a file and look at the
|
|
|
|
@samp{Running ... .exp} lines.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
@section How to interpret test results
|
|
|
|
|
|
|
|
After the testsuite has run you'll find various *.sum and *.log
|
|
|
|
files in the testsuite subdirectories. The *.log files contain a
|
|
|
|
detailed log of the compiler invocations and the corresponding
|
|
|
|
results, the *.sum files summarize the results. These summaries list
|
|
|
|
all the tests that have been run with a corresponding status code:
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
|
|
|
PASS: the test passed as expected
|
|
|
|
@item
|
|
|
|
XPASS: the test unexpectedly passed
|
|
|
|
@item
|
|
|
|
FAIL: the test unexpectedly failed
|
|
|
|
@item
|
|
|
|
XFAIL: the test failed as expected
|
|
|
|
@item
|
|
|
|
UNSUPPORTED: the test is not supported on this platform
|
|
|
|
@item
|
|
|
|
ERROR: the testsuite detected an error
|
|
|
|
@item
|
|
|
|
WARNING: the testsuite detected a possible problem
|
|
|
|
@end itemize
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
It is normal for some tests to report unexpected failures. At the
|
|
|
|
current time our testing harness does not allow fine grained control
|
|
|
|
over whether or not a test is expected to fail. We expect to fix this
|
|
|
|
problem in future releases.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
@section Submitting test results
|
|
|
|
|
|
|
|
If you want to report the results to the GCC project, use the
|
2001-06-02 20:21:37 +02:00
|
|
|
@code{contrib/test_summary} shell script. Start it in the @var{objdir} with
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
@example
|
2001-06-02 20:21:37 +02:00
|
|
|
@var{srcdir}/contrib/test_summary -p your_commentary.txt -m gcc-testresults@@gcc.gnu.org |sh
|
2001-05-12 00:10:54 +02:00
|
|
|
@end example
|
|
|
|
|
|
|
|
This script uses the @code{Mail} program to send the results, so
|
|
|
|
make sure it is in your @env{PATH}. The file @file{your_commentary.txt} is
|
|
|
|
prepended to the testsuite summary and should contain any special
|
|
|
|
remarks you have on your results or your build environment. Please
|
|
|
|
do not edit the testsuite result block or the subject line, as these
|
|
|
|
messages are automatically parsed and presented at the
|
|
|
|
@uref{http://gcc.gnu.org/testresults/,,GCC testresults} web
|
|
|
|
page. Here you can also gather information on how specific tests
|
|
|
|
behave on different platforms and compare them with your results. A
|
|
|
|
few failing testcases are possible even on released versions and you
|
|
|
|
should look here first if you think your results are unreasonable.
|
|
|
|
|
|
|
|
@end ifset
|
|
|
|
|
|
|
|
@c ***Final install***********************************************************
|
|
|
|
@ifinfo
|
|
|
|
@comment node-name, next, previous, up
|
|
|
|
@node Final install, , Testing, Installing GCC
|
|
|
|
@end ifinfo
|
|
|
|
@ifset finalinstallhtml
|
|
|
|
@html
|
|
|
|
<h1 align="center">Installing GCC: Final installation</h1>
|
|
|
|
@end html
|
|
|
|
@ifnothtml
|
|
|
|
@chapter Installing GCC: Final installation
|
|
|
|
@end ifnothtml
|
|
|
|
|
|
|
|
Now that GCC has been built and tested, you can install it with
|
2001-06-02 20:21:37 +02:00
|
|
|
@samp{cd @var{objdir}; make install} for a native compiler or
|
|
|
|
@samp{cd @var{objdir}; make install LANGUAGES="c c++"} for
|
2001-05-12 00:10:54 +02:00
|
|
|
a cross compiler (note installing cross compilers will be easier in the
|
|
|
|
next release!).
|
|
|
|
|
|
|
|
That step completes the installation of GCC; user level binaries can
|
2001-06-01 20:08:19 +02:00
|
|
|
be found in @file{@var{prefix}/bin} where @var{prefix} is the value you
|
|
|
|
specified with the @option{--prefix} to configure (or @file{/usr/local}
|
|
|
|
by default).
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
If you don't mind, please quickly review the
|
|
|
|
@uref{http://gcc.gnu.org/gcc-2.95/buildstat.html,,build status page}.
|
|
|
|
If your system is not listed, send a note to
|
|
|
|
@uref{mailto:gcc@@gcc.gnu.org,,gcc@@gcc.gnu.org} indicating
|
|
|
|
that you successfully built and installed GCC.
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
Include the output from running @file{@var{srcdir}/config.guess}. (Do not
|
2001-05-12 00:10:54 +02:00
|
|
|
send us the config.guess file itself, just the output from running
|
|
|
|
it!)
|
|
|
|
|
|
|
|
If you find a bug, please report it following our
|
|
|
|
@uref{../bugs.html,,bug reporting guidelines}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
<hr>
|
|
|
|
<p>
|
|
|
|
@end html
|
|
|
|
@ifhtml
|
|
|
|
@uref{./index.html,,Return to the GCC Installation page}
|
|
|
|
@end ifhtml
|
|
|
|
@end ifset
|
|
|
|
|
|
|
|
@c ***Binaries****************************************************************
|
|
|
|
@ifinfo
|
|
|
|
@comment node-name, next, previous, up
|
|
|
|
@node Binaries, Specific, Installing GCC, Top
|
|
|
|
@end ifinfo
|
|
|
|
@ifset binarieshtml
|
|
|
|
@html
|
|
|
|
<h1 align="center">Installing GCC: Binaries</h1>
|
|
|
|
@end html
|
|
|
|
@ifnothtml
|
|
|
|
@chapter Installing GCC: Binaries
|
|
|
|
@end ifnothtml
|
|
|
|
@cindex Binaries
|
|
|
|
@cindex Installing GCC: Binaries
|
|
|
|
|
|
|
|
We are often asked about pre-compiled versions of GCC. While we cannot
|
|
|
|
provide these for all platforms, below you'll find links to binaries for
|
|
|
|
various platforms where creating them by yourself is not easy due to various
|
|
|
|
reasons.
|
|
|
|
|
|
|
|
Please note that we did not create these binaries, nor do we
|
|
|
|
support them. If you have any problems installing them, please
|
|
|
|
contact their makers.
|
|
|
|
|
|
|
|
@itemize
|
|
|
|
@item
|
2001-05-16 16:57:06 +02:00
|
|
|
AIX:
|
|
|
|
@itemize
|
|
|
|
@item
|
2001-06-01 20:08:19 +02:00
|
|
|
@uref{http://www-frec.bull.com/docs/download.htm,,Bull's Freeware and
|
|
|
|
Shareware Archive for AIX};
|
2001-05-16 16:57:06 +02:00
|
|
|
|
|
|
|
@item
|
|
|
|
@uref{http://aixpdlib.seas.ucla.edu,,UCLA Software Library for AIX};
|
|
|
|
@end itemize
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
@item
|
|
|
|
DOS - @uref{http://www.delorie.com/djgpp/,,DJGPP};
|
|
|
|
|
|
|
|
@item
|
|
|
|
@uref{http://hpux.cae.wisc.edu/,,HP-UX Porting Center};
|
|
|
|
|
|
|
|
@item
|
2001-06-01 20:08:19 +02:00
|
|
|
@uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO
|
|
|
|
OpenServer/Unixware};
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
@item
|
|
|
|
Solaris (SPARC, Intel) - @uref{http://www.sunfreeware.com/,,Sunfreeware};
|
|
|
|
|
|
|
|
@item
|
|
|
|
SGI - @uref{http://freeware.sgi.com/,,SGI Freeware};
|
|
|
|
|
|
|
|
@item
|
|
|
|
Windows 95, 98, and NT:
|
|
|
|
@itemize
|
|
|
|
@item
|
|
|
|
The @uref{http://sources.redhat.com/cygwin/,,Cygwin} project;
|
|
|
|
@item
|
|
|
|
@uref{http://www.xraylith.wisc.edu/~khan/software/gnu-win32/,,GNU Win32}
|
|
|
|
related projects by Mumit Khan.
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
@item
|
|
|
|
@uref{ftp://ftp.thewrittenword.com/packages/free/by-name/gcc-2.95.2/,,The
|
|
|
|
Written Word} offers binaries for Solaris 2.5.1, 2.6, 2.7/SPARC, 2.7/Intel,
|
|
|
|
IRIX 6.2, 6.5, Digital UNIX 4.0D, HP-UX 10.20, and HP-UX 11.00.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Hitachi H8/300[HS] -
|
|
|
|
@uref{http://h8300-hms.sourceforge.net/,,GNU Development Tools for the
|
|
|
|
Hitachi H8/300[HS] Series}
|
|
|
|
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
In addition to those specific offerings, you can get a binary
|
|
|
|
distribution CD-ROM from the
|
|
|
|
@uref{http://www.fsf.org/order/order.html,,Free Software Foundation}.
|
|
|
|
It contains binaries for a number of platforms, and
|
|
|
|
includes not only GCC, but other stuff as well. The current CD does
|
|
|
|
not contain the latest version of GCC, but it should allow
|
|
|
|
bootstrapping the compiler. An updated version of that disk is in the
|
|
|
|
works.
|
|
|
|
|
|
|
|
@html
|
|
|
|
<hr>
|
|
|
|
<p>
|
|
|
|
@end html
|
|
|
|
@ifhtml
|
|
|
|
@uref{./index.html,,Return to the GCC Installation page}
|
|
|
|
@end ifhtml
|
|
|
|
@end ifset
|
|
|
|
|
|
|
|
@c ***Specific****************************************************************
|
|
|
|
@ifinfo
|
|
|
|
@comment node-name, next, previous, up
|
|
|
|
@node Specific, Concept Index, Binaries, Top
|
|
|
|
@end ifinfo
|
|
|
|
@ifset specifichtml
|
|
|
|
@html
|
|
|
|
<h1 align="center">Host/target specific installation notes for GCC</h1>
|
|
|
|
@end html
|
|
|
|
@ifnothtml
|
|
|
|
@chapter Host/target specific installation notes for GCC
|
|
|
|
@end ifnothtml
|
|
|
|
@cindex Specific
|
|
|
|
@cindex Specific installation notes
|
|
|
|
@cindex Target specific installation
|
|
|
|
@cindex Host specific installation
|
|
|
|
@cindex Target specific installation notes
|
|
|
|
|
|
|
|
Please read this document carefully @emph{before} installing the
|
|
|
|
GNU Compiler Collection on your machine.
|
|
|
|
|
2001-06-02 20:21:37 +02:00
|
|
|
@ifhtml
|
2001-05-12 00:10:54 +02:00
|
|
|
@itemize
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#1750a-*-*,,1750a-*-*}
|
|
|
|
@item
|
|
|
|
@uref{#a29k,,a29k}
|
|
|
|
@item
|
|
|
|
@uref{#a29k-*-bsd,,a29k-*-bsd}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#alpha*-dec-linux*,,alpha*-dec-linux*}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#alpha-*-osf1,,alpha-*-osf1}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#alpha*-dec-osf*,,alpha*-dec-osf*}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#arc-*-elf,,arc-*-elf}
|
|
|
|
@item
|
|
|
|
@uref{#arm-*-aout,,arm-*-aout}
|
|
|
|
@item
|
|
|
|
@uref{#arm-*-elf,,arm-*-elf}
|
|
|
|
@item
|
2001-05-24 23:16:41 +02:00
|
|
|
@uref{#arm*-*-linux-gnu,,arm*-*-linux-gnu}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#arm-*-riscix,,arm-*-riscix}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#avr,,avr}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#decstation-*,,decstation-*}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#dos,,DOS}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#dsp16xx,,dsp16xx}
|
|
|
|
@item
|
|
|
|
@uref{#elxsi-elxsi-bsd,,elxsi-elxsi-bsd}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#h8300-hms,,h8300-hms}
|
|
|
|
@item
|
|
|
|
@uref{#hppa*-hp-hpux*,,hppa*-hp-hpux*}
|
|
|
|
@item
|
|
|
|
@uref{#hppa*-hp-hpux9,,hppa*-hp-hpux9}
|
|
|
|
@item
|
|
|
|
@uref{#hppa*-hp-hpux10,,hppa*-hp-hpux10}
|
|
|
|
@item
|
|
|
|
@uref{#hppa*-hp-hpux11,,hppa*-hp-hpux11}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#i370-*-*,,i370-*-*}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#*-*-linux-gnu,,*-*-linux-gnu}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#ix86-*-linux*oldld,,i?86-*-linux*oldld}
|
|
|
|
@item
|
|
|
|
@uref{#ix86-*-linux*aout,,i?86-*-linux*aout}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#ix86-*-linux*,,i?86-*-linux*}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#ix86-*-sco,,i?86-*-sco}
|
|
|
|
@item
|
|
|
|
@uref{#ix86-*-sco3.2v4,,i?86-*-sco3.2v4}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#ix86-*-sco3.2v5*,,i?86-*-sco3.2v5*}
|
|
|
|
@item
|
|
|
|
@uref{#ix86-*-solaris*,,i?86-*-solaris*}
|
|
|
|
@item
|
|
|
|
@uref{#ix86-*-udk,,i?86-*-udk}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#ix86-*-isc,,i?86-*-isc}
|
|
|
|
@item
|
|
|
|
@uref{#ix86-*-esix,,i?86-*-esix}
|
|
|
|
@item
|
|
|
|
@uref{#ix86-ibm-aix,,i?86-ibm-aix}
|
|
|
|
@item
|
|
|
|
@uref{#ix86-sequent-bsd,,i?86-sequent-bsd}
|
|
|
|
@item
|
|
|
|
@uref{#ix86-sequent-ptx1*,,i?86-sequent-ptx1*, i?86-sequent-ptx2*}
|
|
|
|
@item
|
|
|
|
@uref{#ix86-*-sysv3*,,i?86-*-sysv3*}
|
|
|
|
@item
|
|
|
|
@uref{#i860-intel-osf*,,i860-intel-osf*}
|
|
|
|
@item
|
|
|
|
@uref{#*-lynx-lynxos,,*-lynx-lynxos}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#*-ibm-aix*,,*-ibm-aix*}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#m32r-*-elf,,m32r-*-elf}
|
|
|
|
@item
|
|
|
|
@uref{#m68000-hp-bsd,,m68000-hp-bsd}
|
|
|
|
@item
|
|
|
|
@uref{#m6811-elf,,m6811-elf}
|
|
|
|
@item
|
|
|
|
@uref{#m6812-elf,,m6812-elf}
|
|
|
|
@item
|
|
|
|
@uref{#m68k-altos,,m68k-altos}
|
|
|
|
@item
|
|
|
|
@uref{#m68k-apple-aux,,m68k-apple-aux}
|
|
|
|
@item
|
|
|
|
@uref{#m68k-att-sysv,,m68k-att-sysv}
|
|
|
|
@item
|
|
|
|
@uref{#m68k-bull-sysv,,m68k-bull-sysv}
|
|
|
|
@item
|
|
|
|
@uref{#m68k-crds-unox,,m68k-crds-unox}
|
|
|
|
@item
|
|
|
|
@uref{#m68k-hp-hpux,,m68k-hp-hpux}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#m68k-*-nextstep*,,m68k-*-nextstep*}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#m68k-ncr-*,,m68k-ncr-*}
|
|
|
|
@item
|
|
|
|
@uref{#m68k-sun,,m68k-sun}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#m68k-sun-sunos4.1.1,,m68k-sun-sunos4.1.1}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#m88k-*-svr3,,m88k-*-svr3}
|
|
|
|
@item
|
|
|
|
@uref{#m88k-*-dgux,,m88k-*-dgux}
|
|
|
|
@item
|
|
|
|
@uref{#m88k-tektronix-sysv3,,m88k-tektronix-sysv3}
|
|
|
|
@item
|
|
|
|
@uref{#mips-*-*,,mips-*-*}
|
|
|
|
@item
|
|
|
|
@uref{#mips-mips-bsd,,mips-mips-bsd}
|
|
|
|
@item
|
|
|
|
@uref{#mips-mips-riscos*,,mips-mips-riscos*}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#mips*-sgi-irix[45],,mips*-sgi-irix[45]}
|
|
|
|
@item
|
|
|
|
@uref{#mips*-sgi-irix6,,mips*-sgi-irix6}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#mips-sony-sysv,,mips-sony-sysv}
|
|
|
|
@item
|
|
|
|
@uref{#ns32k-encore,,ns32k-encore}
|
|
|
|
@item
|
|
|
|
@uref{#ns32k-*-genix,,ns32k-*-genix}
|
|
|
|
@item
|
|
|
|
@uref{#ns32k-sequent,,ns32k-sequent}
|
|
|
|
@item
|
|
|
|
@uref{#ns32k-utek,,ns32k-utek}
|
|
|
|
@item
|
|
|
|
@uref{#powerpc-*-elf,,powerpc-*-elf, powerpc-*-sysv4}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#powerpc-*-linux-gnu*,,powerpc-*-linux-gnu*}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#powerpc-*-eabiaix,,powerpc-*-eabiaix}
|
|
|
|
@item
|
|
|
|
@uref{#powerpc-*-eabisim,,powerpc-*-eabisim}
|
|
|
|
@item
|
|
|
|
@uref{#powerpc-*-eabi,,powerpc-*-eabi}
|
|
|
|
@item
|
|
|
|
@uref{#powerpcle-*-elf,,powerpcle-*-elf, powerpcle-*-sysv4}
|
|
|
|
@item
|
|
|
|
@uref{#powerpcle-*-eabisim,,powerpcle-*-eabisim}
|
|
|
|
@item
|
|
|
|
@uref{#powerpcle-*-eabi,,powerpcle-*-eabi}
|
|
|
|
@item
|
|
|
|
@uref{#powerpcle-*-winnt,,powerpcle-*-winnt, powerpcle-*-pe}
|
|
|
|
@item
|
|
|
|
@uref{#romp-*-aos,,romp-*-aos, romp-*-mach}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#*-*-solaris*,,*-*-solaris*}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#sparc-sun-*,,sparc-sun-*}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#sparc-sun-solaris*,,sparc-sun-solaris*}
|
|
|
|
@item
|
|
|
|
@uref{#sparc-sun-solaris2.7,,sparc-sun-solaris2.7}
|
|
|
|
@item
|
|
|
|
@uref{#*-sun-solaris2.8,,*-sun-solaris2.8}
|
|
|
|
@item
|
|
|
|
@uref{#sunv5,,Sun V5.0 Compiler Bugs}
|
|
|
|
@item
|
|
|
|
@uref{#sparc-sun-sunos*,,sparc-sun-sunos*}
|
|
|
|
@item
|
|
|
|
@uref{#sparc-unknown-linux-gnulibc1,,sparc-unknown-linux-gnulibc1}
|
|
|
|
@item
|
|
|
|
@uref{#sparc64-*-*,,sparc64-*-*}
|
|
|
|
@item
|
2001-06-03 00:33:30 +02:00
|
|
|
@uref{#*-*-sysv*,,*-*-sysv*}
|
|
|
|
@item
|
|
|
|
@uref{#vax-dec-ultrix,,vax-dec-ultrix}
|
|
|
|
@item
|
|
|
|
@uref{#we32k-*-*,,we32k-*-*}
|
|
|
|
@item
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{#windows,,Microsoft Windows}
|
|
|
|
@item
|
|
|
|
@uref{#os2,,OS/2}
|
|
|
|
@item
|
|
|
|
@uref{#older,,Older systems}
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
@itemize
|
|
|
|
@item
|
|
|
|
@uref{#elf_targets,,all ELF targets} (SVR4, Solaris, etc.)
|
|
|
|
@end itemize
|
2001-06-02 20:21:37 +02:00
|
|
|
@end ifhtml
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
<!-- -------- host/target specific issues start here ---------------- -->
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-03 00:33:30 +02:00
|
|
|
@heading @anchor{1750a-*-*}1750a-*-*
|
|
|
|
MIL-STD-1750A processors.
|
|
|
|
|
|
|
|
The MIL-STD-1750A cross configuration produces output for
|
|
|
|
@code{as1750}, an assembler/linker available under the GNU Public
|
|
|
|
License for the 1750A. @code{as1750} can be obtained at
|
|
|
|
@uref{ftp://ftp.fta-berlin.de/pub/crossgcc/1750gals/}.
|
|
|
|
A similarly licensed simulator for
|
|
|
|
the 1750A is available from same address.
|
|
|
|
|
|
|
|
You should ignore a fatal error during the building of libgcc (libgcc is
|
|
|
|
not yet implemented for the 1750A.)
|
|
|
|
|
|
|
|
The @code{as1750} assembler requires the file @file{ms1750.inc}, which is
|
|
|
|
found in the directory @file{config/1750a}.
|
|
|
|
|
|
|
|
GNU CC produced the same sections as the Fairchild F9450 C Compiler,
|
|
|
|
namely:
|
|
|
|
|
|
|
|
@table @code
|
|
|
|
@item Normal
|
|
|
|
The program code section.
|
|
|
|
|
|
|
|
@item Static
|
|
|
|
The read/write (RAM) data section.
|
|
|
|
|
|
|
|
@item Konst
|
|
|
|
The read-only (ROM) constants section.
|
|
|
|
|
|
|
|
@item Init
|
|
|
|
Initialization section (code to copy KREL to SREL).
|
|
|
|
@end table
|
|
|
|
|
|
|
|
The smallest addressable unit is 16 bits (BITS_PER_UNIT is 16). This
|
|
|
|
means that type `char' is represented with a 16-bit word per character.
|
|
|
|
The 1750A's "Load/Store Upper/Lower Byte" instructions are not used by
|
|
|
|
GNU CC.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{a29k}a29k
|
|
|
|
AMD Am29k-family processors. These are normally used in embedded
|
|
|
|
applications. There are no standard Unix configurations.
|
|
|
|
This configuration
|
|
|
|
corresponds to AMD's standard calling sequence and binary interface
|
|
|
|
and is compatible with other 29k tools.
|
|
|
|
|
|
|
|
You may need to make a variant of the file @file{a29k.h} for your
|
|
|
|
particular configuration.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{a29k-*-bsd}a29k-*-bsd
|
|
|
|
AMD Am29050 used in a system running a variant of BSD Unix.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{alpha*-dec-linux*}alpha*-dec-linux*
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-05-23 23:33:30 +02:00
|
|
|
We require binutils 2.11 or newer. Previous binutils releases
|
|
|
|
had a number of problems with DWARF2 debugging information, not
|
|
|
|
the least of which is incorrect linking of shared libraries.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{alpha-*-osf1}alpha-*-osf1
|
|
|
|
Systems using processors that implement the DEC Alpha architecture and
|
|
|
|
are running the DEC Unix (OSF/1) operating system, for example the DEC
|
|
|
|
Alpha AXP systems.CC.)
|
|
|
|
|
|
|
|
GNU CC writes a @samp{.verstamp} directive to the assembler output file
|
|
|
|
unless it is built as a cross-compiler. It gets the version to use from
|
|
|
|
the system header file @file{/usr/include/stamp.h}. If you install a
|
|
|
|
new version of DEC Unix, you should rebuild GCC to pick up the new version
|
|
|
|
stamp.
|
|
|
|
|
|
|
|
Note that since the Alpha is a 64-bit architecture, cross-compilers from
|
|
|
|
32-bit machines will not generate code as efficient as that generated
|
|
|
|
when the compiler is running on a 64-bit machine because many
|
|
|
|
optimizations that depend on being able to represent a word on the
|
|
|
|
target in an integral value on the host cannot be performed. Building
|
|
|
|
cross-compilers on the Alpha for 32-bit machines has only been tested in
|
|
|
|
a few cases and may not work properly.
|
|
|
|
|
|
|
|
@code{make compare} may fail on old versions of DEC Unix unless you add
|
|
|
|
@samp{-save-temps} to @code{CFLAGS}. On these systems, the name of the
|
|
|
|
assembler input file is stored in the object file, and that makes
|
|
|
|
comparison fail if it differs between the @code{stage1} and
|
|
|
|
@code{stage2} compilations. The option @samp{-save-temps} forces a
|
|
|
|
fixed name to be used for the assembler input file, instead of a
|
|
|
|
randomly chosen name in @file{/tmp}. Do not add @samp{-save-temps}
|
|
|
|
unless the comparisons fail without that option. If you add
|
|
|
|
@samp{-save-temps}, you will have to manually delete the @samp{.i} and
|
|
|
|
@samp{.s} files after each series of compilations.
|
|
|
|
|
|
|
|
GNU CC now supports both the native (ECOFF) debugging format used by DBX
|
|
|
|
and GDB and an encapsulated STABS format for use only with GDB. See the
|
|
|
|
discussion of the @samp{--with-stabs} option of @file{configure} above
|
|
|
|
for more information on these formats and how to select them.
|
|
|
|
|
|
|
|
There is a bug in DEC's assembler that produces incorrect line numbers
|
|
|
|
for ECOFF format when the @samp{.align} directive is used. To work
|
|
|
|
around this problem, GNU CC will not emit such alignment directives
|
|
|
|
while writing ECOFF format debugging information even if optimization is
|
|
|
|
being performed. Unfortunately, this has the very undesirable
|
|
|
|
side-effect that code addresses when @samp{-O} is specified are
|
|
|
|
different depending on whether or not @samp{-g} is also specified.
|
|
|
|
|
|
|
|
To avoid this behavior, specify @samp{-gstabs+} and use GDB instead of
|
|
|
|
DBX. DEC is now aware of this problem with the assembler and hopes to
|
|
|
|
provide a fix shortly.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{alpha*-dec-osf*}alpha*-dec-osf*
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
If you install a shared libstdc++ and, when you link a non-trivial C++
|
2001-06-01 20:08:19 +02:00
|
|
|
program (for example, @file{gcc/testsuite/g++.other/delete3.C}),
|
2001-05-12 00:10:54 +02:00
|
|
|
the linker reports a couple of errors about multiply-defined symbols
|
|
|
|
(for example, @code{nothrow}, @code{__throw} and
|
|
|
|
@code{terminate(void)}), you've probably got a linker bug, for
|
|
|
|
which there's no known fix. The officially recommended work-around is
|
|
|
|
to remove the shared libstdc++.
|
|
|
|
|
|
|
|
An alternative solution is to arrange that all symbols from
|
|
|
|
@code{libgcc} get copied to the shared @code{libstdc++};
|
|
|
|
see detailed solution below. (Surprising as it may seem, this does
|
|
|
|
indeed fix the problem!) @emph{Beware} that this may bring you
|
|
|
|
binary-compatibility problems in the future, if you don't use the same
|
|
|
|
work-around next time you build @code{libstdc++}: if programs
|
|
|
|
start to depend on @code{libstdc++} to provide symbols that used
|
|
|
|
to be only in @code{libgcc}, you must arrange that
|
|
|
|
@code{libstdc++} keeps providing them, otherwise the programs
|
|
|
|
will have to be relinked.
|
|
|
|
|
|
|
|
The magic spell is to add @code{-Wl,-all,-lgcc,-none} to the
|
|
|
|
definition of macro @code{SHDEPS} in
|
2001-06-01 20:08:19 +02:00
|
|
|
@file{libstdc++/config/dec-osf.ml} @emph{before}
|
|
|
|
@file{alpha*-dec-osf*/libstdc++/Makefile} is created (a
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{dec-osf-shlibstdc++.patch,,patch}
|
|
|
|
that does just that is available). If the Makefile already exists, run
|
2001-06-01 20:08:19 +02:00
|
|
|
@file{./config.status} within directory
|
|
|
|
@file{alpha*-dec-osf*/libstdc++} (and
|
|
|
|
@file{alpha*-dec-osf*/ieee/libstdc++}, if it also exists).
|
|
|
|
Remove any existing @file{libstdc++.so*} from such directories,
|
|
|
|
and run @samp{make all-target-libstdc++} in the top-level
|
|
|
|
directory, then @samp{make install-target-libstdc++}.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
If you have already removed the build tree, you may just remove
|
2001-06-01 20:08:19 +02:00
|
|
|
@file{libstdc++.so.2.10.0} from the install tree and re-create
|
2001-05-12 00:10:54 +02:00
|
|
|
it with the command
|
2001-06-01 20:08:19 +02:00
|
|
|
@samp{gcc -shared -o libstdc++.so.2.10.0 -Wl,-all,-lstdc++,-lgcc,-none -lm}.
|
|
|
|
If the @file{ieee}
|
2001-05-12 00:10:54 +02:00
|
|
|
sub-directory exists, repeat this command in it, with the additional
|
2001-06-01 20:08:19 +02:00
|
|
|
flag @option{-mieee}.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{arc-*-elf}arc-*-elf
|
|
|
|
Argonaut ARC processor.
|
|
|
|
This configuration is intended for embedded systems.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{arm-*-aout}arm-*-aout
|
|
|
|
Advanced RISC Machines ARM-family processors. These are often used in
|
|
|
|
embedded applications. There are no standard Unix configurations.
|
|
|
|
This configuration corresponds to the basic instruction sequences and will
|
|
|
|
produce @file{a.out} format object modules.
|
|
|
|
|
|
|
|
You may need to make a variant of the file @file{arm.h} for your particular
|
|
|
|
configuration.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{arm-*-elf}arm-*-elf
|
|
|
|
This configuration is intended for embedded systems.
|
|
|
|
|
2001-05-24 23:16:41 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{arm*-*-linux-gnu}arm*-*-linux-gnu
|
2001-05-24 23:16:41 +02:00
|
|
|
|
|
|
|
We require GNU binutils 2.10 or newer.
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{arm-*-riscix}arm-*-riscix
|
|
|
|
The ARM2 or ARM3 processor running RISC iX, Acorn's port of BSD Unix.
|
|
|
|
If you are running a version of RISC iX prior to 1.2 then you must
|
|
|
|
specify the version number during configuration. Note that the
|
|
|
|
assembler shipped with RISC iX does not support stabs debugging
|
|
|
|
information; a new version of the assembler, with stabs support
|
|
|
|
included, is now available from Acorn and via ftp
|
|
|
|
@uref{ftp://ftp.acorn.com/pub/riscix/as+xterm.tar.Z}. To enable stabs
|
|
|
|
debugging, pass @samp{--with-gnu-as} to configure.
|
|
|
|
|
|
|
|
You will need to install GNU @file{sed} before you can run configure.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{avr}avr
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
ATMEL AVR-family micro controllers. These are used in embedded
|
|
|
|
applications. There are no standard Unix configurations. @xref{AVR
|
|
|
|
Options,, AVR Options, gcc, Using and Porting the GNU Compiler
|
|
|
|
Collection (GCC)}, for the list of supported MCU types.
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
Use @samp{configure --target=avr}
|
2001-05-12 00:10:54 +02:00
|
|
|
@option{--enable-languages="c"}' to configure GCC.
|
|
|
|
|
|
|
|
Further installation notes and other useful information about AVR tools
|
|
|
|
can also be obtained from:
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
|
|
|
@uref{http://home.overta.ru/users/denisc,,http://home.overta.ru/users/denisc}
|
|
|
|
@item
|
|
|
|
@uref{http://www.itnet.pl/amelektr/avr,,http://www.itnet.pl/amelektr/avr}
|
|
|
|
@end itemize
|
|
|
|
|
2001-05-31 10:15:15 +02:00
|
|
|
We @emph{strongly} recommend using binutils 2.11 or newer.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
The following error:
|
|
|
|
@example
|
|
|
|
Error: register required
|
|
|
|
@end example
|
|
|
|
|
|
|
|
indicates that you should upgrade to a newer version of the binutils.
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{decstation-*}decstation-*
|
|
|
|
MIPS-based DECstations can support three different personalities:
|
|
|
|
Ultrix, DEC OSF/1, and OSF/rose. (Alpha-based DECstation products have
|
|
|
|
a configuration name beginning with @samp{alpha-dec}.) To configure GCC
|
|
|
|
for these platforms use the following configurations:
|
|
|
|
|
|
|
|
@table @samp
|
|
|
|
@item decstation-ultrix
|
|
|
|
Ultrix configuration.
|
|
|
|
|
|
|
|
@item decstation-osf1
|
|
|
|
Dec's version of OSF/1.
|
|
|
|
|
|
|
|
@item decstation-osfrose
|
|
|
|
Open Software Foundation reference port of OSF/1 which uses the
|
|
|
|
OSF/rose object file format instead of ECOFF. Normally, you
|
|
|
|
would not select this configuration.
|
|
|
|
@end table
|
|
|
|
|
|
|
|
The MIPS C compiler needs to be told to increase its table size
|
|
|
|
for switch statements with the @samp{-Wf,-XNg1500} option in
|
|
|
|
order to compile @file{cp/parse.c}. If you use the @samp{-O2}
|
|
|
|
optimization option, you also need to use @samp{-Olimit 3000}.
|
|
|
|
Both of these options are automatically generated in the
|
|
|
|
@file{Makefile} that the shell script @file{configure} builds.
|
|
|
|
If you override the @code{CC} make variable and use the MIPS
|
|
|
|
compilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{dos}DOS
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
Please have a look at our @uref{binaries.html,,binaries page}.
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{dsp16xx}dsp16xx
|
|
|
|
A port to the AT&T DSP1610 family of processors.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{elxsi-elxsi-bsd}elxsi-elxsi-bsd
|
|
|
|
The Elxsi's C compiler has known limitations that prevent it from
|
|
|
|
compiling GNU C. Please contact @email{mrs@@cygnus.com} for more details.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{h8300-hms}h8300-hms
|
2001-06-03 00:33:30 +02:00
|
|
|
Hitachi H8/300 series of processors.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
Please have a look at our @uref{binaries.html,,binaries page}.
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
The calling convention and structure layout has changed in release 2.6.
|
|
|
|
All code must be recompiled. The calling convention now passes the
|
|
|
|
first three arguments in function calls in registers. Structures are no
|
|
|
|
longer a multiple of 2 bytes.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{hppa*-hp-hpux*}hppa*-hp-hpux*
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
We @emph{highly} recommend using gas/binutils-2.8 or newer on all hppa
|
|
|
|
platforms; you may encounter a variety of problems when using the HP
|
|
|
|
assembler.
|
|
|
|
|
|
|
|
Specifically, @option{-g} does not work on HP-UX (since that system
|
|
|
|
uses a peculiar debugging format which GCC does not know about), unless you
|
2001-06-01 20:08:19 +02:00
|
|
|
use GAS and GDB and configure GCC with the
|
|
|
|
@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}} and
|
|
|
|
@option{--with-as=...} options.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
If you wish to use pa-risc 2.0 architecture support, you must use either
|
2001-05-31 10:15:15 +02:00
|
|
|
the HP assembler, gas/binutils-2.11 or a recent
|
2001-05-12 00:10:54 +02:00
|
|
|
@uref{ftp://sources.redhat.com/pub/binutils/snapshots,,snapshot of gas}.
|
|
|
|
|
|
|
|
More specific information to hppa*-hp-hpux* targets follows.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{hppa*-hp-hpux9}hppa*-hp-hpux9
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
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 GCC will also trigger a bug in the hpux9
|
2001-06-01 20:08:19 +02:00
|
|
|
shell. To avoid this problem set @env{CONFIG_SHELL} to @file{/bin/ksh}
|
|
|
|
and @env{SHELL} to @file{/bin/ksh} in your environment.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{hppa*-hp-hpux10}hppa*-hp-hpux10
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
For hpux10.20, we @emph{highly} recommend you pick up the latest sed patch
|
|
|
|
@code{PHCO_19798} from HP. HP has two sites which provide patches free of
|
|
|
|
charge:
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
|
|
|
@html
|
|
|
|
<a href="http://us-support.external.hp.com">US, Canada, Asia-Pacific, and
|
|
|
|
Latin-America</a>
|
|
|
|
@end html
|
|
|
|
@ifnothtml
|
|
|
|
@uref{http://us-support.external.hp.com,,}US, Canada, Asia-Pacific, and
|
|
|
|
Latin-America
|
|
|
|
@end ifnothtml
|
|
|
|
@item
|
|
|
|
@uref{http://europe-support.external.hp.com,,Europe}
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
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
|
2001-06-01 20:08:19 +02:00
|
|
|
during a @samp{make bootstrap}. You should be able to continue by
|
|
|
|
saying @samp{make all} after getting the failure from @samp{make
|
|
|
|
bootstrap}.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{hppa*-hp-hpux11}hppa*-hp-hpux11
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
GCC 2.95.2 does not support HP-UX 11, and it cannot generate 64-bit
|
|
|
|
object files. Current (as of late 2000) snapshots and GCC 3.0 do support
|
|
|
|
HP-UX 11.
|
|
|
|
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{i370-*-*}i370-*-*
|
|
|
|
This port is very preliminary and has many known bugs. We hope to
|
|
|
|
have a higher-quality port for this machine soon.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{*-*-linux-gnu}*-*-linux-gnu
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
If you use glibc 2.2 (or 2.1.9x), GCC 2.95.2 won't install
|
|
|
|
out-of-the-box. You'll get compile errors while building libstdc++.
|
|
|
|
The patch @uref{glibc-2.2.patch,,glibc-2.2.patch}, that is to be
|
|
|
|
applied in the GCC source tree, fixes the compatibility problems.
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ix86-*-linux*oldld}i?86-*-linux*oldld
|
|
|
|
Use this configuration to generate @file{a.out} binaries on Linux-based
|
|
|
|
GNU systems if you do not have gas/binutils version 2.5.2 or later
|
|
|
|
installed. This is an obsolete configuration.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ix86-*-linux*aout}i?86-*-linux*aout
|
|
|
|
Use this configuration to generate @file{a.out} binaries on Linux-based
|
|
|
|
GNU systems. This configuration is being superseded. You must use
|
|
|
|
gas/binutils version 2.5.2 or later.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{ix86-*-linux*}i?86-*-linux*
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
You will need binutils-2.9.1.0.15 or newer for exception handling to work.
|
|
|
|
|
|
|
|
If you receive Signal 11 errors when building on GNU/Linux, then it is
|
|
|
|
possible you have a hardware problem. Further information on this can be
|
|
|
|
found on @uref{http://www.bitwizard.nl/sig11/,,www.bitwizard.nl}.
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ix86-*-sco}i?86-*-sco
|
|
|
|
Compilation with RCC is recommended. Also, it may be a good idea to
|
|
|
|
link with GNU malloc instead of the malloc that comes with the system.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ix86-*-sco3.2v4}i?86-*-sco3.2v4
|
|
|
|
Use this configuration for SCO release 3.2 version 4.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{ix86-*-sco3.2v5*}i?86-*-sco3.2v5*
|
2001-06-03 00:33:30 +02:00
|
|
|
Use this for the SCO OpenServer Release 5 family of operating systems.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
Unlike earlier versions of GCC, the ability to generate COFF with this
|
|
|
|
target is no longer provided.
|
|
|
|
|
|
|
|
Earlier versions of GCC emitted Dwarf-1 when generating ELF to allow
|
|
|
|
the system debugger to be used. That support was too burdensome to
|
|
|
|
maintain. GCC now emits only dwarf-2 for this target. This means you
|
|
|
|
may use either the UDK debugger or GDB to debug programs built by this
|
|
|
|
version of GCC.
|
|
|
|
|
|
|
|
If you are building languages other than C, you must follow the instructions
|
2001-06-01 20:08:19 +02:00
|
|
|
about invoking @samp{make bootstrap} because the native OpenServer
|
|
|
|
compiler will build a @command{cc1plus} that will not correctly parse many
|
|
|
|
valid C++ programs including those in @file{libgcc.a}.
|
|
|
|
@strong{You must do a @samp{make bootstrap} if you are building with the
|
2001-05-12 00:10:54 +02:00
|
|
|
native compiler.}
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
Use of the @option{-march-pentiumpro} flag can result in
|
2001-05-12 00:10:54 +02:00
|
|
|
unrecognized opcodes when using the native assembler on OS versions before
|
|
|
|
5.0.6. (Support for P6 opcodes was added to the native ELF assembler in
|
|
|
|
that version.) While it's rather rare to see these emitted by GCC yet,
|
|
|
|
errors of the basic form:
|
|
|
|
|
|
|
|
@example
|
|
|
|
/usr/tmp/ccaNlqBc.s:22:unknown instruction: fcomip
|
|
|
|
/usr/tmp/ccaNlqBc.s:50:unknown instruction: fucomip
|
|
|
|
@end example
|
|
|
|
|
|
|
|
are symptoms of this problem. You may work around this by not
|
|
|
|
building affected files with that flag, by using the GNU assembler, or
|
|
|
|
by using the assembler provided with the current version of the OS.
|
|
|
|
Users of GNU assembler should see the note below for hazards on doing
|
|
|
|
so.
|
|
|
|
|
|
|
|
The native SCO assembler that is provided with the OS at no
|
|
|
|
charge is normally required. If, however, you must be able to use
|
|
|
|
the GNU assembler (perhaps you're compiling code with asms that
|
|
|
|
require GAS syntax) you may configure this package using the flags
|
2001-06-01 20:08:19 +02:00
|
|
|
@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}}. You must
|
|
|
|
use a recent version of GNU binutils; versions past 2.9.1 seem to work
|
|
|
|
well.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
In general, the @option{--with-gnu-as} option isn't as well tested
|
|
|
|
as the native assembler.
|
|
|
|
|
|
|
|
Look in @file{gcc/config/i386/sco5.h} (search for "messy") for
|
|
|
|
additional OpenServer-specific flags.
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
Systems based on OpenServer before 5.0.4 (@samp{uname -X}
|
2001-05-12 00:10:54 +02:00
|
|
|
will tell you what you're running) require TLS597 from ftp.sco.com/TLS
|
|
|
|
for C++ constructors and destructors to work right.
|
|
|
|
|
|
|
|
The system linker in (at least) 5.0.4 and 5.0.5 will sometimes
|
|
|
|
do the wrong thing for a construct that GCC will emit for PIC
|
|
|
|
code. This can be seen as execution testsuite failures when using
|
|
|
|
-fPIC on 921215-1.c, 931002-1.c, nestfunc-1.c, and gcov-1.c.
|
|
|
|
For 5.0.5, an updated linker that will cure this problem is
|
|
|
|
available. You must install both
|
2001-06-01 20:08:19 +02:00
|
|
|
@uref{ftp://ftp.sco.com/Supplements/rs505a/,,ftp://ftp.sco.com/Supplements/rs505a/}
|
2001-05-12 00:10:54 +02:00
|
|
|
and @uref{ftp://ftp.sco.com/SLS/,,OSS499A}.
|
|
|
|
|
|
|
|
The dynamic linker in OpenServer 5.0.5 (earlier versions may show
|
|
|
|
the same problem) aborts on certain g77-compiled programs. It's particularly
|
|
|
|
likely to be triggered by building Fortran code with the @option{-fPIC} flag.
|
|
|
|
Although it's conceivable that the error could be triggered by other
|
|
|
|
code, only G77-compiled code has been observed to cause this abort.
|
|
|
|
If you are getting core dumps immediately upon execution of your
|
|
|
|
g77 program - and especially if it's compiled with -fPIC - try applying
|
2001-06-01 20:08:19 +02:00
|
|
|
@uref{sco_osr5_g77.patch,,@file{sco_osr5_g77.patch}} to your libf2c and
|
2001-05-12 00:10:54 +02:00
|
|
|
rebuilding GCC.
|
|
|
|
Affected faults, when analyzed in a debugger, will show a stack
|
|
|
|
backtrace with a fault occurring in @code{rtld()} and the program
|
2001-06-01 20:08:19 +02:00
|
|
|
running as @file{/usr/lib/ld.so.1}. This problem has been reported to SCO
|
2001-05-12 00:10:54 +02:00
|
|
|
engineering and will hopefully be addressed in later releases.
|
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{ix86-*-solaris*}i?86-*-solaris*
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
GCC 2.95.2, when configured to use the GNU assembler, would invoke
|
|
|
|
it with the @code{-s} switch, that GNU as up to 2.9.5.0.12 does
|
|
|
|
not support. If you'd rather not use a newer GNU as nor the native
|
|
|
|
assembler, you'll need the patch
|
2001-06-01 20:08:19 +02:00
|
|
|
@uref{x86-sol2-gas.patch,,@file{x86-sol2-gas.patch}}.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{ix86-*-udk}i?86-*-udk
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
This target emulates the SCO Universal Development Kit and requires that
|
|
|
|
package be installed. (If it is installed, you will have a
|
|
|
|
@file{/udk/usr/ccs/bin/cc } file present.) It's very much like the
|
|
|
|
@code{i?86-*-unixware7*} target
|
|
|
|
but is meant to be used when hosting on a system where UDK isn't the
|
|
|
|
default compiler such as OpenServer 5 or Unixware 2. This target will
|
|
|
|
generate binaries that will run on OpenServer, Unixware 2, or Unixware 7,
|
|
|
|
with the same warnings and caveats as the SCO UDK.
|
|
|
|
|
|
|
|
You can stage1 with either your native compiler or with UDK. If you
|
|
|
|
don't do a full bootstrap when initially building with your native compiler
|
|
|
|
you will have an utterly unusable pile of bits as your reward.
|
|
|
|
|
|
|
|
This target is a little tricky to build because we have to distinguish
|
|
|
|
it from the native tools (so it gets headers, startups, and libraries
|
|
|
|
from the right place) while making the tools not think we're actually
|
|
|
|
building a cross compiler. The easiest way to do this is with a configure
|
|
|
|
command like this:
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
@samp{CC=/udk/usr/ccs/bin/cc <i>/your/path/to/</i>gcc/configure
|
2001-05-12 00:10:54 +02:00
|
|
|
--host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-}
|
|
|
|
|
|
|
|
@emph{You should substitute 'i686' in the above command with the appropriate
|
|
|
|
processor for your host.}
|
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
You should follow this with a @samp{make bootstrap} then
|
|
|
|
@samp{make install}. You can then access the UDK-targeted GCC
|
|
|
|
tools by adding @command{udk-} before the commonly known name. For
|
|
|
|
example, to invoke the C compiler, you would use @command{udk-gcc}.
|
|
|
|
They will coexist peacefully with any native-target GCC tools you may
|
|
|
|
have installed.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ix86-*-isc}i?86-*-isc
|
|
|
|
It may be a good idea to link with GNU malloc instead of the malloc that
|
|
|
|
comes with the system.
|
|
|
|
|
|
|
|
In ISC version 4.1, @file{sed} core dumps when building
|
|
|
|
@file{deduced.h}. Use the version of @file{sed} from version 4.0.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ix86-*-esix}i?86-*-esix
|
|
|
|
It may be good idea to link with GNU malloc instead of the malloc that
|
|
|
|
comes with the system.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ix86-ibm-aix}i?86-ibm-aix
|
|
|
|
You need to use GAS version 2.1 or later, and LD from
|
|
|
|
GNU binutils version 2.2 or later.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ix86-sequent-bsd}i?86-sequent-bsd
|
|
|
|
Go to the Berkeley universe before compiling.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ix86-sequent-ptx1*}i?86-sequent-ptx1*, i?86-sequent-ptx2*
|
|
|
|
You must install GNU @file{sed} before running @file{configure}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{#ix86-*-sysv3*}i?86-*-sysv3*
|
|
|
|
The @code{fixproto} shell script may trigger a bug in the system shell.
|
|
|
|
If you encounter this problem, upgrade your operating system or
|
|
|
|
use BASH (the GNU shell) to run @code{fixproto}.
|
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{i860-intel-osf*}i860-intel-osf*
|
|
|
|
On the Intel Paragon (an i860 machine), if you are using operating
|
|
|
|
system version 1.0, you will get warnings or errors about redefinition
|
|
|
|
of @code{va_arg} when you build GCC.
|
|
|
|
|
|
|
|
If this happens, then you need to link most programs with the library
|
|
|
|
@file{iclib.a}. You must also modify @file{stdio.h} as follows: before
|
|
|
|
the lines
|
|
|
|
|
|
|
|
@example
|
|
|
|
#if defined(__i860__) && !defined(_VA_LIST)
|
|
|
|
#include <va_list.h>
|
|
|
|
@end example
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
insert the line
|
|
|
|
|
|
|
|
@example
|
|
|
|
#if __PGC__
|
|
|
|
@end example
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
and after the lines
|
|
|
|
|
|
|
|
@example
|
|
|
|
extern int vprintf(const char *, va_list );
|
|
|
|
extern int vsprintf(char *, const char *, va_list );
|
|
|
|
#endif
|
|
|
|
@end example
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
insert the line
|
|
|
|
|
|
|
|
@example
|
|
|
|
#endif /* __PGC__ */
|
|
|
|
@end example
|
|
|
|
|
|
|
|
These problems don't exist in operating system version 1.1.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{*-lynx-lynxos}*-lynx-lynxos
|
|
|
|
LynxOS 2.2 and earlier comes with GNU CC 1.x already installed as
|
|
|
|
@file{/bin/gcc}. You should compile with this instead of @file{/bin/cc}.
|
|
|
|
You can tell GNU CC to use the GNU assembler and linker, by specifying
|
|
|
|
@samp{--with-gnu-as --with-gnu-ld} when configuring. These will produce
|
|
|
|
COFF format object files and executables; otherwise GNU CC will use the
|
|
|
|
installed tools, which produce @file{a.out} format executables.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{*-ibm-aix*}*-ibm-aix*
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
AIX Make frequently has problems with GCC makefiles. GNU Make 3.76 or
|
|
|
|
newer is recommended to build on this platform.
|
|
|
|
|
|
|
|
Errors involving "alloca" when building GCC generally are due
|
2001-06-01 20:08:19 +02:00
|
|
|
to an incorrect definition of @var{CC} in the Makefile or mixing files
|
2001-05-12 00:10:54 +02:00
|
|
|
compiled with the native C compiler and GCC. During the stage1 phase of
|
|
|
|
the build, the native AIX compiler @strong{must} be invoked as "cc"
|
|
|
|
(not "xlc"). Once @command{configure} has been informed of
|
2001-06-01 20:08:19 +02:00
|
|
|
"xlc", one needs to use @samp{make distclean} to remove the
|
|
|
|
configure cache files and ensure that @env{CC} environment variable
|
2001-05-12 00:10:54 +02:00
|
|
|
does not provide a definition that will confuse @command{configure}.
|
|
|
|
If this error occurs during stage2 or later, then the problem most likely
|
|
|
|
is the version of Make (see above).
|
|
|
|
|
2001-05-16 16:57:06 +02:00
|
|
|
Binutils 2.10 does not support AIX 4.3. Binutils available from the
|
2001-06-01 20:08:19 +02:00
|
|
|
@uref{http://www-1.ibm.com/servers/aix/products/aixos/linux/,,AIX
|
|
|
|
Toolbox for Linux: GNU and Open Source tools for AIX};
|
2001-05-16 16:57:06 +02:00
|
|
|
website does work. Binutils 2.11 is expected to include AIX 4.3
|
|
|
|
support. The GNU Assembler is necessary for libstdc++ to build. The
|
|
|
|
AIX native ld still is recommended. The native AIX tools do
|
|
|
|
interoperate with GCC.
|
|
|
|
|
|
|
|
Linking executables and shared libraries may produce warnings of
|
|
|
|
duplicate symbols. The assembly files generated by GCC for AIX always
|
|
|
|
have included multiple symbol definitions for certain global variable
|
|
|
|
and function declarations in the original program. The warnings should
|
|
|
|
not prevent the linker from producing a correct library or runnable
|
|
|
|
executable.
|
|
|
|
|
|
|
|
AIX 4.3 utilizes a "large format" archive to support both 32-bit and
|
|
|
|
64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1
|
|
|
|
to parse archive libraries did not handle the new format correctly.
|
|
|
|
These routines are used by GCC and result in error messages during
|
|
|
|
linking such as "not a COFF file". The version of the routines shipped
|
|
|
|
with AIX 4.3.1 should work for a 32-bit environment. The @option{-g}
|
|
|
|
option of the archive command may be used to create archives of 32-bit
|
|
|
|
objects using the original "small format". A correct version of the
|
|
|
|
routines is shipped with AIX 4.3.2.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
Some versions of the AIX binder (linker) can fail with a relocation
|
|
|
|
overflow severe error when the @option{-bbigtoc} option is used to link
|
|
|
|
GCC-produced object files into an executable that overflows the TOC. A fix
|
|
|
|
for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is
|
|
|
|
available from IBM Customer Support and from its
|
|
|
|
@uref{http://service.boulder.ibm.com/,,service.boulder.ibm.com}
|
|
|
|
website as PTF U455193.
|
|
|
|
|
2001-05-16 16:57:06 +02:00
|
|
|
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core
|
|
|
|
with a segmentation fault when invoked by any version of GCC. A fix for
|
|
|
|
APAR IX87327 is available from IBM Customer Support and from its
|
|
|
|
@uref{http://service.boulder.ibm.com/,,service.boulder.ibm.com}
|
|
|
|
website as PTF U461879. This fix is incorporated in AIX 4.3.3 and above.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
The initial assembler shipped with AIX 4.3.0 generates incorrect object
|
|
|
|
files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM COMPILER FAILS
|
|
|
|
TO ASSEMBLE/BIND) is available from IBM Customer Support and from its
|
|
|
|
@uref{http://service.boulder.ibm.com/,,service.boulder.ibm.com}
|
|
|
|
website as PTF U453956. This fix is incorporated in AIX 4.3.1 and above.
|
|
|
|
|
2001-05-16 16:57:06 +02:00
|
|
|
AIX provides National Language Support (NLS). Compilers and assemblers
|
|
|
|
use NLS to support locale-specific representations of various data
|
|
|
|
formats including floating-point numbers (e.g., "." vs "," for
|
|
|
|
separating decimal fractions). There have been problems reported where
|
|
|
|
GCC does not produce the same floating-point formats that the assembler
|
2001-06-01 20:08:19 +02:00
|
|
|
expects. If one encouters this problem, set the @env{LANG}
|
2001-05-16 16:57:06 +02:00
|
|
|
environment variable to "C" or "En_US".
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-03 08:40:15 +02:00
|
|
|
By default, GCC for AIX 4.1 and above produces code that can be used on
|
|
|
|
both Power or PowerPC processors.
|
|
|
|
|
|
|
|
You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
|
|
|
|
switch by using the configure option @samp{--with-cpu-}@var{cpu_type}.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m32r-*-elf}m32r-*-elf
|
|
|
|
Mitsubishi M32R processor.
|
|
|
|
This configuration is intended for embedded systems.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m68000-hp-bsd}m68000-hp-bsd
|
|
|
|
HP 9000 series 200 running BSD. Note that the C compiler that comes
|
|
|
|
with this system cannot compile GNU CC; contact @email{law@@cygnus.com}
|
|
|
|
to get binaries of GNU CC for bootstrapping.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m6811-elf}m6811-elf
|
|
|
|
Motorola 68HC11 family micro controllers. These are used in embedded
|
|
|
|
applications. There are no standard Unix configurations.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m6812-elf}m6812-elf
|
|
|
|
Motorola 68HC12 family micro controllers. These are used in embedded
|
|
|
|
applications. There are no standard Unix configurations.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m68k-altos}m68k-altos
|
|
|
|
Altos 3068. You must use the GNU assembler, linker and debugger.
|
|
|
|
Also, you must fix a kernel bug. Details in the file @file{README.ALTOS}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m68k-apple-aux}m68k-apple-aux
|
|
|
|
Apple Macintosh running A/UX.
|
|
|
|
You may configure GCC to use either the system assembler and
|
|
|
|
linker or the GNU assembler and linker. You should use the GNU configuration
|
|
|
|
if you can, especially if you also want to use GNU C++. You enabled
|
|
|
|
that configuration with + the @samp{--with-gnu-as} and @samp{--with-gnu-ld}
|
|
|
|
options to @code{configure}.
|
|
|
|
|
|
|
|
Note the C compiler that comes
|
|
|
|
with this system cannot compile GNU CC. You can find binaries of GNU CC
|
|
|
|
for bootstrapping on @code{jagubox.gsfc.nasa.gov}.
|
|
|
|
You will also a patched version of @file{/bin/ld} there that
|
|
|
|
raises some of the arbitrary limits found in the original.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m68k-att-sysv}m68k-att-sysv
|
|
|
|
AT&T 3b1, a.k.a. 7300 PC. This version of GNU CC cannot
|
|
|
|
be compiled with the system C compiler, which is too buggy.
|
|
|
|
You will need to get a previous version of GCC and use it to
|
|
|
|
bootstrap. Binaries are available from the OSU-CIS archive, at
|
|
|
|
@uref{ftp://archive.cis.ohio-state.edu/pub/att7300/}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m68k-bull-sysv}m68k-bull-sysv
|
|
|
|
Bull DPX/2 series 200 and 300 with BOS-2.00.45 up to BOS-2.01. GNU CC works
|
|
|
|
either with native assembler or GNU assembler. You can use
|
|
|
|
GNU assembler with native coff generation by providing @samp{--with-gnu-as} to
|
|
|
|
the configure script or use GNU assembler with dbx-in-coff encapsulation
|
|
|
|
by providing @samp{--with-gnu-as --stabs}. For any problem with native
|
|
|
|
assembler or for availability of the DPX/2 port of GAS, contact
|
|
|
|
@email{F.Pierresteguy@@frcl.bull.fr}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m68k-crds-unox}m68k-crds-unox
|
|
|
|
Use @samp{configure unos} for building on Unos.
|
|
|
|
|
|
|
|
The Unos assembler is named @code{casm} instead of @code{as}. For some
|
|
|
|
strange reason linking @file{/bin/as} to @file{/bin/casm} changes the
|
|
|
|
behavior, and does not work. So, when installing GNU CC, you should
|
|
|
|
install the following script as @file{as} in the subdirectory where
|
|
|
|
the passes of GCC are installed:
|
|
|
|
|
|
|
|
@example
|
|
|
|
#!/bin/sh
|
|
|
|
casm $*
|
|
|
|
@end example
|
|
|
|
|
|
|
|
The default Unos library is named @file{libunos.a} instead of
|
|
|
|
@file{libc.a}. To allow GNU CC to function, either change all
|
|
|
|
references to @samp{-lc} in @file{gcc.c} to @samp{-lunos} or link
|
|
|
|
@file{/lib/libc.a} to @file{/lib/libunos.a}.
|
|
|
|
|
|
|
|
@cindex @code{alloca}, for Unos
|
|
|
|
When compiling GNU CC with the standard compiler, to overcome bugs in
|
|
|
|
the support of @code{alloca}, do not use @samp{-O} when making stage 2.
|
|
|
|
Then use the stage 2 compiler with @samp{-O} to make the stage 3
|
|
|
|
compiler. This compiler will have the same characteristics as the usual
|
|
|
|
stage 2 compiler on other systems. Use it to make a stage 4 compiler
|
|
|
|
and compare that with stage 3 to verify proper compilation.
|
|
|
|
|
|
|
|
(Perhaps simply defining @code{ALLOCA} in @file{x-crds} as described in
|
|
|
|
the comments there will make the above paragraph superfluous. Please
|
|
|
|
inform us of whether this works.)
|
|
|
|
|
|
|
|
Unos uses memory segmentation instead of demand paging, so you will need
|
|
|
|
a lot of memory. 5 Mb is barely enough if no other tasks are running.
|
|
|
|
If linking @file{cc1} fails, try putting the object files into a library
|
|
|
|
and linking from that library.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m68k-hp-hpux}m68k-hp-hpux
|
|
|
|
HP 9000 series 300 or 400 running HP-UX. HP-UX version 8.0 has a bug in
|
|
|
|
the assembler that prevents compilation of GNU CC. This
|
|
|
|
bug manifests itself during the first stage of compilation, while
|
|
|
|
building @file{libgcc2.a}:
|
|
|
|
|
|
|
|
@smallexample
|
|
|
|
_floatdisf
|
|
|
|
cc1: warning: `-g' option not supported on this version of GCC
|
|
|
|
cc1: warning: `-g1' option not supported on this version of GCC
|
|
|
|
./xgcc: Internal compiler error: program as got fatal signal 11
|
|
|
|
@end smallexample
|
|
|
|
|
|
|
|
A patched version of the assembler is available as the file
|
|
|
|
@uref{ftp://altdorf.ai.mit.edu/archive/cph/hpux-8.0-assembler}. If you
|
|
|
|
have HP software support, the patch can also be obtained directly from
|
|
|
|
HP, as described in the following note:
|
|
|
|
|
|
|
|
@quotation
|
|
|
|
This is the patched assembler, to patch SR#1653-010439, where the
|
|
|
|
assembler aborts on floating point constants.
|
|
|
|
|
|
|
|
The bug is not really in the assembler, but in the shared library
|
|
|
|
version of the function ``cvtnum(3c)''. The bug on ``cvtnum(3c)'' is
|
|
|
|
SR#4701-078451. Anyway, the attached assembler uses the archive
|
|
|
|
library version of ``cvtnum(3c)'' and thus does not exhibit the bug.
|
|
|
|
@end quotation
|
|
|
|
|
|
|
|
This patch is also known as PHCO_4484.
|
|
|
|
|
|
|
|
In addition, if you wish to use gas @samp{--with-gnu-as} you must use
|
|
|
|
gas version 2.1 or later, and you must use the GNU linker version 2.1 or
|
|
|
|
later. Earlier versions of gas relied upon a program which converted the
|
|
|
|
gas output into the native HP-UX format, but that program has not been
|
|
|
|
kept up to date. gdb does not understand that native HP-UX format, so
|
|
|
|
you must use gas if you wish to use gdb.
|
|
|
|
|
|
|
|
On HP-UX version 8.05, but not on 8.07 or more recent versions, the
|
|
|
|
@code{fixproto} shell script triggers a bug in the system shell. If you
|
|
|
|
encounter this problem, upgrade your operating system or use BASH (the
|
|
|
|
GNU shell) to run @code{fixproto}. This bug will cause the fixproto
|
|
|
|
program to report an error of the form:
|
|
|
|
|
|
|
|
@example
|
|
|
|
./fixproto: sh internal 1K buffer overflow
|
|
|
|
@end example
|
|
|
|
|
|
|
|
To fix this, you can also change the first line of the fixproto script
|
|
|
|
to look like:
|
|
|
|
|
|
|
|
@example
|
|
|
|
#!/bin/ksh
|
|
|
|
@end example
|
|
|
|
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{m68k-*-nextstep*}m68k-*-nextstep*
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
Current GCC versions probably do not work on version 2 of the NeXT
|
|
|
|
operating system.
|
|
|
|
|
|
|
|
On NeXTStep 3.0, the Objective C compiler does not work, due,
|
|
|
|
apparently, to a kernel bug that it happens to trigger. This problem
|
|
|
|
does not happen on 3.1.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
You absolutely @strong{must} use GNU sed and GNU make on this platform.
|
|
|
|
|
|
|
|
|
|
|
|
On NEXTSTEP 3.x where x < 3 the build of GCC will abort during
|
|
|
|
stage1 with an error message like this:
|
|
|
|
|
|
|
|
@example
|
|
|
|
_eh
|
|
|
|
/usr/tmp/ccbbsZ0U.s:987:Unknown pseudo-op: .section
|
|
|
|
/usr/tmp/ccbbsZ0U.s:987:Rest of line ignored. 1st junk character
|
|
|
|
valued 95 (_).
|
|
|
|
@end example
|
|
|
|
|
|
|
|
The reason for this is the fact that NeXT's assembler for these
|
|
|
|
versions of the operating system does not support the .section
|
|
|
|
pseudo op that's needed for full C++ exception functionality.
|
|
|
|
|
|
|
|
As NeXT's assembler is a derived work from GNU as, a free
|
|
|
|
replacement that does can be obtained at
|
|
|
|
@uref{ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz,,ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz}.
|
|
|
|
|
|
|
|
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
|
2001-06-01 20:08:19 +02:00
|
|
|
the directory @var{prefix} you specified in the configuration process of GCC
|
2001-05-12 00:10:54 +02:00
|
|
|
for this sequence to work.
|
|
|
|
|
|
|
|
@example
|
|
|
|
cd bld-gcc
|
|
|
|
make all-texinfo all-bison all-byacc all-binutils all-gas all-ld
|
|
|
|
cd gcc
|
|
|
|
make bootstrap
|
|
|
|
make install-headers-tar
|
|
|
|
cd ..
|
|
|
|
make bootstrap3
|
|
|
|
@end example
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m68k-ncr-*}m68k-ncr-*
|
|
|
|
On the Tower models 4@var{n}0 and 6@var{n}0, by default a process is not
|
|
|
|
allowed to have more than one megabyte of memory. GCC cannot compile
|
|
|
|
itself (or many other programs) with @samp{-O} in that much memory.
|
|
|
|
|
|
|
|
To solve this problem, reconfigure the kernel adding the following line
|
|
|
|
to the configuration file:
|
|
|
|
|
|
|
|
@smallexample
|
|
|
|
MAXUMEM = 4096
|
|
|
|
@end smallexample
|
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m68k-sun}m68k-sun
|
|
|
|
Sun 3. We do not provide a configuration file to use the Sun FPA by
|
|
|
|
default, because programs that establish signal handlers for floating
|
|
|
|
point traps inherently cannot work with the FPA.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{m68k-sun-sunos4.1.1}m68k-sun-sunos4.1.1
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
It is reported that you may need the GNU assembler on this platform.
|
|
|
|
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m88k-*-svr3}m88k-*-svr3
|
|
|
|
Motorola m88k running the AT&T/Unisoft/Motorola V.3 reference port.
|
|
|
|
These systems tend to use the Green Hills C, revision 1.8.5, as the
|
|
|
|
standard C compiler. There are apparently bugs in this compiler that
|
|
|
|
result in object files differences between stage 2 and stage 3. If this
|
|
|
|
happens, make the stage 4 compiler and compare it to the stage 3
|
|
|
|
compiler. If the stage 3 and stage 4 object files are identical, this
|
|
|
|
suggests you encountered a problem with the standard C compiler; the
|
|
|
|
stage 3 and 4 compilers may be usable.
|
|
|
|
|
|
|
|
It is best, however, to use an older version of GNU CC for bootstrapping
|
|
|
|
if you have one.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m88k-*-dgux}m88k-*-dgux
|
|
|
|
Motorola m88k running DG/UX. To build 88open BCS native or cross
|
|
|
|
compilers on DG/UX, specify the configuration name as
|
|
|
|
@samp{m88k-*-dguxbcs} and build in the 88open BCS software development
|
|
|
|
environment. To build ELF native or cross compilers on DG/UX, specify
|
|
|
|
@samp{m88k-*-dgux} and build in the DG/UX ELF development environment.
|
|
|
|
You set the software development environment by issuing
|
|
|
|
@samp{sde-target} command and specifying either @samp{m88kbcs} or
|
|
|
|
@samp{m88kdguxelf} as the operand.
|
|
|
|
|
|
|
|
If you do not specify a configuration name, @file{configure} guesses the
|
|
|
|
configuration based on the current software development environment.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{m88k-tektronix-sysv3}m88k-tektronix-sysv3
|
|
|
|
Tektronix XD88 running UTekV 3.2e. Do not turn on
|
|
|
|
optimization while building stage1 if you bootstrap with
|
|
|
|
the buggy Green Hills compiler. Also, The bundled LAI
|
|
|
|
System V NFS is buggy so if you build in an NFS mounted
|
|
|
|
directory, start from a fresh reboot, or avoid NFS all together.
|
|
|
|
Otherwise you may have trouble getting clean comparisons
|
|
|
|
between stages.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{mips-*-*}mips-*-*
|
|
|
|
If you use the 1.31 version of the MIPS assembler (such as was shipped
|
|
|
|
with Ultrix 3.1), you will need to use the -fno-delayed-branch switch
|
|
|
|
when optimizing floating point code. Otherwise, the assembler will
|
|
|
|
complain when the GCC compiler fills a branch delay slot with a
|
|
|
|
floating point instruction, such as @code{add.d}.
|
|
|
|
|
|
|
|
If on a MIPS system you get an error message saying ``does not have gp
|
|
|
|
sections for all it's [sic] sectons [sic]'', don't worry about it. This
|
|
|
|
happens whenever you use GAS with the MIPS linker, but there is not
|
|
|
|
really anything wrong, and it is okay to use the output file. You can
|
|
|
|
stop such warnings by installing the GNU linker.
|
|
|
|
|
|
|
|
It would be nice to extend GAS to produce the gp tables, but they are
|
|
|
|
optional, and there should not be a warning about their absence.
|
|
|
|
|
|
|
|
Users have reported some problems with version 2.0 of the MIPS
|
|
|
|
compiler tools that were shipped with Ultrix 4.1. Version 2.10
|
|
|
|
which came with Ultrix 4.2 seems to work fine.
|
|
|
|
|
|
|
|
Users have also reported some problems with version 2.20 of the
|
|
|
|
MIPS compiler tools that were shipped with RISC/os 4.x. The earlier
|
|
|
|
version 2.11 seems to work fine.
|
|
|
|
|
|
|
|
Some versions of the MIPS linker will issue an assertion failure
|
|
|
|
when linking code that uses @code{alloca} against shared
|
|
|
|
libraries on RISC-OS 5.0, and DEC's OSF/1 systems. This is a bug
|
|
|
|
in the linker, that is supposed to be fixed in future revisions.
|
|
|
|
To protect against this, GCC passes @samp{-non_shared} to the
|
|
|
|
linker unless you pass an explicit @samp{-shared} or
|
|
|
|
@samp{-call_shared} switch.
|
|
|
|
|
|
|
|
@heading @anchor{mips-mips-bsd}mips-mips-bsd
|
|
|
|
MIPS machines running the MIPS operating system in BSD mode. It's
|
|
|
|
possible that some old versions of the system lack the functions
|
|
|
|
@code{memcpy}, @code{memmove}, @code{memcmp}, and @code{memset}. If your
|
|
|
|
system lacks these, you must remove or undo the definition of
|
|
|
|
@code{TARGET_MEM_FUNCTIONS} in @file{mips-bsd.h}.
|
|
|
|
|
|
|
|
The MIPS C compiler needs to be told to increase its table size
|
|
|
|
for switch statements with the @samp{-Wf,-XNg1500} option in
|
|
|
|
order to compile @file{cp/parse.c}. If you use the @samp{-O2}
|
|
|
|
optimization option, you also need to use @samp{-Olimit 3000}.
|
|
|
|
Both of these options are automatically generated in the
|
|
|
|
@file{Makefile} that the shell script @file{configure} builds.
|
|
|
|
If you override the @code{CC} make variable and use the MIPS
|
|
|
|
compilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{mips-mips-riscos*}mips-mips-riscos*
|
|
|
|
The MIPS C compiler needs to be told to increase its table size
|
|
|
|
for switch statements with the @samp{-Wf,-XNg1500} option in
|
|
|
|
order to compile @file{cp/parse.c}. If you use the @samp{-O2}
|
|
|
|
optimization option, you also need to use @samp{-Olimit 3000}.
|
|
|
|
Both of these options are automatically generated in the
|
|
|
|
@file{Makefile} that the shell script @file{configure} builds.
|
|
|
|
If you override the @code{CC} make variable and use the MIPS
|
|
|
|
compilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}.
|
|
|
|
|
|
|
|
MIPS computers running RISC-OS can support four different
|
|
|
|
personalities: default, BSD 4.3, System V.3, and System V.4
|
|
|
|
(older versions of RISC-OS don't support V.4). To configure GCC
|
|
|
|
for these platforms use the following configurations:
|
|
|
|
|
|
|
|
@table @samp
|
|
|
|
@item mips-mips-riscos@code{rev}
|
|
|
|
Default configuration for RISC-OS, revision @code{rev}.
|
|
|
|
|
|
|
|
@item mips-mips-riscos@code{rev}bsd
|
|
|
|
BSD 4.3 configuration for RISC-OS, revision @code{rev}.
|
|
|
|
|
|
|
|
@item mips-mips-riscos@code{rev}sysv4
|
|
|
|
System V.4 configuration for RISC-OS, revision @code{rev}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@item mips-mips-riscos@code{rev}sysv
|
|
|
|
System V.3 configuration for RISC-OS, revision @code{rev}.
|
|
|
|
@end table
|
|
|
|
|
|
|
|
The revision @code{rev} mentioned above is the revision of
|
|
|
|
RISC-OS to use. You must reconfigure GCC when going from a
|
|
|
|
RISC-OS revision 4 to RISC-OS revision 5. This has the effect of
|
|
|
|
avoiding a linker bug.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{mips*-sgi-irix[45]}mips*-sgi-irix[45]
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
In order to compile GCC on an SGI running IRIX 4, the "c.hdr.lib"
|
|
|
|
option must be installed from the CD-ROM supplied from Silicon Graphics.
|
|
|
|
This is found on the 2nd CD in release 4.0.1.
|
|
|
|
|
|
|
|
In order to compile GCC on an SGI running IRIX 5, the "compiler_dev.hdr"
|
|
|
|
subsystem must be installed from the IDO CD-ROM supplied by Silicon
|
|
|
|
Graphics.
|
|
|
|
|
|
|
|
@code{make compare} may fail on version 5 of IRIX unless you add
|
|
|
|
@samp{-save-temps} to @code{CFLAGS}. On these systems, the name of the
|
|
|
|
assembler input file is stored in the object file, and that makes
|
|
|
|
comparison fail if it differs between the @code{stage1} and
|
|
|
|
@code{stage2} compilations. The option @samp{-save-temps} forces a
|
|
|
|
fixed name to be used for the assembler input file, instead of a
|
|
|
|
randomly chosen name in @file{/tmp}. Do not add @samp{-save-temps}
|
|
|
|
unless the comparisons fail without that option. If you do you
|
|
|
|
@samp{-save-temps}, you will have to manually delete the @samp{.i} and
|
|
|
|
@samp{.s} files after each series of compilations.
|
|
|
|
|
|
|
|
The MIPS C compiler needs to be told to increase its table size
|
|
|
|
for switch statements with the @samp{-Wf,-XNg1500} option in
|
|
|
|
order to compile @file{cp/parse.c}. If you use the @samp{-O2}
|
|
|
|
optimization option, you also need to use @samp{-Olimit 3000}.
|
|
|
|
Both of these options are automatically generated in the
|
|
|
|
@file{Makefile} that the shell script @file{configure} builds.
|
|
|
|
If you override the @code{CC} make variable and use the MIPS
|
|
|
|
compilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}.
|
|
|
|
|
|
|
|
On Irix version 4.0.5F, and perhaps on some other versions as well,
|
|
|
|
there is an assembler bug that reorders instructions incorrectly. To
|
|
|
|
work around it, specify the target configuration
|
|
|
|
@samp{mips-sgi-irix4loser}. This configuration inhibits assembler
|
|
|
|
optimization.
|
|
|
|
|
|
|
|
In a compiler configured with target @samp{mips-sgi-irix4}, you can turn
|
|
|
|
off assembler optimization by using the @samp{-noasmopt} option. This
|
|
|
|
compiler option passes the option @samp{-O0} to the assembler, to
|
|
|
|
inhibit reordering.
|
|
|
|
|
|
|
|
The @samp{-noasmopt} option can be useful for testing whether a problem
|
|
|
|
is due to erroneous assembler reordering. Even if a problem does not go
|
|
|
|
away with @samp{-noasmopt}, it may still be due to assembler
|
|
|
|
reordering---perhaps GNU CC itself was miscompiled as a result.
|
|
|
|
|
|
|
|
To enable debugging under Irix 5, you must use GNU as 2.5 or later,
|
|
|
|
and use the @samp{--with-gnu-as} configure option when configuring gcc.
|
|
|
|
GNU as is distributed as part of the binutils package.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
You must use GAS on these platforms, as the native assembler can not handle
|
|
|
|
the code for exception handling support. Either of these messages indicates
|
|
|
|
that you are using the MIPS assembler when instead you should be using GAS:
|
|
|
|
|
|
|
|
@samp{ as0: Error: ./libgcc2.c, line 1:Badly delimited numeric literal
|
|
|
|
.4byte $LECIE1-$LSCIE1
|
|
|
|
as0: Error: ./libgcc2.c, line 1:malformed statement}
|
|
|
|
|
|
|
|
or:
|
|
|
|
|
|
|
|
@samp{ as0: Error: /src/bld-gcc/gcc/libgcc2.c, line 1:undefined symbol in expression
|
|
|
|
.word $LECIE1-$LSCIE1}
|
|
|
|
|
|
|
|
These systems don't have ranlib, which various components in GCC 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.
|
|
|
|
@example
|
|
|
|
warning: foo.o does not have gp tables for all its sections.
|
|
|
|
@end example
|
|
|
|
|
|
|
|
When building GCC, the build process loops rebuilding cc1 over and
|
|
|
|
over again. This happens on mips-sgi-irix5.2, and possibly other platforms.@*
|
|
|
|
It has been reported that this is a known bug in the make shipped with
|
|
|
|
IRIX 5.2. We recommend you use GNU make instead of the vendor supplied
|
|
|
|
make program; however, you may have success with "smake" on IRIX 5.2 if
|
|
|
|
you do not have GNU make available.
|
|
|
|
|
2001-05-28 09:55:13 +02:00
|
|
|
See @uref{http://freeware.sgi.com/,,http://freeware.sgi.com/} for more
|
|
|
|
information about using GCC on IRIX platforms.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{mips*-sgi-irix6}mips*-sgi-irix6
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
You must @emph{not} use GAS on irix6 platforms; doing so will only
|
|
|
|
cause problems.
|
|
|
|
|
|
|
|
These systems don't have ranlib, which various components in GCC 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.
|
|
|
|
|
|
|
|
If you are using Irix cc as your bootstrap compiler, you must
|
|
|
|
ensure that the N32 ABI is in use. To test this, compile a simple C
|
|
|
|
file with @command{cc} and then run @command{file} on the
|
|
|
|
resulting object file. The output should look like:
|
|
|
|
|
|
|
|
@example
|
|
|
|
@code{ test.o: ELF N32 MSB ...}
|
|
|
|
@end example
|
|
|
|
|
|
|
|
If you see:
|
|
|
|
@example
|
|
|
|
@code{ test.o: ELF 32-bit MSB}
|
|
|
|
@end example
|
|
|
|
|
|
|
|
then your version of @command{cc} uses the O32 ABI default. You
|
2001-06-01 20:08:19 +02:00
|
|
|
should set the environment variable @env{CC} to @samp{cc -n32}
|
2001-05-12 00:10:54 +02:00
|
|
|
before configuring GCC.
|
|
|
|
|
|
|
|
GCC does not currently support generating O32 ABI binaries in the
|
|
|
|
mips-sgi-irix6 configurations. It used to be possible to create a GCC
|
|
|
|
with O32 ABI only support by configuring it for the mips-sgi-irix5
|
|
|
|
target. See the link below for details.
|
|
|
|
|
|
|
|
GCC does not correctly pass/return structures which are
|
|
|
|
smaller than 16 bytes and which are not 8 bytes. The problem is very
|
|
|
|
involved and difficult to fix. It affects a number of other targets also,
|
|
|
|
but IRIX 6 is affected the most, because it is a 64 bit target, and 4 byte
|
|
|
|
structures are common. The exact problem is that structures are being padded
|
|
|
|
at the wrong end, e.g. a 4 byte structure is loaded into the lower 4 bytes
|
|
|
|
of the register when it should be loaded into the upper 4 bytes of the
|
|
|
|
register.
|
|
|
|
|
|
|
|
GCC is consistent with itself, but not consistent with the SGI C compiler
|
|
|
|
(and the SGI supplied runtime libraries), so the only failures that can
|
|
|
|
happen are when there are library functions that take/return such
|
|
|
|
structures. There are very few such library functions. I can only recall
|
|
|
|
seeing two of them: inet_ntoa, and semctl.
|
|
|
|
|
2001-05-28 09:55:13 +02:00
|
|
|
See @uref{http://freeware.sgi.com/,,http://freeware.sgi.com/} for more
|
|
|
|
information about using GCC on IRIX platforms.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{mips-sony-sysv}mips-sony-sysv
|
|
|
|
Sony MIPS NEWS. This works in NEWSOS 5.0.1, but not in 5.0.2 (which
|
|
|
|
uses ELF instead of COFF). Support for 5.0.2 will probably be provided
|
|
|
|
soon by volunteers. In particular, the linker does not like the
|
|
|
|
code generated by GCC when shared libraries are linked in.
|
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ns32k-encore}ns32k-encore
|
|
|
|
Encore ns32000 system. Encore systems are supported only under BSD.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ns32k-*-genix}ns32k-*-genix
|
|
|
|
National Semiconductor ns32000 system. Genix has bugs in @code{alloca}
|
|
|
|
and @code{malloc}; you must get the compiled versions of these from GNU
|
|
|
|
Emacs.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ns32k-sequent}ns32k-sequent
|
|
|
|
Go to the Berkeley universe before compiling.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{ns32k-utek}ns32k-utek
|
|
|
|
UTEK ns32000 system (``merlin''). The C compiler that comes with this
|
|
|
|
system cannot compile GNU CC; contact @samp{tektronix!reed!mason} to get
|
|
|
|
binaries of GNU CC for bootstrapping.
|
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{powerpc-*-elf}powerpc-*-elf, powerpc-*-sysv4
|
|
|
|
PowerPC system in big endian mode, running System V.4.
|
|
|
|
|
|
|
|
You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
|
|
|
|
switch by using the configure option @samp{--with-cpu-}@var{cpu_type}.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{powerpc-*-linux-gnu*}powerpc-*-linux-gnu*
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
You will need
|
|
|
|
@uref{ftp://ftp.varesearch.com/pub/support/hjl/binutils,,binutils-2.9.4.0.8}
|
|
|
|
or newer for a working GCC. It is strongly recommended to recompile binutils
|
|
|
|
if you initially built it with gcc-2.7.2.x.
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
|
|
|
|
switch by using the configure option @samp{--with-cpu-}@var{cpu_type}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{powerpc-*-eabiaix}powerpc-*-eabiaix
|
|
|
|
Embedded PowerPC system in big endian mode with -mcall-aix selected as
|
|
|
|
the default.
|
|
|
|
|
|
|
|
You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
|
|
|
|
switch by using the configure option @samp{--with-cpu-}@var{cpu_type}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{powerpc-*-eabisim}powerpc-*-eabisim
|
|
|
|
Embedded PowerPC system in big endian mode for use in running under the
|
|
|
|
PSIM simulator.
|
|
|
|
|
|
|
|
You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
|
|
|
|
switch by using the configure option @samp{--with-cpu-}@var{cpu_type}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{powerpc-*-eabi}powerpc-*-eabi
|
|
|
|
Embedded PowerPC system in big endian mode.
|
|
|
|
|
|
|
|
You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
|
|
|
|
switch by using the configure option @samp{--with-cpu-}@var{cpu_type}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{powerpcle-*-elf}powerpcle-*-elf, powerpcle-*-sysv4
|
|
|
|
PowerPC system in little endian mode, running System V.4.
|
|
|
|
|
|
|
|
You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
|
|
|
|
switch by using the configure option @samp{--with-cpu-}@var{cpu_type}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{powerpcle-*-eabisim}powerpcle-*-eabisim
|
|
|
|
Embedded PowerPC system in little endian mode for use in running under
|
|
|
|
the PSIM simulator.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{powerpcle-*-eabi}powerpcle-*-eabi
|
|
|
|
Embedded PowerPC system in little endian mode.
|
|
|
|
|
|
|
|
You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
|
|
|
|
switch by using the configure option @samp{--with-cpu-}@var{cpu_type}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{powerpcle-*-winnt}powerpcle-*-winnt, powerpcle-*-pe
|
|
|
|
PowerPC system in little endian mode running Windows NT.
|
|
|
|
|
|
|
|
You can specify a default version for the @samp{-mcpu=}@var{cpu_type}
|
|
|
|
switch by using the configure option @samp{--with-cpu-}@var{cpu_type}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{romp-*-aos}romp-*-aos, romp-*-mach
|
|
|
|
The only operating systems supported for the IBM RT PC are AOS and
|
|
|
|
MACH. GNU CC does not support AIX running on the RT. We recommend you
|
|
|
|
compile GNU CC with an earlier version of itself; if you compile GNU CC
|
|
|
|
with @code{hc}, the Metaware compiler, it will work, but you will get
|
|
|
|
mismatches between the stage 2 and stage 3 compilers in various files.
|
|
|
|
These errors are minor differences in some floating-point constants and
|
|
|
|
can be safely ignored; the stage 3 compiler is correct.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{*-*-solaris*}*-*-solaris*
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
Starting with Solaris, Sun does not ship a C compiler any more. To
|
|
|
|
bootstrap and install GCC you first have to install a pre-built
|
|
|
|
compiler, see our @uref{binaries.html,,binaries page} for
|
|
|
|
details.
|
|
|
|
|
2001-05-17 20:12:27 +02:00
|
|
|
You must use GNU Make to build GCC on Solaris 2. If you don't have GNU
|
|
|
|
Make installed, you can use the prebuilt compiler mentioned above to
|
|
|
|
build it.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
Sun as 4.X is broken in that it cannot cope with long symbol names.
|
|
|
|
A typical error message might look similar to the following:
|
|
|
|
|
|
|
|
@samp{/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041:
|
|
|
|
error: can't compute value of an expression involving an external symbol.}
|
|
|
|
|
2001-05-17 20:12:27 +02:00
|
|
|
This is Sun bug 4237974. This is fixed with patch 108908-02 and has
|
|
|
|
been fixed in later (5.x) versions of the assembler.
|
2001-06-03 00:33:30 +02:00
|
|
|
|
|
|
|
@html
|
|
|
|
<p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{sparc-sun-*}sparc-sun-*
|
|
|
|
Sometimes on a Sun 4 you may observe a crash in the program
|
|
|
|
@code{genflags} or @code{genoutput} while building GCC. This is said to
|
|
|
|
be due to a bug in @code{sh}. You can probably get around it by running
|
|
|
|
@code{genflags} or @code{genoutput} manually and then retrying the
|
|
|
|
@code{make}.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
<p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{sparc-sun-solaris*}sparc-sun-solaris*
|
2001-06-03 00:33:30 +02:00
|
|
|
On Solaris 2, executables of GCC version 2.0.2 are commonly
|
|
|
|
available, but they have a bug that shows up when compiling current
|
|
|
|
versions of GCC: undefined symbol errors occur during assembly if you
|
|
|
|
use @samp{-g}.
|
|
|
|
|
|
|
|
The solution is to compile the current version of GCC without
|
|
|
|
@samp{-g}. That makes a working compiler which you can use to recompile
|
|
|
|
with @samp{-g}.
|
|
|
|
|
|
|
|
Solaris 2 comes with a number of optional OS packages. Some of these
|
|
|
|
packages are needed to use GCC fully. If you did not install all
|
|
|
|
optional packages when installing Solaris, you will need to verify that
|
|
|
|
the packages that GCC needs are installed.
|
|
|
|
|
|
|
|
To check whether an optional package is installed, use
|
|
|
|
the @code{pkginfo} command. To add an optional package, use the
|
|
|
|
@code{pkgadd} command. For further details, see the Solaris
|
|
|
|
documentation.
|
|
|
|
|
|
|
|
For Solaris 2.0 and 2.1, GCC needs six packages: @samp{SUNWarc},
|
|
|
|
@samp{SUNWbtool}, @samp{SUNWesu}, @samp{SUNWhea}, @samp{SUNWlibm}, and
|
|
|
|
@samp{SUNWtoo}.
|
|
|
|
|
|
|
|
For Solaris 2.2, GCC needs an additional seventh package: @samp{SUNWsprot}.
|
|
|
|
|
|
|
|
On Solaris 2, trying to use the linker and other tools in
|
|
|
|
@file{/usr/ucb} to install GCC has been observed to cause trouble.
|
|
|
|
For example, the linker may hang indefinitely. The fix is to remove
|
|
|
|
@file{/usr/ucb} from your @code{PATH}.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
binutils 2.9.1 has known bugs on this platform. We recommend to use
|
|
|
|
binutils 2.10 or the vendor tools (Sun as, Sun ld).
|
|
|
|
|
|
|
|
Unfortunately, C++ shared libraries, including libstdc++, won't work
|
|
|
|
properly if assembled with Sun as: the linker will complain about
|
|
|
|
relocations in read-only sections, in the definition of virtual
|
|
|
|
tables. Also, Sun as fails to process long symbols resulting from
|
|
|
|
mangling template-heavy C++ function names.
|
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{sparc-sun-solaris2.7}sparc-sun-solaris2.7
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
Sun patch 107058-01 (1999-01-13) for SPARC Solaris 7 triggers a bug in
|
|
|
|
the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8
|
|
|
|
and later, including all EGCS releases. Sun formerly recommended
|
|
|
|
107058-01 for all Solaris 7 users, but around 1999-09-01 it started to
|
|
|
|
recommend it only for people who use Sun's compilers.
|
|
|
|
|
|
|
|
Here are some workarounds to this problem:
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
|
|
|
Do not install Sun patch 107058-01 until after Sun releases a
|
|
|
|
complete patch for bug 4210064. This is the simplest course to take,
|
|
|
|
unless you must also use Sun's C compiler. Unfortunately 107058-01
|
|
|
|
is preinstalled on some new Solaris-based hosts, so you may have to
|
|
|
|
back it out.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Copy the original, unpatched Solaris 7
|
|
|
|
@command{/usr/ccs/bin/as} into
|
|
|
|
@command{/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.1/as},
|
|
|
|
adjusting the latter name to fit your local conventions and software
|
|
|
|
version numbers.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Install Sun patch 106950-03 (1999-05-25) or later. Nobody with
|
|
|
|
both 107058-01 and 106950-03 installed has reported the bug with GCC
|
|
|
|
and Sun's dynamic linker. This last course of action is riskiest,
|
|
|
|
for two reasons. First, you must install 106950 on all hosts that
|
|
|
|
run code generated by GCC; it doesn't suffice to install it only on
|
|
|
|
the hosts that run GCC itself. Second, Sun says that 106950-03 is
|
|
|
|
only a partial fix for bug 4210064, but Sun doesn't know whether the
|
|
|
|
partial fix is adequate for GCC. Revision -08 or later should fix
|
|
|
|
the bug, but (as of 1999-10-06) it is still being tested.
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
<p>
|
|
|
|
<hr>
|
|
|
|
<!-- ripped from the same FAQ that I answered -->
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{*-sun-solaris2.8}*-sun-solaris2.8
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
|
|
|
|
newer: g++ will complain that types are missing. These headers assume
|
|
|
|
that omitting the type means 'int'; this assumption worked for C89 but
|
|
|
|
is wrong for C++, and is now wrong for C99 also.
|
|
|
|
|
|
|
|
g++ accepts such (illegal) constructs with the option @option{-fpermissive}; it
|
|
|
|
will assume that any missing type is 'int' (as defined by C89).
|
|
|
|
|
2001-05-22 16:54:01 +02:00
|
|
|
For Solaris 8, this is fixed by revision 24 or later of patch 108652
|
2001-05-12 00:10:54 +02:00
|
|
|
(for SPARCs) or 108653 (for Intels).
|
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
<p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{sunv5}Sun V5.0 Compiler Bugs
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
The Sun V5.0 compilers are known to mis-compile GCC 2.95 and GCC 2.95.1,
|
|
|
|
which in turn causes GCC to fail its bootstrap comparison test.
|
|
|
|
GCC 2.95.2 has a workaround.
|
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{sparc-sun-sunos*}sparc-sun-sunos*
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
A bug in the SunOS4 linker will cause it to crash when linking
|
|
|
|
-fPIC compiled objects (and will therefore not allow you to build
|
|
|
|
shared libraries).
|
|
|
|
|
|
|
|
To fix this problem you can either use the most recent version of
|
|
|
|
binutils or get the latest SunOS4 linker patch (patch ID 100170-10)
|
|
|
|
from Sun's patch site.
|
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{sparc-unknown-linux-gnulibc1}sparc-unknown-linux-gnulibc1
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
It has been reported that you might need
|
|
|
|
@uref{ftp://ftp.yggdrasil.com/private/hjl,,binutils-2.8.1.0.23}
|
|
|
|
for this platform, too.
|
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{sparc64-*-*}sparc64-*-*
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
GCC version 2.95 is not able to compile code correctly for
|
|
|
|
@code{sparc64} targets. Users of the Linux kernel, at least,
|
|
|
|
12~can use the @code{sparc32} program to start up a new shell
|
|
|
|
invocation with an environment that causes @command{configure} to
|
2001-06-01 20:08:19 +02:00
|
|
|
recognize (via @samp{uname -a}) the system as @var{sparc-*-*} instead.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
|
2001-06-03 00:33:30 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{#*-*-sysv*}*-*-sysv*
|
|
|
|
On System V release 3, you may get this error message
|
|
|
|
while linking:
|
|
|
|
|
|
|
|
@smallexample
|
|
|
|
ld fatal: failed to write symbol name @var{something}
|
|
|
|
in strings table for file @var{whatever}
|
|
|
|
@end smallexample
|
|
|
|
|
|
|
|
This probably indicates that the disk is full or your ULIMIT won't allow
|
|
|
|
the file to be as large as it needs to be.
|
|
|
|
|
|
|
|
This problem can also result because the kernel parameter @code{MAXUMEM}
|
|
|
|
is too small. If so, you must regenerate the kernel and make the value
|
|
|
|
much larger. The default value is reported to be 1024; a value of 32768
|
|
|
|
is said to work. Smaller values may also work.
|
|
|
|
|
|
|
|
On System V, if you get an error like this,
|
|
|
|
|
|
|
|
@example
|
|
|
|
/usr/local/lib/bison.simple: In function `yyparse':
|
|
|
|
/usr/local/lib/bison.simple:625: virtual memory exhausted
|
|
|
|
@end example
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
that too indicates a problem with disk space, ULIMIT, or @code{MAXUMEM}.
|
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{vax-dec-ultrix}vax-dec-ultrix
|
|
|
|
Don't try compiling with Vax C (@code{vcc}). It produces incorrect code
|
|
|
|
in some cases (for example, when @code{alloca} is used).
|
|
|
|
|
|
|
|
Meanwhile, compiling @file{cp/parse.c} with pcc does not work because of
|
|
|
|
an internal table size limitation in that compiler. To avoid this
|
|
|
|
problem, compile just the GNU C compiler first, and use it to recompile
|
|
|
|
building all the languages that you want to run.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
|
|
|
@heading @anchor{we32k-*-*}we32k-*-*
|
|
|
|
These computers are also known as the 3b2, 3b5, 3b20 and other similar
|
|
|
|
names. (However, the 3b1 is actually a 68000.)
|
|
|
|
|
|
|
|
Don't use @samp{-g} when compiling with the system's compiler. The
|
|
|
|
system's linker seems to be unable to handle such a large program with
|
|
|
|
debugging information.
|
|
|
|
|
|
|
|
The system's compiler runs out of capacity when compiling @file{stmt.c}
|
|
|
|
in GNU CC. You can work around this by building @file{cpp} in GNU CC
|
|
|
|
first, then use that instead of the system's preprocessor with the
|
|
|
|
system's C compiler to compile @file{stmt.c}. Here is how:
|
|
|
|
|
|
|
|
@smallexample
|
|
|
|
mv /lib/cpp /lib/cpp.att
|
|
|
|
cp cpp /lib/cpp.gnu
|
|
|
|
echo '/lib/cpp.gnu -traditional $@{1+"$@@"@}' > /lib/cpp
|
|
|
|
chmod +x /lib/cpp
|
|
|
|
@end smallexample
|
|
|
|
|
|
|
|
The system's compiler produces bad code for some of the GNU CC
|
|
|
|
optimization files. So you must build the stage 2 compiler without
|
|
|
|
optimization. Then build a stage 3 compiler with optimization.
|
|
|
|
That executable should work. Here are the necessary commands:
|
|
|
|
|
|
|
|
@smallexample
|
|
|
|
make LANGUAGES=c CC=stage1/xgcc CFLAGS="-Bstage1/ -g"
|
|
|
|
make stage2
|
|
|
|
make CC=stage2/xgcc CFLAGS="-Bstage2/ -g -O"
|
|
|
|
@end smallexample
|
|
|
|
|
|
|
|
You may need to raise the ULIMIT setting to build a C++ compiler,
|
|
|
|
as the file @file{cc1plus} is larger than one megabyte.
|
|
|
|
|
2001-05-12 00:10:54 +02:00
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{windows}Microsoft Windows (32 bit)
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
A port of GCC 2.95.x is included with the
|
|
|
|
@uref{http://www.cygwin.com/,,Cygwin environment}.
|
|
|
|
|
|
|
|
Current (as of early 2001) snapshots of GCC will build under Cygwin
|
|
|
|
without modification.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{os2}OS/2
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
GCC does not currently support OS/2. However, Andrew Zabolotny has been
|
|
|
|
working on a generic OS/2 port with pgcc. The current code code can be found
|
|
|
|
at @uref{http://www.goof.com/pcg/os2/,,http://www.goof.com/pcg/os2/}.
|
|
|
|
|
|
|
|
An older copy of GCC 2.8.1 is included with the EMX tools available at
|
|
|
|
@uref{ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/,,
|
|
|
|
ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/}.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{older}Older systems
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
GCC contains support files for many older (1980s and early
|
|
|
|
1990s) Unix variants. For the most part, support for these systems
|
|
|
|
has not been deliberately removed, but it has not been maintained for
|
|
|
|
several years and may suffer from bitrot. Support from some systems
|
|
|
|
has been removed from GCC 3: fx80, ns32-ns-genix, pyramid, tahoe,
|
|
|
|
gmicro, spur; most of these targets had not been updated since GCC
|
|
|
|
version 1.
|
|
|
|
|
|
|
|
Support for older systems as targets for cross-compilation is less
|
|
|
|
problematic than support for them as hosts for GCC; if an enthusiast
|
|
|
|
wishes to make such a target work again (including resurrecting any
|
|
|
|
of the targets that never worked with GCC 2, starting from the last
|
|
|
|
CVS version before they were removed), patches
|
|
|
|
@uref{../contribute.html,,following the usual requirements}
|
|
|
|
would be likely to be accepted, since they should not affect the
|
|
|
|
support for more modern targets.
|
|
|
|
|
|
|
|
Support for old systems as hosts for GCC can cause problems if the
|
|
|
|
workarounds for compiler, library and operating system bugs affect the
|
|
|
|
cleanliness or maintainability of the rest of GCC. In some cases, to
|
|
|
|
bring GCC up on such a system, if still possible with current GCC, may
|
|
|
|
require first installing an old version of GCC which did work on that
|
|
|
|
system, and using it to compile a more recent GCC, to avoid bugs in
|
|
|
|
the vendor compiler. Old releases of GCC 1 and GCC 2 are available in
|
|
|
|
the old-releases directory on the
|
|
|
|
@uref{../mirrors.html,,GCC mirror sites}. Header bugs may generally
|
2001-06-01 20:08:19 +02:00
|
|
|
be avoided using @command{fixincludes}, but bugs or deficiencies in
|
|
|
|
libraries and the operating system may still cause problems.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
For some systems, old versions of GNU binutils may also be useful,
|
|
|
|
and are available from pub/binutils/old-releases on
|
|
|
|
@uref{http://sources.redhat.com/mirrors.html,,sources.redhat.com mirror sites}.
|
|
|
|
|
|
|
|
Some of the information on specific systems above relates to
|
|
|
|
such older systems, but much of the information
|
|
|
|
about GCC on such systems (which may no longer be applicable to
|
|
|
|
current GCC) is to be found in the GCC texinfo manual.
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
@end html
|
2001-06-02 20:21:37 +02:00
|
|
|
@heading @anchor{elf_targets}all ELF targets (SVR4, Solaris, etc.)
|
2001-05-12 00:10:54 +02:00
|
|
|
|
2001-06-01 20:08:19 +02:00
|
|
|
C++ support is significantly better on ELF targets if you use the
|
|
|
|
@uref{./configure.html#with-gnu-ld,,GNU linker}; duplicate copies of
|
|
|
|
inlines, vtables and template instantiations will be discarded
|
|
|
|
automatically.
|
2001-05-12 00:10:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
@html
|
|
|
|
</p>
|
|
|
|
<hr>
|
|
|
|
<p>
|
|
|
|
@end html
|
|
|
|
@ifhtml
|
|
|
|
@uref{./index.html,,Return to the GCC Installation page}
|
|
|
|
@end ifhtml
|
|
|
|
@end ifset
|
|
|
|
|
|
|
|
@c ***************************************************************************
|
|
|
|
@c Part 6 The End of the Document
|
|
|
|
@ifinfo
|
|
|
|
@comment node-name, next, previous, up
|
|
|
|
@node Concept Index, , Specific, Top
|
|
|
|
@end ifinfo
|
|
|
|
|
|
|
|
@ifinfo
|
|
|
|
@unnumbered Concept Index
|
|
|
|
|
|
|
|
@printindex cp
|
|
|
|
|
|
|
|
@contents
|
|
|
|
@end ifinfo
|
|
|
|
@bye
|