diff options
author | kan <kan@FreeBSD.org> | 2004-08-12 16:41:42 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2004-08-12 16:41:42 +0000 |
commit | d42790ccc00a70f00d10a3b8f17967a5b396bd4d (patch) | |
tree | 05895ca3fdba11097afd624bf6f64962995c416e /contrib/gcc/doc | |
parent | d42b9316c71d1b89b1b05d36be366eadf7bd8cdf (diff) | |
download | FreeBSD-src-d42790ccc00a70f00d10a3b8f17967a5b396bd4d.zip FreeBSD-src-d42790ccc00a70f00d10a3b8f17967a5b396bd4d.tar.gz |
Remove files that are not part of GCC 3.4.x from the vendor branch.
Diffstat (limited to 'contrib/gcc/doc')
-rw-r--r-- | contrib/gcc/doc/install-old.texi | 725 | ||||
-rw-r--r-- | contrib/gcc/doc/install.texi | 3928 | ||||
-rwxr-xr-x | contrib/gcc/doc/install.texi2html | 31 |
3 files changed, 0 insertions, 4684 deletions
diff --git a/contrib/gcc/doc/install-old.texi b/contrib/gcc/doc/install-old.texi deleted file mode 100644 index 9ce9896..0000000 --- a/contrib/gcc/doc/install-old.texi +++ /dev/null @@ -1,725 +0,0 @@ -@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. -@c This is part of the GCC manual. -@c For copying conditions, see the file install.texi. - -@ifnothtml -@comment node-name, next, previous, up -@node Old, GNU Free Documentation License, Specific, Top -@end ifnothtml -@html -<h1 align="center">Old installation documentation</h1> -@end html -@ifnothtml -@chapter Old installation documentation -@end ifnothtml - -Note most of this information is out of date and superseded by the -previous chapters of this manual. It is provided for historical -reference only, because of a lack of volunteers to merge it into the -main manual. - -@ifnothtml -@menu -* Configurations:: Configurations Supported by GNU CC. -* Cross-Compiler:: Building and installing a cross-compiler. -* VMS Install:: See below for installation on VMS. -@end menu -@end ifnothtml - -Here is the procedure for installing GNU CC on a GNU or Unix system. -See @ref{VMS Install}, for VMS systems. - -@enumerate -@item -If you have chosen a configuration for GNU CC which requires other GNU -tools (such as GAS or the GNU linker) instead of the standard system -tools, install the required tools in the build directory under the names -@file{as}, @file{ld} or whatever is appropriate. This will enable the -compiler to find the proper tools for compilation of the program -@file{enquire}. - -Alternatively, you can do subsequent compilation using a value of the -@code{PATH} environment variable such that the necessary GNU tools come -before the standard system tools. - -@item -Specify the host, build and target machine configurations. You do this -when you run the @file{configure} script. - -The @dfn{build} machine is the system which you are using, the -@dfn{host} machine is the system where you want to run the resulting -compiler (normally the build machine), and the @dfn{target} machine is -the system for which you want the compiler to generate code. - -If you are building a compiler to produce code for the machine it runs -on (a native compiler), you normally do not need to specify any operands -to @file{configure}; it will try to guess the type of machine you are on -and use that as the build, host and target machines. So you don't need -to specify a configuration when building a native compiler unless -@file{configure} cannot figure out what your configuration is or guesses -wrong. - -In those cases, specify the build machine's @dfn{configuration name} -with the @option{--host} option; the host and target will default to be -the same as the host machine. (If you are building a cross-compiler, -see @ref{Cross-Compiler}.) - -Here is an example: - -@smallexample -./configure --host=sparc-sun-sunos4.1 -@end smallexample - -A configuration name may be canonical or it may be more or less -abbreviated. - -A canonical configuration name has three parts, separated by dashes. -It looks like this: @samp{@var{cpu}-@var{company}-@var{system}}. -(The three parts may themselves contain dashes; @file{configure} -can figure out which dashes serve which purpose.) For example, -@samp{m68k-sun-sunos4.1} specifies a Sun 3. - -You can also replace parts of the configuration by nicknames or aliases. -For example, @samp{sun3} stands for @samp{m68k-sun}, so -@samp{sun3-sunos4.1} is another way to specify a Sun 3. - -You can specify a version number after any of the system types, and some -of the CPU types. In most cases, the version is irrelevant, and will be -ignored. So you might as well specify the version if you know it. - -See @ref{Configurations}, for a list of supported configuration names and -notes on many of the configurations. You should check the notes in that -section before proceeding any further with the installation of GNU CC@. - -@end enumerate - -@ifnothtml -@node Configurations, Cross-Compiler, , Old -@section Configurations Supported by GNU CC -@end ifnothtml -@html -<h2>@anchor{Configurations}Configurations Supported by GNU CC</h2> -@end html -@cindex configurations supported by GNU CC - -Here are the possible CPU types: - -@quotation -@c gmicro, fx80, spur and tahoe omitted since they don't work. -1750a, a29k, alpha, arm, avr, c@var{n}, clipper, dsp16xx, elxsi, fr30, h8300, -hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, i960, m32r, -m68000, m68k, m6811, m6812, m88k, mcore, mips, mipsel, mips64, mips64el, -mn10200, mn10300, ns32k, pdp11, powerpc, powerpcle, romp, rs6000, sh, sparc, -sparclite, sparc64, v850, vax, we32k. -@end quotation - -Here are the recognized company names. As you can see, customary -abbreviations are used rather than the longer official names. - -@c What should be done about merlin, tek*, dolphin? -@quotation -acorn, alliant, altos, apollo, apple, att, bull, -cbm, convergent, convex, crds, dec, dg, dolphin, -elxsi, encore, harris, hitachi, hp, ibm, intergraph, isi, -mips, motorola, ncr, next, ns, omron, plexus, -sequent, sgi, sony, sun, tti, unicom, wrs. -@end quotation - -The company name is meaningful only to disambiguate when the rest of -the information supplied is insufficient. You can omit it, writing -just @samp{@var{cpu}-@var{system}}, if it is not needed. For example, -@samp{vax-ultrix4.2} is equivalent to @samp{vax-dec-ultrix4.2}. - -Here is a list of system types: - -@quotation -386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux, -dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux, -linux-gnu, hiux, hpux, iris, irix, isc, luna, lynxos, mach, minix, msdos, mvs, -netbsd, newsos, nindy, ns, osf, osfrose, ptx, riscix, riscos, rtu, sco, sim, -solaris, sunos, sym, sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta, -vxworks, winnt, xenix. -@end quotation - -@noindent -You can omit the system type; then @file{configure} guesses the -operating system from the CPU and company. - -You can add a version number to the system type; this may or may not -make a difference. For example, you can write @samp{bsd4.3} or -@samp{bsd4.4} to distinguish versions of BSD@. In practice, the version -number is most needed for @samp{sysv3} and @samp{sysv4}, which are often -treated differently. - -@samp{linux-gnu} is the canonical name for the GNU/Linux target; however -GNU CC will also accept @samp{linux}. The version of the kernel in use is -not relevant on these systems. A suffix such as @samp{libc1} or @samp{aout} -distinguishes major versions of the C library; all of the suffixed versions -are obsolete. - -If you specify an impossible combination such as @samp{i860-dg-vms}, -then you may get an error message from @file{configure}, or it may -ignore part of the information and do the best it can with the rest. -@file{configure} always prints the canonical name for the alternative -that it used. GNU CC does not support all possible alternatives. - -Often a particular model of machine has a name. Many machine names are -recognized as aliases for CPU/company combinations. Thus, the machine -name @samp{sun3}, mentioned above, is an alias for @samp{m68k-sun}. -Sometimes we accept a company name as a machine name, when the name is -popularly used for a particular machine. Here is a table of the known -machine names: - -@quotation -3300, 3b1, 3b@var{n}, 7300, altos3068, altos, -apollo68, att-7300, balance, -convex-c@var{n}, crds, decstation-3100, -decstation, delta, encore, -fx2800, gmicro, hp7@var{nn}, hp8@var{nn}, -hp9k2@var{nn}, hp9k3@var{nn}, hp9k7@var{nn}, -hp9k8@var{nn}, iris4d, iris, isi68, -m3230, magnum, merlin, miniframe, -mmax, news-3600, news800, news, next, -pbd, pc532, pmax, powerpc, powerpcle, ps2, risc-news, -rtpc, sun2, sun386i, sun386, sun3, -sun4, symmetry, tower-32, tower. -@end quotation - -@noindent -Remember that a machine name specifies both the cpu type and the company -name. -If you want to install your own homemade configuration files, you can -use @samp{local} as the company name to access them. If you use -configuration @samp{@var{cpu}-local}, the configuration name -without the cpu prefix -is used to form the configuration file names. - -Thus, if you specify @samp{m68k-local}, configuration uses -files @file{m68k.md}, @file{local.h}, @file{m68k.c}, -@file{xm-local.h}, @file{t-local}, and @file{x-local}, all in the -directory @file{config/m68k}. - -Here is a list of configurations that have special treatment or special -things you must know: - -@table @samp -@item vax-dec-vms -See @ref{VMS Install}, for details on how to install GNU CC on VMS@. -@end table - -@ifnothtml -@node Cross-Compiler, VMS Install, Configurations, Old -@section Building and Installing a Cross-Compiler -@end ifnothtml -@html -<h2>@anchor{Cross-Compiler}Building and Installing a Cross-Compiler</h2> -@end html -@cindex cross-compiler, installation - -GNU CC can function as a cross-compiler for many machines, but not all. - -@itemize @bullet -@item -Cross-compilers for the Mips as target using the Mips assembler -currently do not work, because the auxiliary programs -@file{mips-tdump.c} and @file{mips-tfile.c} can't be compiled on -anything but a Mips. It does work to cross compile for a Mips -if you use the GNU assembler and linker. - -@item -Cross-compilers between machines with different floating point formats -have not all been made to work. GNU CC now has a floating point -emulator with which these can work, but each target machine description -needs to be updated to take advantage of it. - -@item -Cross-compilation between machines of different word sizes is -somewhat problematic and sometimes does not work. -@end itemize - -Since GNU CC generates assembler code, you probably need a -cross-assembler that GNU CC can run, in order to produce object files. -If you want to link on other than the target machine, you need a -cross-linker as well. You also need header files and libraries suitable -for the target machine that you can install on the host machine. - -@ifnothtml -@menu -* Steps of Cross:: Using a cross-compiler involves several steps - that may be carried out on different machines. -* Configure Cross:: Configuring a cross-compiler. -* Tools and Libraries:: Where to put the linker and assembler, and the C library. -* Cross Headers:: Finding and installing header files - for a cross-compiler. -* Build Cross:: Actually compiling the cross-compiler. -@end menu -@end ifnothtml - -@ifnothtml -@node Steps of Cross, Configure Cross, , Cross-Compiler -@subsection Steps of Cross-Compilation -@end ifnothtml -@html -<h2>Steps of Cross-Compilation</h2> -@end html - -To compile and run a program using a cross-compiler involves several -steps: - -@itemize @bullet -@item -Run the cross-compiler on the host machine to produce assembler files -for the target machine. This requires header files for the target -machine. - -@item -Assemble the files produced by the cross-compiler. You can do this -either with an assembler on the target machine, or with a -cross-assembler on the host machine. - -@item -Link those files to make an executable. You can do this either with a -linker on the target machine, or with a cross-linker on the host -machine. Whichever machine you use, you need libraries and certain -startup files (typically @file{crt@dots{}.o}) for the target machine. -@end itemize - -It is most convenient to do all of these steps on the same host machine, -since then you can do it all with a single invocation of GNU CC@. This -requires a suitable cross-assembler and cross-linker. For some targets, -the GNU assembler and linker are available. - -@ifnothtml -@node Configure Cross, Tools and Libraries, Steps of Cross, Cross-Compiler -@subsection Configuring a Cross-Compiler -@end ifnothtml -@html -<h2>Configuring a Cross-Compiler</h2> -@end html - -To build GNU CC as a cross-compiler, you start out by running -@file{configure}. Use the @option{--target=@var{target}} to specify the -target type. If @file{configure} was unable to correctly identify the -system you are running on, also specify the @option{--build=@var{build}} -option. For example, here is how to configure for a cross-compiler that -produces code for an HP 68030 system running BSD on a system that -@file{configure} can correctly identify: - -@smallexample -./configure --target=m68k-hp-bsd4.3 -@end smallexample - -@ifnothtml -@node Tools and Libraries, Cross Headers, Configure Cross, Cross-Compiler -@subsection Tools and Libraries for a Cross-Compiler -@end ifnothtml -@html -<h2>Tools and Libraries for a Cross-Compiler</h2> -@end html - -If you have a cross-assembler and cross-linker available, you should -install them now. Put them in the directory -@file{/usr/local/@var{target}/bin}. Here is a table of the tools -you should put in this directory: - -@table @file -@item as -This should be the cross-assembler. - -@item ld -This should be the cross-linker. - -@item ar -This should be the cross-archiver: a program which can manipulate -archive files (linker libraries) in the target machine's format. - -@item ranlib -This should be a program to construct a symbol table in an archive file. -@end table - -The installation of GNU CC will find these programs in that directory, -and copy or link them to the proper place to for the cross-compiler to -find them when run later. - -The easiest way to provide these files is to build the Binutils package -and GAS@. Configure them with the same @option{--host} and @option{--target} -options that you use for configuring GNU CC, then build and install -them. They install their executables automatically into the proper -directory. Alas, they do not support all the targets that GNU CC -supports. - -If you want to install libraries to use with the cross-compiler, such as -a standard C library, put them in the directory -@file{/usr/local/@var{target}/lib}; installation of GNU CC copies -all the files in that subdirectory into the proper place for GNU CC to -find them and link with them. Here's an example of copying some -libraries from a target machine: - -@example -ftp @var{target-machine} -lcd /usr/local/@var{target}/lib -cd /lib -get libc.a -cd /usr/lib -get libg.a -get libm.a -quit -@end example - -@noindent -The precise set of libraries you'll need, and their locations on -the target machine, vary depending on its operating system. - -@cindex start files -Many targets require ``start files'' such as @file{crt0.o} and -@file{crtn.o} which are linked into each executable; these too should be -placed in @file{/usr/local/@var{target}/lib}. There may be several -alternatives for @file{crt0.o}, for use with profiling or other -compilation options. Check your target's definition of -@code{STARTFILE_SPEC} to find out what start files it uses. -Here's an example of copying these files from a target machine: - -@example -ftp @var{target-machine} -lcd /usr/local/@var{target}/lib -prompt -cd /lib -mget *crt*.o -cd /usr/lib -mget *crt*.o -quit -@end example - -@ifnothtml -@node Cross Headers, Build Cross, Tools and Libraries, Cross-Compiler -@subsection Cross-Compilers and Header Files -@end ifnothtml -@html -<h2>Cross-Compilers and Header Files</h2> -@end html - -If you are cross-compiling a standalone program or a program for an -embedded system, then you may not need any header files except the few -that are part of GNU CC (and those of your program). However, if you -intend to link your program with a standard C library such as -@file{libc.a}, then you probably need to compile with the header files -that go with the library you use. - -The GNU C compiler does not come with these files, because (1) they are -system-specific, and (2) they belong in a C library, not in a compiler. - -If the GNU C library supports your target machine, then you can get the -header files from there (assuming you actually use the GNU library when -you link your program). - -If your target machine comes with a C compiler, it probably comes with -suitable header files also. If you make these files accessible from the host -machine, the cross-compiler can use them also. - -Otherwise, you're on your own in finding header files to use when -cross-compiling. - -When you have found suitable header files, you should put them in the -directory @file{/usr/local/@var{target}/include}, before building the -cross compiler. Then installation will run fixincludes properly and -install the corrected versions of the header files where the compiler -will use them. - -Provide the header files before you build the cross-compiler, because -the build stage actually runs the cross-compiler to produce parts of -@file{libgcc.a}. (These are the parts that @emph{can} be compiled with -GNU CC@.) Some of them need suitable header files. - -Here's an example showing how to copy the header files from a target -machine. On the target machine, do this: - -@example -(cd /usr/include; tar cf - .) > tarfile -@end example - -Then, on the host machine, do this: - -@example -ftp @var{target-machine} -lcd /usr/local/@var{target}/include -get tarfile -quit -tar xf tarfile -@end example - -@ifnothtml -@node Build Cross, , Cross Headers, Cross-Compiler -@subsection Actually Building the Cross-Compiler -@end ifnothtml -@html -<h2>Actually Building the Cross-Compiler</h2> -@end html - -Now you can proceed just as for compiling a single-machine compiler -through the step of building stage 1. - -If your target is exotic, you may need to provide the header file -@file{float.h}.One way to do this is to compile @file{enquire} and run -it on your target machine. The job of @file{enquire} is to run on the -target machine and figure out by experiment the nature of its floating -point representation. @file{enquire} records its findings in the header -file @file{float.h}. If you can't produce this file by running -@file{enquire} on the target machine, then you will need to come up with -a suitable @file{float.h} in some other way (or else, avoid using it in -your programs). - -Do not try to build stage 2 for a cross-compiler. It doesn't work to -rebuild GNU CC as a cross-compiler using the cross-compiler, because -that would produce a program that runs on the target machine, not on the -host. For example, if you compile a 386-to-68030 cross-compiler with -itself, the result will not be right either for the 386 (because it was -compiled into 68030 code) or for the 68030 (because it was configured -for a 386 as the host). If you want to compile GNU CC into 68030 code, -whether you compile it on a 68030 or with a cross-compiler on a 386, you -must specify a 68030 as the host when you configure it. - -To install the cross-compiler, use @samp{make install}, as usual. - -@ifnothtml -@node VMS Install, , Cross-Compiler, Old -@section Installing GNU CC on VMS -@end ifnothtml -@html -<h2>@anchor{VMS Install}Installing GNU CC on VMS</h2> -@end html -@cindex VMS installation -@cindex installing GNU CC on VMS - -The VMS version of GNU CC is distributed in a backup saveset containing -both source code and precompiled binaries. - -To install the @file{gcc} command so you can use the compiler easily, in -the same manner as you use the VMS C compiler, you must install the VMS CLD -file for GNU CC as follows: - -@enumerate -@item -Define the VMS logical names @samp{GNU_CC} and @samp{GNU_CC_INCLUDE} -to point to the directories where the GNU CC executables -(@file{gcc-cpp.exe}, @file{gcc-cc1.exe}, etc.) and the C include files are -kept respectively. This should be done with the commands: - -@smallexample -$ assign /system /translation=concealed - - disk:[gcc.] gnu_cc -$ assign /system /translation=concealed - - disk:[gcc.include.] gnu_cc_include -@end smallexample - -@noindent -with the appropriate disk and directory names. These commands can be -placed in your system startup file so they will be executed whenever -the machine is rebooted. You may, if you choose, do this via the -@file{GCC_INSTALL.COM} script in the @file{[GCC]} directory. - -@item -Install the @file{GCC} command with the command line: - -@smallexample -$ set command /table=sys$common:[syslib]dcltables - - /output=sys$common:[syslib]dcltables gnu_cc:[000000]gcc -$ install replace sys$common:[syslib]dcltables -@end smallexample - -@item -To install the help file, do the following: - -@smallexample -$ library/help sys$library:helplib.hlb gcc.hlp -@end smallexample - -@noindent -Now you can invoke the compiler with a command like @samp{gcc /verbose -file.c}, which is equivalent to the command @samp{gcc -v -c file.c} in -Unix. -@end enumerate - -If you wish to use GNU C++ you must first install GNU CC, and then -perform the following steps: - -@enumerate -@item -Define the VMS logical name @samp{GNU_GXX_INCLUDE} to point to the -directory where the preprocessor will search for the C++ header files. -This can be done with the command: - -@smallexample -$ assign /system /translation=concealed - - disk:[gcc.gxx_include.] gnu_gxx_include -@end smallexample - -@noindent -with the appropriate disk and directory name. If you are going to be -using a C++ runtime library, this is where its install procedure will install -its header files. - -@item -Obtain the file @file{gcc-cc1plus.exe}, and place this in the same -directory that @file{gcc-cc1.exe} is kept. - -The GNU C++ compiler can be invoked with a command like @samp{gcc /plus -/verbose file.cc}, which is equivalent to the command @samp{g++ -v -c -file.cc} in Unix. -@end enumerate - -We try to put corresponding binaries and sources on the VMS distribution -tape. But sometimes the binaries will be from an older version than the -sources, because we don't always have time to update them. (Use the -@samp{/version} option to determine the version number of the binaries and -compare it with the source file @file{version.c} to tell whether this is -so.) In this case, you should use the binaries you get to recompile the -sources. If you must recompile, here is how: - -@enumerate -@item -Execute the command procedure @file{vmsconfig.com} to set up the files -@file{tm.h}, @file{config.h}, @file{aux-output.c}, and @file{md.}, and -to create files @file{tconfig.h} and @file{hconfig.h}. This procedure -also creates several linker option files used by @file{make-cc1.com} and -a data file used by @file{make-l2.com}. - -@smallexample -$ @@vmsconfig.com -@end smallexample - -@item -Setup the logical names and command tables as defined above. In -addition, define the VMS logical name @samp{GNU_BISON} to point at the -to the directories where the Bison executable is kept. This should be -done with the command: - -@smallexample -$ assign /system /translation=concealed - - disk:[bison.] gnu_bison -@end smallexample - -You may, if you choose, use the @file{INSTALL_BISON.COM} script in the -@file{[BISON]} directory. - -@item -Install the @samp{BISON} command with the command line: - -@smallexample -$ set command /table=sys$common:[syslib]dcltables - - /output=sys$common:[syslib]dcltables - - gnu_bison:[000000]bison -$ install replace sys$common:[syslib]dcltables -@end smallexample - -@item -Type @samp{@@make-gcc} to recompile everything, or submit the file -@file{make-gcc.com} to a batch queue. If you wish to build the GNU C++ -compiler as well as the GNU CC compiler, you must first edit -@file{make-gcc.com} and follow the instructions that appear in the -comments. - -@item -In order to use GCC, you need a library of functions which GCC compiled code -will call to perform certain tasks, and these functions are defined in the -file @file{libgcc2.c}. To compile this you should use the command procedure -@file{make-l2.com}, which will generate the library @file{libgcc2.olb}. -@file{libgcc2.olb} should be built using the compiler built from -the same distribution that @file{libgcc2.c} came from, and -@file{make-gcc.com} will automatically do all of this for you. - -To install the library, use the following commands: - -@smallexample -$ library gnu_cc:[000000]gcclib/delete=(new,eprintf) -$ library gnu_cc:[000000]gcclib/delete=L_* -$ library libgcc2/extract=*/output=libgcc2.obj -$ library gnu_cc:[000000]gcclib libgcc2.obj -@end smallexample - -The first command simply removes old modules that will be replaced with -modules from @file{libgcc2} under different module names. The modules -@code{new} and @code{eprintf} may not actually be present in your -@file{gcclib.olb}---if the VMS librarian complains about those modules -not being present, simply ignore the message and continue on with the -next command. The second command removes the modules that came from the -previous version of the library @file{libgcc2.c}. - -Whenever you update the compiler on your system, you should also update the -library with the above procedure. - -@item -You may wish to build GCC in such a way that no files are written to the -directory where the source files reside. An example would be the when -the source files are on a read-only disk. In these cases, execute the -following DCL commands (substituting your actual path names): - -@smallexample -$ assign dua0:[gcc.build_dir.]/translation=concealed, - - dua1:[gcc.source_dir.]/translation=concealed gcc_build -$ set default gcc_build:[000000] -@end smallexample - -@noindent -where the directory @file{dua1:[gcc.source_dir]} contains the source -code, and the directory @file{dua0:[gcc.build_dir]} is meant to contain -all of the generated object files and executables. Once you have done -this, you can proceed building GCC as described above. (Keep in mind -that @file{gcc_build} is a rooted logical name, and thus the device -names in each element of the search list must be an actual physical -device name rather than another rooted logical name). - -@item -@strong{If you are building GNU CC with a previous version of GNU CC, -you also should check to see that you have the newest version of the -assembler}. In particular, GNU CC version 2 treats global constant -variables slightly differently from GNU CC version 1, and GAS version -1.38.1 does not have the patches required to work with GCC version 2. -If you use GAS 1.38.1, then @code{extern const} variables will not have -the read-only bit set, and the linker will generate warning messages -about mismatched psect attributes for these variables. These warning -messages are merely a nuisance, and can safely be ignored. - -@item -If you want to build GNU CC with the VAX C compiler, you will need to -make minor changes in @file{make-cccp.com} and @file{make-cc1.com} -to choose alternate definitions of @code{CC}, @code{CFLAGS}, and -@code{LIBS}. See comments in those files. However, you must -also have a working version of the GNU assembler (GNU as, aka GAS) as -it is used as the back end for GNU CC to produce binary object modules -and is not included in the GNU CC sources. GAS is also needed to -compile @file{libgcc2} in order to build @file{gcclib} (see above); -@file{make-l2.com} expects to be able to find it operational in -@file{gnu_cc:[000000]gnu-as.exe}. - -To use GNU CC on VMS, you need the VMS driver programs -@file{gcc.exe}, @file{gcc.com}, and @file{gcc.cld}. They are -distributed with the VMS binaries (@file{gcc-vms}) rather than the -GNU CC sources. GAS is also included in @file{gcc-vms}, as is Bison. - -Once you have successfully built GNU CC with VAX C, you should use the -resulting compiler to rebuild itself. Before doing this, be sure to -restore the @code{CC}, @code{CFLAGS}, and @code{LIBS} definitions in -@file{make-cccp.com} and @file{make-cc1.com}. The second generation -compiler will be able to take advantage of many optimizations that must -be suppressed when building with other compilers. -@end enumerate - -Under previous versions of GNU CC, the generated code would occasionally -give strange results when linked with the sharable @file{VAXCRTL} library. -Now this should work. - -Even with this version, however, GNU CC itself should not be linked with -the sharable @file{VAXCRTL}. The version of @code{qsort} in -@file{VAXCRTL} has a bug (known to be present in VMS versions V4.6 -through V5.5) which causes the compiler to fail. - -The executables are generated by @file{make-cc1.com} and -@file{make-cccp.com} use the object library version of @file{VAXCRTL} in -order to make use of the @code{qsort} routine in @file{gcclib.olb}. If -you wish to link the compiler executables with the shareable image -version of @file{VAXCRTL}, you should edit the file @file{tm.h} (created -by @file{vmsconfig.com}) to define the macro @code{QSORT_WORKAROUND}. - -@code{QSORT_WORKAROUND} is always defined when GNU CC is compiled with -VAX C, to avoid a problem in case @file{gcclib.olb} is not yet -available. diff --git a/contrib/gcc/doc/install.texi b/contrib/gcc/doc/install.texi deleted file mode 100644 index 350d365..0000000 --- a/contrib/gcc/doc/install.texi +++ /dev/null @@ -1,3928 +0,0 @@ -\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 -@ifset oldhtml -@settitle Installing GCC: Old documentation -@end ifset -@ifset gfdlhtml -@settitle Installing GCC: GNU Free Documentation License -@end ifset - -@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -@c 1999, 2000, 2001, 2002 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 -@set oldhtml -@set gfdlhtml -@end ifnothtml - -@c Part 2 Summary Description and Copyright -@macro copyrightnotice -Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -1999, 2000, 2001, 2002 Free Software Foundation, Inc. -@sp 1 -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with no -Invariant Sections, the Front-Cover texts being (a) (see below), and -with the Back-Cover Texts being (b) (see below). A copy of the -license is included in the section entitled ``@uref{./gfdl.html,,GNU -Free Documentation License}''. - -(a) The FSF's Front-Cover Text is: - - A GNU Manual - -(b) The FSF's Back-Cover Text is: - - You have freedom to copy and modify this GNU Manual, like GNU - software. Copies published by the Free Software Foundation raise - funds for GNU development. -@end macro -@ifinfo -@copyrightnotice{} -@end ifinfo - -@c Part 3 Titlepage and Copyright -@titlepage -@sp 10 -@comment The title is printed in a large font. -@center @titlefont{Installing GCC} - -@c The following two commands start the copyright page. -@page -@vskip 0pt plus 1filll -@copyrightnotice{} -@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. - -* Old:: Old installation documentation. - -* GNU Free Documentation License:: How you can copy and share this manual. -* Concept Index:: This index has two entries. -@end menu -@end ifinfo - -@c Part 5 The Body of the Document -@c ***Installing GCC********************************************************** -@ifnothtml -@comment node-name, next, previous, up -@node Installing GCC, Binaries, , Top -@end ifnothtml -@ifset indexhtml -@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. - -@emph{Before} starting the build/install procedure please check the -@ifnothtml -@ref{Specific, host/target specific installation notes}. -@end ifnothtml -@ifhtml -@uref{specific.html,,host/target specific installation notes}. -@end ifhtml -We recommend you browse the entire generic installation instructions before -you proceed. - -Lists of successful builds for released versions of GCC are -available at @uref{http://gcc.gnu.org/buildstat.html}. -These lists are updated as new information becomes available. - -The installation procedure itself is broken into five steps. - -@ifinfo -@menu -* Downloading the source:: -* Configuration:: -* Building:: -* Testing:: (optional) -* Final install:: -@end menu -@end ifinfo -@ifhtml -@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 ifhtml - -Please note that GCC does not support @samp{make uninstall} and probably -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 -remove that directory when you do not need that specific version of GCC -any longer, and, if shared libraries are installed there as well, no -more binaries exist that use them. - -@ifhtml -There are also some @uref{old.html,,old installation instructions}, -which are mostly obsolete but still contain some information which has -not yet been merged into the main part of this manual. -@end ifhtml - -@html -<hr /> -<p> -@end html -@ifhtml -@uref{./index.html,,Return to the GCC Installation page} - -@copyrightnotice{} -@end ifhtml -@end ifset - -@c ***Downloading the source************************************************** -@ifnothtml -@comment node-name, next, previous, up -@node Downloading the source, Configuration, , Installing GCC -@end ifnothtml -@ifset downloadhtml -@ifnothtml -@chapter Downloading GCC -@end ifnothtml -@cindex Downloading GCC -@cindex Downloading the Source - -GCC is distributed via @uref{http://gcc.gnu.org/cvs.html,,CVS} and FTP -tarballs compressed with @command{gzip} or -@command{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 Ada (in case of GCC 3.1 and later) compilers. The full distribution -also includes runtime libraries for C++, Objective-C, Fortran, and Java. -In GCC 3.0 and later versions, GNU compiler testsuites are also 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 -(@file{bfd}, @file{binutils}, @file{gas}, @file{gprof}, @file{ld}, -@file{opcodes}, @dots{}) 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*********************************************************** -@ifnothtml -@comment node-name, next, previous, up -@node Configuration, Building, Downloading the source, Installing GCC -@end ifnothtml -@ifset configurehtml -@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. - -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. - -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 -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. - -If you have previously built GCC in the same directory for a -different target machine, do @samp{make distclean} to delete all files -that might be invalid. One of the files this deletes is -@file{Makefile}; if @samp{make distclean} complains that @file{Makefile} -does not exist, it probably means that the directory is already suitably -clean. However, with the recommended method of building in a separate -@var{objdir}, you should simply use a different @var{objdir} for each -target. - -Second, when configuring a native system, either @command{cc} or -@command{gcc} must be in your path or you must set @env{CC} in -your environment before running configure. Otherwise the configuration -scripts may fail. - -Note that the bootstrap compiler and the resulting GCC must be link -compatible, else the bootstrap will fail with linker errors about -incompatible object file formats. Several multilibed targets are -affected by this requirement, see -@ifnothtml -@ref{Specific, host/target specific installation notes}. -@end ifnothtml -@ifhtml -@uref{specific.html,,host/target specific installation notes}. -@end ifhtml - -To configure GCC: - -@example - % mkdir @var{objdir} - % cd @var{objdir} - % @var{srcdir}/configure [@var{options}] [@var{target}] -@end example - - -@heading Target specification -@itemize @bullet -@item -GCC has code to correctly determine the correct value for @var{target} -for nearly all native systems. Therefore, we highly recommend you not -provide a configure target when configuring a native compiler. - -@item -@var{target} must be specified as @option{--target=@var{target}} -when configuring a cross compiler; examples of valid targets would be -i960-rtems, m68k-coff, sh-elf, etc. - -@item -Specifying just @var{target} instead of @option{--target=@var{target}} -implies that the host defaults to @var{target}. -@end itemize - - -@heading Options specification - -Use @var{options} to override several configure time options for -GCC@. A list of supported @var{options} follows; @command{configure ---help} may list other options, but those not listed below may not -work and should not normally be used. - -@table @code -@item --prefix=@var{dirname} -Specify the toplevel installation -directory. This is the recommended way to install the tools into a directory -other than the default. The toplevel installation directory defaults to -@file{/usr/local}. - -We @strong{highly} recommend against @var{dirname} being the same or a -subdirectory of @var{objdir} or vice versa. - -These additional options control where certain parts of the distribution -are installed. Normally you should not need to use these options. -@table @code -@item --exec-prefix=@var{dirname} -Specify the toplevel installation directory for architecture-dependent -files. The default is @file{@var{prefix}}. - -@item --bindir=@var{dirname} -Specify the installation directory for the executables called by users -(such as @command{gcc} and @command{g++}). The default is -@file{@var{exec-prefix}/bin}. - -@item --libdir=@var{dirname} -Specify the installation directory for object code libraries and -internal parts of GCC@. The default is @file{@var{exec-prefix}/lib}. - -@item --with-slibdir=@var{dirname} -Specify the installation directory for the shared libgcc library. The -default is @file{@var{libdir}}. - -@item --infodir=@var{dirname} -Specify the installation directory for documentation in info format. -The default is @file{@var{prefix}/info}. - -@item --mandir=@var{dirname} -Specify the installation directory for manual pages. The default is -@file{@var{prefix}/man}. (Note that the manual pages are only extracts from -the full GCC manuals, which are provided in Texinfo format. The -@command{g77} manpage is unmaintained and may be out of date; the others -are derived by an automatic conversion process from parts of the full -manual.) - -@item --with-gxx-include-dir=@var{dirname} -Specify -the installation directory for G++ header files. The default is -@file{@var{prefix}/include/g++-v3}. - -@end table - -@item --program-prefix=@var{prefix} -GCC supports some transformations of the names of its programs when -installing them. This option prepends @var{prefix} to the names of -programs to install in @var{bindir} (see above). For example, specifying -@option{--program-prefix=foo-} would result in @samp{gcc} -being installed as @file{/usr/local/bin/foo-gcc}. - -@item --program-suffix=@var{suffix} -Appends @var{suffix} to the names of programs to install in @var{bindir} -(see above). For example, specifying @option{--program-suffix=-3.1} -would result in @samp{gcc} being installed as -@file{/usr/local/bin/gcc-3.1}. - -@item --program-transform-name=@var{pattern} -Applies the @samp{sed} script @var{pattern} to be applied to the names -of programs to install in @var{bindir} (see above). @var{pattern} has to -consist of one or more basic @samp{sed} editing commands, separated by -semicolons. For example, if you want the @samp{gcc} program name to be -transformed to the installed program @file{/usr/local/bin/myowngcc} and -the @samp{g++} program name to be transformed to -@file{/usr/local/bin/gspecial++} without changing other program names, -you could use the pattern -@option{--program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/'} -to achieve this effect. - -All three options can be combined and used together, resulting in more -complex conversion patterns. As a basic rule, @var{prefix} (and -@var{suffix}) are prepended (appended) before further transformations -can happen with a special transformation script @var{pattern}. - -As currently implemented, these options only take effect for native -builds; cross compiler binaries' names are not transformed even when a -transformation is explicitly asked for by one of these options. - -For native builds, some of the installed programs are also installed -with the target alias in front of their name, as in -@samp{i686-pc-linux-gnu-gcc}. All of the above transformations happen -before the target alias is prepended to the name - so, specifying -@option{--program-prefix=foo-} and @option{program-suffix=-3.1}, the -resulting binary would be installed as -@file{/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1}. - -As a last shortcoming, none of the installed Ada programs are -transformed yet, which will be fixed in some time. - -@item --with-local-prefix=@var{dirname} -Specify the -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.) - -Both the local-prefix include directory and the GCC-prefix include -directory are part of GCC's "system include" directories. Although these -two directories are not fixed, they need to be searched in the proper -order for the correct processing of the include_next directive. The -local-prefix include directory is searched before the GCC-prefix -include directory. Another characteristic of system include directories -is that pedantic warnings are turned off for headers in these directories. - -Some autoconf macros add @option{-I @var{directory}} options to the -compiler command line, to ensure that directories containing installed -packages' headers are searched. When @var{directory} is one of GCC's -system include directories, GCC will ignore the option so that system -directories continue to be processed in the correct order. This -may result in a search order different from what was specified but the -directory will still be searched. - -GCC automatically searches for ordinary libraries using -@env{GCC_EXEC_PREFIX}. Thus, when the same installation prefix is -used for both GCC and packages, GCC will automatically search for -both headers and libraries. This provides a configuration that is -easy to use. GCC behaves in a manner similar to that when it is -installed as a system compiler in @file{/usr}. - -Sites that need to install multiple versions of GCC may not want to -use the above simple configuration. It is possible to use the -@option{--program-prefix}, @option{--program-suffix} and -@option{--program-transform-name} options to install multiple versions -into a single directory, but it may be simpler to use different prefixes -and the @option{--with-local-prefix} option to specify the location of the -site-specific files for each version. It will then be necessary for -users to specify explicitly the location of local site libraries -(e.g., with @env{LIBRARY_PATH}). - -The same value can be used for both @option{--with-local-prefix} and -@option{--prefix} provided it is not @file{/usr}. This can be used -to avoid the default search of @file{/usr/local/include}. - -@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 @command{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. - -@item --enable-shared[=@var{package}[,@dots{}]] -Build shared versions of libraries, if shared libraries are supported on -the target platform. Unlike GCC 2.95.x and earlier, shared libraries -are enabled by default on all platforms that support shared libraries, -except for @samp{libobjc} which is built as a static library only by -default. - -If a list of packages is given as an argument, build shared libraries -only for the listed packages. For other packages, only static libraries -will be built. Package names currently recognized in the GCC tree are -@samp{libgcc} (also known as @samp{gcc}), @samp{libstdc++} (not -@samp{libstdc++-v3}), @samp{libffi}, @samp{zlib}, @samp{boehm-gc} and -@samp{libjava}. Note that @samp{libobjc} does not recognize itself by -any name, so, if you list package names in @option{--enable-shared}, -you will only get static Objective-C libraries. @samp{libf2c} and -@samp{libiberty} do not support shared libraries at all. - -Use @option{--disable-shared} to build only static libraries. Note that -@option{--disable-shared} does not accept a list of package names as -argument, only @option{--enable-shared} does. - -@item @anchor{with-gnu-as}--with-gnu-as -Specify that the compiler should assume that the -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. (Confusion will also -result if the compiler finds the GNU assembler but has not been -configured with @option{--with-gnu-as}.) If you have more than one -assembler installed on your system, you may want to use this option in -connection with @option{--with-as=@var{pathname}}. - -The following systems are the only ones where it makes a difference -whether you use the GNU assembler. On any other system, -@option{--with-gnu-as} has no effect. - -@itemize bullet -@item @samp{hppa1.0-@var{any}-@var{any}} -@item @samp{hppa1.1-@var{any}-@var{any}} -@item @samp{i386-@var{any}-sysv} -@item @samp{i386-@var{any}-isc} -@item @samp{i860-@var{any}-bsd} -@item @samp{m68k-bull-sysv} -@item @samp{m68k-hp-hpux} -@item @samp{m68k-sony-bsd} -@item @samp{m68k-altos-sysv} -@item @samp{m68000-hp-hpux} -@item @samp{m68000-att-sysv} -@item @samp{@var{any}-lynx-lynxos} -@item @samp{mips-@var{any}} -@end itemize - -On the systems listed above (except for the HP-PA, for ISC on the -386, and for @samp{mips-sgi-irix5.*}), if you use the GNU assembler, -you should also use the GNU linker (and specify @option{--with-gnu-ld}). - -@item --with-as=@var{pathname} -Specify that the -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: -@itemize @bullet -@item -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=@var{pathname}} switch described above. @var{target} is the -target system triple, such as @samp{sparc-sun-solaris2.7}, and -@var{version} denotes the GCC version, such as 3.0. -@item -Check operating system specific directories (e.g.@: @file{/usr/ccs/bin} on -Sun Solaris 2). -@end itemize -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. - -@item @anchor{with-gnu-ld}--with-gnu-ld -Same as @uref{#with-gnu-as,,@option{--with-gnu-as}} -but for linker. - - -@item --with-ld=@var{pathname} -Same as -@option{--with-as}, but for the linker. - -@item --with-stabs -Specify that stabs debugging -information should be used instead of whatever format the host normally -uses. Normally GCC uses the same debug format as the host system. - -On MIPS based systems and on Alphas, you must specify whether you want -GCC to create the normal ECOFF debugging format, or to use BSD-style -stabs passed through the ECOFF symbol table. The normal ECOFF debug -format cannot fully handle languages other than C@. BSD stabs format can -handle other languages, but it only works with the GNU debugger GDB@. - -Normally, GCC uses the ECOFF debugging format by default; if you -prefer BSD stabs, specify @option{--with-stabs} when you configure GCC@. - -No matter which default you choose when you configure GCC, the user -can use the @option{-gcoff} and @option{-gstabs+} options to specify explicitly -the debug format for a particular compilation. - -@option{--with-stabs} is meaningful on the ISC system on the 386, also, if -@option{--with-gas} is used. It selects use of stabs debugging -information embedded in COFF output. This kind of debugging information -supports C++ well; ordinary COFF debugging information does not. - -@option{--with-stabs} is also meaningful on 386 systems running SVR4. It -selects use of stabs debugging information embedded in ELF output. The -C++ compiler currently (2.6.0) does not support the DWARF debugging -information normally used on 386 SVR4 platforms; stabs provide a -workable alternative. This requires gas and gdb, as the normal SVR4 -tools can not generate or interpret stabs. - -@item --disable-multilib -Specify that multiple target -libraries to support different target variants, calling -conventions, etc should not be built. The default is to build a -predefined set of them. - -Some targets provide finer-grained control over which multilibs are built -(e.g., @option{--disable-softfloat}): -@table @code -@item arc-*-elf* -biendian. - -@item arm-*-* -fpu, 26bit, underscore, interwork, biendian, nofmult. - -@item m68*-*-* -softfloat, m68881, m68000, m68020. - -@item mips*-*-* -single-float, biendian, softfloat. - -@item powerpc*-*-*, rs6000*-*-* -aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian, -sysv, aix. - -@end table - -@item --enable-threads -Specify that the target -supports threads. This affects the Objective-C compiler and runtime -library, and exception handling for other languages like C++ and Java. -On some systems, this is the default. - -In general, the best (and, in many cases, the only known) threading -model available will be configured for use. Beware that on some -systems, gcc has not been taught what threading models are generally -available for the system. In this case, @option{--enable-threads} is an -alias for @option{--enable-threads=single}. - -@item --disable-threads -Specify that threading support should be disabled for the system. -This is an alias for @option{--enable-threads=single}. - -@item --enable-threads=@var{lib} -Specify that -@var{lib} is the thread support library. This affects the Objective-C -compiler and runtime library, and exception handling for other languages -like C++ and Java. The possibilities for @var{lib} are: - -@table @code -@item aix -AIX thread support. -@item dce -DCE thread support. -@item mach -Generic MACH thread support, known to work on NeXTSTEP@. (Please note -that the file needed to support this configuration, @file{gthr-mach.h}, is -missing and thus this setting will cause a known bootstrap failure.) -@item no -This is an alias for @samp{single}. -@item posix -Generic POSIX thread support. -@item pthreads -Same as @samp{posix} on arm*-*-linux*, *-*-chorusos* and *-*-freebsd* -only. A future release of gcc might remove this alias or extend it -to all platforms. -@item rtems -RTEMS thread support. -@item single -Disable thread support, should work for all platforms. -@item solaris -Sun Solaris 2 thread support. -@item vxworks -VxWorks thread support. -@item win32 -Microsoft Win32 API thread support. -@end table - -@item --with-cpu=@var{cpu} -Specify which cpu variant the -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. - -@item --enable-altivec -Specify that the target supports AltiVec vector enhancements. This -option will adjust the ABI for AltiVec enhancements, as well as generate -AltiVec code when appropriate. This option is only available for -PowerPC systems. - -@item --enable-target-optspace -Specify that target -libraries should be optimized for code space instead of code speed. -This is the default for the m32r platform. - -@item --disable-cpp -Specify that a user visible @command{cpp} program should not be installed. - -@item --with-cpp-install-dir=@var{dirname} -Specify that the user visible @command{cpp} program should be installed -in @file{@var{prefix}/@var{dirname}/cpp}, in addition to @var{bindir}. - -@item --enable-maintainer-mode -The build rules that -regenerate the GCC master message catalog @file{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. - -@item --enable-version-specific-runtime-libs -Specify -that runtime libraries should be installed in the compiler specific -subdirectory (@file{@var{libsubdir}}) rather than the usual places. In -addition, @samp{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 @samp{libf2c} and -@samp{libstdc++}, and is the default for @samp{libobjc} which cannot be -changed in this case. - -@item --enable-languages=@var{lang1},@var{lang2},@dots{} -Specify that only a particular subset of compilers and -their runtime libraries should be built. For a list of valid values for -@var{langN} you can issue the following command in the -@file{gcc} directory of your GCC source tree:@* -@example -grep language= */config-lang.in -@end example -Currently, you can use any of the following: -@code{ada}, @code{c}, @code{c++}, @code{f77}, @code{java}, @code{objc}. -Building the Ada compiler has special requirements, see below.@* -If you do not pass this flag, all languages available in the @file{gcc} -sub-tree will be configured. Re-defining @code{LANGUAGES} when calling -@samp{make bootstrap} @strong{does not} work anymore, as those -language sub-directories might not have been configured! - -@item --disable-libgcj -Specify that the run-time libraries -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 @samp{libgcj} isn't built, you -may need to port it; in this case, before modifying the top-level -@file{configure.in} so that @samp{libgcj} is enabled by default on this platform, -you may use @option{--enable-libgcj} to override the default. - -@item --with-dwarf2 -Specify that the compiler should -use DWARF 2 debugging information as the default. - -@item --enable-win32-registry -@itemx --enable-win32-registry=@var{key} -@itemx --disable-win32-registry -The @option{--enable-win32-registry} option enables Windows-hosted GCC -to look up installations paths in the registry using the following key: - -@smallexample -@code{HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\@var{key}} -@end smallexample - -@var{key} defaults to GCC version number, and can be overridden by the -@option{--enable-win32-registry=@var{key}} option. Vendors and distributors -who use custom installers are encouraged to provide a different key, -perhaps one comprised of vendor name and GCC version number, to -avoid conflict with existing installations. This feature is enabled -by default, and can be disabled by @option{--disable-win32-registry} -option. This option has no effect on the other hosts. - -@item --nfp -Specify that the machine does not have a floating point unit. This -option only applies to @samp{m68k-sun-sunos@var{n}} and -@samp{m68k-isi-bsd}. On any other system, @option{--nfp} has no effect. - -@item --enable-checking -@itemx --enable-checking=@var{list} -When you specify this option, the compiler is built to perform checking -of tree node types when referencing fields of that node, and some other -internal consistency checks. This does not change the generated code, -but adds error checking within the compiler. This will slow down the -compiler and may only work properly if you are building the compiler -with GCC@. This is on by default when building from CVS or snapshots, -but off for releases. More control over the checks may be had by -specifying @var{list}; the categories of checks available are -@samp{misc}, @samp{tree}, @samp{gc}, @samp{rtl} and @samp{gcac}. The -default when @var{list} is not specified is @samp{misc,tree,gc}; the -checks @samp{rtl} and @samp{gcac} are very expensive. - -@item --enable-nls -@itemx --disable-nls -The @option{--enable-nls} option enables Native Language Support (NLS), -which lets GCC output diagnostics in languages other than American -English. Native Language Support is enabled by default if not doing a -canadian cross build. The @option{--disable-nls} option disables NLS@. - -@item --with-included-gettext -If NLS is enabled, the @option{--with-included-gettext} option causes the build -procedure to prefer its copy of GNU @command{gettext}. - -@item --with-catgets -If NLS is enabled, and if the host lacks @code{gettext} but has the -inferior @code{catgets} interface, the GCC build procedure normally -ignores @code{catgets} and instead uses GCC's copy of the GNU -@code{gettext} library. The @option{--with-catgets} option causes the -build procedure to use the host's @code{catgets} in this situation. - -@item --with-libiconv-prefix=@var{dir} -Search for libiconv header files in @file{@var{dir}/include} and -libiconv library files in @file{@var{dir}/lib}. - -@item --with-system-zlib -Use installed zlib rather than that included with GCC@. This option -only applies if the Java front end is being built. - -@item --enable-obsolete -Enable configuration for an obsoleted system. If you attempt to -configure GCC for a system (build, host, or target) which has been -obsoleted, and you do not specify this flag, configure will halt with an -error message. - -All support for systems which have been obsoleted in one release of GCC -is removed entirely in the next major release, unless someone steps -forward to maintain the port. -@end table - -Some options which only apply to building cross compilers: -@table @code -@item --with-headers=@var{dir} -Specifies a directory -which has target include files. -@emph{This option is required} when building a cross -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. -@command{fixincludes} will be run on these files to make them compatible with -GCC. -@item --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}'' -Specifies a list of directories which contain the target runtime -libraries. These libraries will be copied into the @file{gcc} install -directory. -@item --with-newlib -Specifies that @samp{newlib} is -being used as the target C library. This causes @code{__eprintf} to be -omitted from @file{libgcc.a} on the assumption that it will be provided by -@samp{newlib}. -@end table - -Note that each @option{--enable} option has a corresponding -@option{--disable} option and that each @option{--with} option has a -corresponding @option{--without} option. - -@html -<hr /> -<p> -@end html -@ifhtml -@uref{./index.html,,Return to the GCC Installation page} -@end ifhtml -@end ifset - -@c ***Building**************************************************************** -@ifnothtml -@comment node-name, next, previous, up -@node Building, Testing, Configuration, Installing GCC -@end ifnothtml -@ifset buildhtml -@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. -GNU make is required for compiling GNAT (the Ada compiler) and the Java -runtime library. - -(For example, many broken versions of make will fail if you use the -recommended setup where @var{objdir} is different from @var{srcdir}. -Other broken versions may recompile parts of the compiler when -installing the compiler.) - -Some commands executed when making the compiler may fail (return a -nonzero 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 -@env{CC} can interfere with the functioning of @command{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 @command{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@. - -When building from CVS or snapshots, or if you modify parser sources, -you need the Bison parser generator installed. Any version 1.25 or -later should work; older versions may also work. If you do not modify -parser sources, releases contain the Bison-generated files and you do -not need Bison installed to build them. - -When building from CVS or snapshots, or if you modify Texinfo -documentation, you need version 4.1 or later of Texinfo installed if you -want Info documentation to be regenerated. Releases contain Info -documentation pre-built for the unmodified documentation in the release. - -@section Building a native compiler - -For a native build issue the command @samp{make bootstrap}. This -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 - -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 -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 -without debugging information as in the following example. This will save -roughly 40% of disk space both for the bootstrap and the final installation. -(Libraries will still contain debugging information.) - -@example - make CFLAGS='-O' LIBCFLAGS='-g -O2' \ - LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap -@end example - -If you wish to use non-default GCC flags when compiling the stage2 and -stage3 compilers, set @code{BOOT_CFLAGS} on the command line when doing -@samp{make bootstrap}. Non-default optimization flags are less well -tested here than the default of @samp{-g -O2}, but should still work. -In a few cases, you may find that you need to specify special flags such -as @option{-msoft-float} here to complete the bootstrap; or, if the -native compiler miscompiles the stage1 compiler, you may need to work -around this, by choosing @code{BOOT_CFLAGS} to avoid the parts of the -stage1 compiler that were miscompiled, or by using @samp{make -bootstrap4} to increase the number of stages of bootstrap. - -If you used the flag @option{--enable-languages=@dots{}} to restrict -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, -that re-defining @env{LANGUAGES} when calling @samp{make bootstrap} -@strong{does not} work anymore! - -If the comparison of stage2 and stage3 fails, this normally indicates -that the stage2 compiler has compiled GCC incorrectly, and is therefore -a potentially serious bug which you should investigate and report. (On -a few systems, meaningful comparison of object files is impossible; they -always appear ``different''. If you encounter this problem, you will -need to disable comparison in the @file{Makefile}.) - -@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. The installed native compiler needs to be GCC version -2.95 or later. - -Assuming you have already installed a native copy of GCC and configured -your cross compiler, issue the command @command{make}, which performs 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 -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 - -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} -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. - -@section Building the Ada compiler - -In order to build GNAT, the Ada compiler, you need a working GNAT -compiler (GNAT version 3.13 or later, or GCC version 3.1 or later), -since the Ada front end is written in Ada (with some -GNAT-specific extensions), and GNU make. - -However, you do not need a full installation of GNAT, just the GNAT -binary @file{gnat1}, a copy of @file{gnatbind}, and a compiler driver -which can deal with Ada input (by invoking the @file{gnat1} binary). -You can specify this compiler driver by setting the @env{ADAC} -environment variable at the configure step. @command{configure} can -detect the driver automatically if it has got a common name such as -@command{gcc} or @command{gnatgcc}. Of course, you still need a working -C compiler (the compiler driver can be different or not). -@command{configure} does not test whether the GNAT installation works -and has a sufficiently recent version; if too old a GNAT version is -installed, the build will fail unless @option{--enable-languages} is -used to disable building the Ada front end. - -Additional build tools (such as @command{gnatmake}) or a working GNAT -run-time library installation are usually @emph{not} required. However, -if you want to bootstrap the compiler using a minimal version of GNAT, -you have to issue the following commands before invoking @samp{make -bootstrap} (this assumes that you start with an unmodified and consistent -source distribution): - -@example - cd @var{srcdir}/gcc/ada - touch treeprs.ads [es]info.h nmake.ad[bs] -@end example - -At the moment, the GNAT library and several tools for GNAT are not built -by @samp{make bootstrap}. You have to invoke -@samp{make gnatlib_and_tools} in the @file{@var{objdir}/gcc} -subdirectory before proceeding with the next steps. - -For example, you can build a native Ada compiler by issuing the -following commands (assuming @command{make} is GNU make): - -@example - cd @var{objdir} - @var{srcdir}/configure --enable-languages=c,ada - cd @var{srcdir}/gcc/ada - touch treeprs.ads [es]info.h nmake.ad[bs] - cd @var{objdir} - make bootstrap - cd gcc - make gnatlib_and_tools - cd .. -@end example - -Currently, when compiling the Ada front end, you cannot use the parallel -build feature described in the previous section. - -@html -<hr /> -<p> -@end html -@ifhtml -@uref{./index.html,,Return to the GCC Installation page} -@end ifhtml -@end ifset - -@c ***Testing***************************************************************** -@ifnothtml -@comment node-name, next, previous, up -@node Testing, Final install, Building, Installing GCC -@end ifnothtml -@ifset testhtml -@ifnothtml -@chapter Installing GCC: Testing -@end ifnothtml -@cindex Testing -@cindex Installing GCC: Testing -@cindex Testsuite - -Before you install GCC, we encourage you to run the testsuites and to -compare your results with results from a similar configuration that have -been submitted to the -@uref{http://gcc.gnu.org/ml/gcc-testresults/,,gcc-testresults mailing list}. -This step is optional and may require you to download additional software, -but it can give you confidence in your new GCC installation or point out -problems before you install and start using your new GCC. - -First, you must have @uref{download.html,,downloaded the testsuites}. -These are part of the full distribution, but if you downloaded the -``core'' compiler plus any front ends, you must download the testsuites -separately. - -Second, you must have the testing tools installed. This includes -a @uref{http://www.gnu.org/software/dejagnu/,,current version of DejaGnu}; -dejagnu 1.3 is not sufficient. -It also includes Tcl and Expect; the DejaGnu site has links to these. - -Now you may need specific preparations: - -@itemize @bullet - -@item -The following environment variables may need to be set appropriately, as in -the following example (which assumes that DejaGnu has been installed -under @file{/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. - -If the directories where @command{runtest} and @command{expect} were -installed are in the @env{PATH}, it should not be necessary to set these -environment variables. - -@end itemize - -Finally, you can run the testsuite (which may take a long time): -@example - cd @var{objdir}; make -k check -@end example - -The testing process will try to test as many components in the GCC -distribution as possible, including the C, C++, Objective-C and Fortran -compilers as well as the C++ and Java runtime libraries. - -While running the testsuite, DejaGnu might emit messages resembling -@samp{WARNING: Couldn't find the global config file.} or -@samp{WARNING: Couldn't find tool init file}. -These messages are harmless and do not affect the validity of the tests. - -@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 -possible to use @samp{make check-gcc} or @samp{make check-g++} -in the @file{gcc} subdirectory of the object directory. To further cut down the -tests the following is possible: - -@example - make check-gcc RUNTESTFLAGS="execute.exp @var{other-options}" -@end example - -This will run all @command{gcc} execute tests in the testsuite. - -@example - make check-g++ RUNTESTFLAGS="old-deja.exp=9805* @var{other-options}" -@end example - -This will run the @command{g++} ``old-deja'' tests in the testsuite where the filename -matches @samp{9805*}. - -The @file{*.exp} files are located in the testsuite directories of the GCC -source, the most important ones being @file{compile.exp}, -@file{execute.exp}, @file{dg.exp} and @file{old-deja.exp}. -To get a list of the possible @file{*.exp} files, pipe the -output of @samp{make check} into a file and look at the -@samp{Running @dots{} .exp} lines. - -To run only the tests for a library, run @samp{make check} from the -the library's testsuite in a subdirectory of the object directory: -@file{libstdc++-v3/testsuite} or @file{libcgj/testsuite}. - -@section Additional testing for Java Class Libraries - -The @uref{http://sources.redhat.com/mauve/,,Mauve Project} provides -a suite of tests for the Java Class Libraries. This suite can be run -as part of libgcj testing by specifying the location of the Mauve tree -when invoking @samp{make}, as in @samp{make MAUVEDIR=~/mauve check}. - -@section How to interpret test results - -After the testsuite has run you'll find various @file{*.sum} and @file{*.log} -files in the testsuite subdirectories. The @file{*.log} files contain a -detailed log of the compiler invocations and the corresponding -results, the @file{*.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 - -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. - - -@section Submitting test results - -If you want to report the results to the GCC project, use the -@file{contrib/test_summary} shell script. Start it in the @var{objdir} with - -@example - @var{srcdir}/contrib/test_summary -p your_commentary.txt \ - -m gcc-testresults@@gcc.gnu.org |sh -@end example - -This script uses the @command{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. - -@html -<hr /> -<p> -@end html -@ifhtml -@uref{./index.html,,Return to the GCC Installation page} -@end ifhtml -@end ifset - -@c ***Final install*********************************************************** -@ifnothtml -@comment node-name, next, previous, up -@node Final install, , Testing, Installing GCC -@end ifnothtml -@ifset finalinstallhtml -@ifnothtml -@chapter Installing GCC: Final installation -@end ifnothtml - -Now that GCC has been built (and optionally tested), you can install it with -@example -cd @var{objdir}; make install -@end example - -We strongly recommend to install into a target directory where there is -no previous version of GCC present. - -That step completes the installation of GCC; user level binaries can -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). (If you specified @option{--bindir}, that directory will -be used instead; otherwise, if you specified @option{--exec-prefix}, -@file{@var{exec-prefix}/bin} will be used.) Headers for the C++ and -Java libraries are installed in @file{@var{prefix}/include}; libraries -in @file{@var{libdir}} (normally @file{@var{prefix}/lib}); internal -parts of the compiler in @file{@var{libdir}/gcc-lib}; documentation in -info format in @file{@var{infodir}} (normally @file{@var{prefix}/info}). - -If you built a released version of GCC using @samp{make bootstrap} then please -quickly review the build status page for your release, available from -@uref{http://gcc.gnu.org/buildstat.html}. -If your system is not listed for the version of GCC that you built, -send a note to -@email{gcc@@gcc.gnu.org} indicating -that you successfully built and installed GCC. -Include the following information: - -@itemize @bullet -@item -Output from running @file{@var{srcdir}/config.guess}. Do not send us -that file itself, just the one-line output from running it. - -@item -The output of @samp{gcc -v} for your newly installed gcc. -This tells us which version of GCC you built and the options you passed to -configure. - -@item -Whether you enabled all languages or a subset of them. If you used a -full distribution then this information is part of the configure -options in the output of @samp{gcc -v}, but if you downloaded the -``core'' compiler plus additional front ends then it isn't apparent -which ones you built unless you tell us about it. - -@item -If the build was for GNU/Linux, also include: -@itemize @bullet -@item -The distribution name and version (e.g., Red Hat 7.1 or Debian 2.2.3); -this information should be available from @file{/etc/issue}. - -@item -The version of the Linux kernel, available from @samp{uname --version} -or @samp{uname -a}. - -@item -The version of glibc you used; for RPM-based systems like Red Hat, -Mandrake, and SuSE type @samp{rpm -q glibc} to get the glibc version, -and on systems like Debian and Progeny use @samp{dpkg -l libc6}. -@end itemize -For other systems, you can include similar information if you think it is -relevant. - -@item -Any other information that you think would be useful to people building -GCC on the same configuration. The new entry in the build status list -will include a link to the archived copy of your message. -@end itemize - -We'd also like to know if the -@ifnothtml -@ref{Specific, host/target specific installation notes} -@end ifnothtml -@ifhtml -@uref{specific.html,,host/target specific installation notes} -@end ifhtml -didn't include your host/target information or if that information is -incomplete or out of date. Send a note to -@email{gcc@@gcc.gnu.org} telling us how the information should be changed. - -If you find a bug, please report it following our -@uref{../bugs.html,,bug reporting guidelines}. - -If you want to print the GCC manuals, do @samp{cd @var{objdir}; make -dvi}. You will need to have @command{texi2dvi} (version at least 4.1) -and @TeX{} installed. This creates a number of @file{.dvi} files in -subdirectories of @file{@var{objdir}}; these may be converted for -printing with programs such as @command{dvips}. You can also -@uref{http://www.gnu.org/order/order.html,,buy printed manuals from the -Free Software Foundation}, though such manuals may not be for the most -recent version of GCC@. - -@html -<hr /> -<p> -@end html -@ifhtml -@uref{./index.html,,Return to the GCC Installation page} -@end ifhtml -@end ifset - -@c ***Binaries**************************************************************** -@ifnothtml -@comment node-name, next, previous, up -@node Binaries, Specific, Installing GCC, Top -@end ifnothtml -@ifset binarieshtml -@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 -AIX: -@itemize -@item -@uref{http://www.bullfreeware.com,,Bull's Freeware and Shareware Archive for AIX}; - -@item -@uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX}. -@end itemize - -@item -DOS---@uref{http://www.delorie.com/djgpp/,,DJGPP}. - -@item -Hitachi H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU -Development Tools for the Hitachi H8/300[HS] Series}. - -@item -HP-UX: -@itemize -@item -@uref{http://hpux.cae.wisc.edu/,,HP-UX Porting Center}; - -@item -@uref{ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/,,Binaries for HP-UX 11.00 at Aachen University of Technology}. -@end itemize - -@item -@uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO -OpenServer/Unixware}. - -@item -Sinix/Reliant Unix---@uref{ftp://ftp.siemens.de/sni/mr/pd/gnu/gcc,,Siemens}. - -@item -Solaris 2 (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 -The @uref{http://www.mingw.org/,,MinGW} project. -@end itemize - -@item -@uref{ftp://ftp.thewrittenword.com/packages/free/by-name/,,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. - -@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**************************************************************** -@ifnothtml -@comment node-name, next, previous, up -@node Specific, Old, Binaries, Top -@end ifnothtml -@ifset specifichtml -@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. - -@ifhtml -@itemize -@item -@uref{#1750a-*-*,,1750a-*-*} -@item -@uref{#a29k,,a29k} -@item -@uref{#a29k-*-bsd,,a29k-*-bsd} -@item -@uref{#alpha*-*-*,,alpha*-*-*} -@item -@uref{#alpha*-dec-osf*,,alpha*-dec-osf*} -@item -@uref{#alphaev5-cray-unicosmk*,,alphaev5-cray-unicosmk*} -@item -@uref{#arc-*-elf,,arc-*-elf} -@item -@uref{#arm-*-aout,,arm-*-aout} -@item -@uref{#arm-*-elf,,arm-*-elf} -@item -@uref{#arm*-*-linux-gnu,,arm*-*-linux-gnu} -@item -@uref{#arm-*-riscix,,arm-*-riscix} -@item -@uref{#avr,,avr} -@item -@uref{#c4x,,c4x} -@item -@uref{#dos,,DOS} -@item -@uref{#dsp16xx,,dsp16xx} -@item -@uref{#elxsi-elxsi-bsd,,elxsi-elxsi-bsd} -@item -@uref{#*-*-freebsd*,,*-*-freebsd*} -@item -@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 -@uref{#i370-*-*,,i370-*-*} -@item -@uref{#*-*-linux-gnu,,*-*-linux-gnu} -@item -@uref{#ix86-*-linux*oldld,,i?86-*-linux*oldld} -@item -@uref{#ix86-*-linux*aout,,i?86-*-linux*aout} -@item -@uref{#ix86-*-linux*,,i?86-*-linux*} -@item -@uref{#ix86-*-sco,,i?86-*-sco} -@item -@uref{#ix86-*-sco3.2v4,,i?86-*-sco3.2v4} -@item -@uref{#ix86-*-sco3.2v5*,,i?86-*-sco3.2v5*} -@item -@uref{#ix86-*-udk,,i?86-*-udk} -@item -@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*, i?86-sequent-sysv3*} -@item -@uref{#i860-intel-osf*,,i860-intel-osf*} -@item -@uref{#ia64-*-linux,,ia64-*-linux} -@item -@uref{#*-lynx-lynxos,,*-lynx-lynxos} -@item -@uref{#*-ibm-aix*,,*-ibm-aix*} -@item -@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-unos,,m68k-crds-unos} -@item -@uref{#m68k-hp-hpux,,m68k-hp-hpux} -@item -@uref{#m68k-*-nextstep*,,m68k-*-nextstep*} -@item -@uref{#m68k-ncr-*,,m68k-ncr-*} -@item -@uref{#m68k-sun,,m68k-sun} -@item -@uref{#m68k-sun-sunos4.1.1,,m68k-sun-sunos4.1.1} -@item -@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-dec-*,,mips-dec-*} -@item -@uref{#mips-mips-bsd,,mips-mips-bsd} -@item -@uref{#mips-mips-riscos*,,mips-mips-riscos*} -@item -@uref{#mips-sgi-irix4,,mips-sgi-irix4} -@item -@uref{#mips-sgi-irix5,,mips-sgi-irix5} -@item -@uref{#mips-sgi-irix6,,mips-sgi-irix6} -@item -@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*-*-*,,powerpc*-*-*, powerpc-*-sysv4} -@item -@uref{#powerpc-*-darwin*,,powerpc-*-darwin*} -@item -@uref{#powerpc-*-elf,,powerpc-*-elf, powerpc-*-sysv4} -@item -@uref{#powerpc-*-linux-gnu*,,powerpc-*-linux-gnu*} -@item -@uref{#powerpc-*-netbsd*,,powerpc-*-netbsd*} -@item -@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 -@uref{#s390-*-linux*} -@item -@uref{#s390x-*-linux*} -@item -@uref{#*-*-solaris2*,,*-*-solaris2*} -@item -@uref{#sparc-sun-solaris2*,,sparc-sun-solaris2*} -@item -@uref{#sparc-sun-solaris2.7,,sparc-sun-solaris2.7} -@item -@uref{#sparc-sun-sunos4*,,sparc-sun-sunos4*} -@item -@uref{#sparc-unknown-linux-gnulibc1,,sparc-unknown-linux-gnulibc1} -@item -@uref{#sparc-*-linux*,,sparc-*-linux*} -@item -@uref{#sparc64-*-*,,sparc64-*-*} -@item -@uref{#sparcv9-*-solaris2*,,sparcv9-*-solaris2*} -@item -@uref{#*-*-sysv*,,*-*-sysv*} -@item -@uref{#vax-dec-ultrix,,vax-dec-ultrix} -@item -@uref{#we32k-*-*,,we32k-*-*} -@item -@uref{#xtensa-*-elf,,xtensa-*-elf} -@item -@uref{#xtensa-*-linux*,,xtensa-*-linux*} -@item -@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 2, etc.) -@end itemize -@end ifhtml - - -@html -<!-- -------- host/target specific issues start here ---------------- --> -<hr /> -@end html -@heading @anchor{1750a-*-*}1750a-*-* -MIL-STD-1750A processors. This target is obsoleted in GCC 3.1. - -The MIL-STD-1750A cross configuration produces output for -@code{as1750}, an assembler/linker available under the GNU General 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 @samp{libgcc} -(@samp{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{gcc/config/1750a}. - -GCC 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 (@code{BITS_PER_UNIT} is 16). This -means that type @code{char} is represented with a 16-bit word per character. -The 1750A's ``Load/Store Upper/Lower Byte'' instructions are not used by -GCC@. - -@html -<hr /> -@end html -@heading @anchor{a29k}a29k -AMD Am29k-family processors. These are normally used in embedded -applications. This configuration corresponds to AMD's standard calling -sequence and binary interface and is compatible with other 29k tools. - -AMD has abandoned this processor. All existing a29k targets are obsoleted -in GCC 3.1. - -You may need to make a variant of the file @file{a29k.h} for your -particular configuration. - -@html -<hr /> -@end html -@heading @anchor{a29k-*-bsd}a29k-*-bsd -AMD Am29050 used in a system running a variant of BSD Unix. - -@html -<hr /> -@end html -@heading @anchor{alpha*-*-*}alpha*-*-* - -This section contains general configuration information for all -alpha-based platforms using ELF (in particular, ignore this section for -DEC OSF/1, Digital UNIX and Tru64 UNIX)@. In addition to reading this -section, please read all other sections that match your target. - -We require binutils 2.11.2 or newer. -Previous binutils releases had a number of problems with DWARF 2 -debugging information, not the least of which is incorrect linking of -shared libraries. - -@html -<hr /> -@end html -@heading @anchor{alpha*-dec-osf*}alpha*-dec-osf* -Systems using processors that implement the DEC Alpha architecture and -are running the DEC/Compaq Unix (DEC OSF/1, Digital UNIX, or Compaq -Tru64 UNIX) operating system, for example the DEC Alpha AXP systems. - -Support for versions before @code{alpha*-dec-osf4} is obsoleted in GCC -3.1. (These are the versions which identify themselves as DEC OSF/1.) - -In Digital Unix V4.0, virtual memory exhausted bootstrap failures -may be fixed by configuring with @option{--with-gc=simple}, -reconfiguring Kernel Virtual Memory and Swap parameters -per the @command{/usr/sbin/sys_check} Tuning Suggestions, -or applying the patch in -@uref{http://gcc.gnu.org/ml/gcc/2002-08/msg00822.html}. - -In Tru64 UNIX V5.1, Compaq introduced a new assembler that does not -currently (2001-06-13) work with @command{mips-tfile}. As a workaround, -we need to use the old assembler, invoked via the barely documented -@option{-oldas} option. To bootstrap GCC, you either need to use the -Compaq C Compiler: - -@example - % CC=cc @var{srcdir}/configure [@var{options}] [@var{target}] -@end example - -or you can use a copy of GCC 2.95.3 or higher built on Tru64 UNIX V4.0: - -@example - % CC=gcc -Wa,-oldas @var{srcdir}/configure [@var{options}] [@var{target}] -@end example - -As of GNU binutils 2.11.2, neither GNU @command{as} nor GNU @command{ld} -are supported on Tru64 UNIX, so you must not configure GCC with -@option{--with-gnu-as} or @option{--with-gnu-ld}. - -The @option{--enable-threads} options isn't supported yet. A patch is -in preparation for a future release. - -GCC 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 -@option{-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 @option{-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 @option{-save-temps} -unless the comparisons fail without that option. If you add -@option{-save-temps}, you will have to manually delete the @samp{.i} and -@samp{.s} files after each series of compilations. - -GCC 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 @option{--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, GCC 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 @option{-O} is specified are -different depending on whether or not @option{-g} is also specified. - -To avoid this behavior, specify @option{-gstabs+} and use GDB instead of -DBX@. DEC is now aware of this problem with the assembler and hopes to -provide a fix shortly. - -@html -<hr /> -@end html -@heading @anchor{alphaev5-cray-unicosmk*}alphaev5-cray-unicosmk* -Cray T3E systems running Unicos/Mk. - -This port is incomplete and has many known bugs. We hope to improve the -support for this target soon. Currently, only the C front end is supported, -and it is not possible to build parallel applications. Cray modules are not -supported; in particular, Craylibs are assumed to be in -@file{/opt/ctl/craylibs/craylibs}. - -You absolutely @strong{must} use GNU make on this platform. Also, you -need to tell GCC where to find the assembler and the linker. The -simplest way to do so is by providing @option{--with-as} and -@option{--with-ld} to @file{configure}, e.g.@: - -@example - configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \ - --enable-languages=c -@end example - -The comparison test during @samp{make bootstrap} fails on Unicos/Mk -because the assembler inserts timestamps into object files. You should -be able to work around this by doing @samp{make all} after getting this -failure. - -@html -<hr /> -@end html -@heading @anchor{arc-*-elf}arc-*-elf -Argonaut ARC processor. -This configuration is intended for embedded systems. - -@html -<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 -<hr /> -@end html -@heading @anchor{arm-*-elf}arm-*-elf -This configuration is intended for embedded systems. - -@html -<hr /> -@end html -@heading @anchor{arm*-*-linux-gnu}arm*-*-linux-gnu - -We require GNU binutils 2.10 or newer. - -@html -<hr /> -@end html -@heading @anchor{arm-*-riscix}arm-*-riscix -The ARM2 or ARM3 processor running RISC iX, Acorn's port of BSD Unix. -This configuration is obsoleted in GCC 3.1. - -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 @option{--with-gnu-as} to configure. - -You will need to install GNU @command{sed} before you can run configure. - -@html -<hr /> -@end html -@heading @anchor{avr}avr - -ATMEL AVR-family micro controllers. These are used in embedded -applications. There are no standard Unix configurations. -@ifnothtml -@xref{AVR Options,, AVR Options, gcc, Using and Porting the GNU Compiler -Collection (GCC)}, -@end ifnothtml -@ifhtml -See ``AVR Options'' in the main manual -@end ifhtml -for the list of supported MCU types. - -Use @samp{configure --target=avr --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.amelek.gda.pl/avr,,http://www.amelek.gda.pl/avr} -@end itemize - -We @emph{strongly} recommend using binutils 2.11 or newer. - -The following error: -@example - Error: register required -@end example - -indicates that you should upgrade to a newer version of the binutils. - -@html -<hr /> -@end html -@heading @anchor{c4x}c4x - -Texas Instruments TMS320C3x and TMS320C4x Floating Point Digital Signal -Processors. These are used in embedded applications. There are no -standard Unix configurations. -@ifnothtml -@xref{TMS320C3x/C4x Options,, TMS320C3x/C4x Options, gcc, Using and -Porting the GNU Compiler Collection (GCC)}, -@end ifnothtml -@ifhtml -See ``TMS320C3x/C4x Options'' in the main manual -@end ifhtml -for the list of supported MCU types. - -GCC can be configured as a cross compiler for both the C3x and C4x -architectures on the same system. Use @samp{configure --target=c4x ---enable-languages="c,c++"} to configure. - - -Further installation notes and other useful information about C4x tools -can also be obtained from: - -@itemize @bullet -@item -@uref{http://www.elec.canterbury.ac.nz/c4x/,,http://www.elec.canterbury.ac.nz/c4x/} -@end itemize - -@html -<hr /> -@end html -@heading @anchor{cris}CRIS - -CRIS is the CPU architecture in Axis Communications ETRAX system-on-a-chip -series. These are used in embedded applications. - -@ifnothtml -@xref{CRIS Options,, CRIS Options, gcc, Using and Porting the GNU Compiler -Collection (GCC)}, -@end ifnothtml -@ifhtml -See ``CRIS Options'' in the main manual -@end ifhtml -for a list of CRIS-specific options. - -There are a few different CRIS targets: -@table @code -@item cris-axis-aout -Old target. Includes a multilib for the @samp{elinux} a.out-based -target. No multilibs for newer architecture variants. -@item cris-axis-elf -Mainly for monolithic embedded systems. Includes a multilib for the -@samp{v10} core used in @samp{ETRAX 100 LX}. -@item cris-axis-linux-gnu -A GNU/Linux port for the CRIS architecture, currently targeting -@samp{ETRAX 100 LX} by default. -@end table - -For @code{cris-axis-aout} and @code{cris-axis-elf} you need binutils 2.11 -or newer. For @code{cris-axis-linux-gnu} you need binutils 2.12 or newer. - -Pre-packaged tools can be obtained from -@uref{ftp://ftp.axis.com/pub/axis/tools/cris/compiler-kit/}. More -information about this platform is available at -@uref{http://developer.axis.com/}. - -@html -<hr /> -@end html -@heading @anchor{dos}DOS - -Please have a look at our @uref{binaries.html,,binaries page}. - -You cannot install GCC by itself on MSDOS; it will not compile under -any MSDOS compiler except itself. You need to get the complete -compilation package DJGPP, which includes binaries as well as sources, -and includes all the necessary compilation tools and libraries. - -@html -<hr /> -@end html -@heading @anchor{dsp16xx}dsp16xx -A port to the AT&T DSP1610 family of processors. - -@html -<hr /> -@end html -@heading @anchor{*-*-freebsd*}*-*-freebsd* - -The version of binutils installed in @file{/usr/bin} is known to work unless -otherwise specified in any per-architecture notes. However, binutils -2.12.1 or greater is known to improve overall testsuite results. - -For FreeBSD 1, FreeBSD 2 or any mutant a.out versions of FreeBSD 3: All -configuration support and files as shipped with GCC 2.95 are still in -place. FreeBSD 2.2.7 has been known to bootstrap completely; however, -it is unknown which version of binutils was used (it is assumed that it -was the system copy in @file{/usr/bin}) and C++ EH failures were noted. - -Support for FreeBSD 1 is obsoleted in GCC 3.1. - -For FreeBSD using the ELF file format: DWARF 2 debugging is now the -default for all CPU architectures. It had been the default on -FreeBSD/alpha since its inception. You may use @option{-gstabs} instead -of @option{-g}, if you really want the old debugging format. There are -no known issues with mixing object files and libraries with different -debugging formats. Otherwise, this release of GCC should now match more -of the configuration used in the stock FreeBSD configuration of GCC. In -particular, @option{--enable-threads} is now configured by default. -However, as a general user, do not attempt to replace the system -compiler with this release. Known to bootstrap and check with good -results on FreeBSD 3.0, 3.4, 4.0, 4.2, 4.3, 4.4, 4.5-STABLE and 5-CURRENT@. - -In principle, @option{--enable-threads} is now compatible with -@option{--enable-libgcj} on FreeBSD@. However, it has only been built -and tested on @samp{i386-*-freebsd4.5} and @samp{alpha-*-freebsd5.0}. -The static -library may be incorrectly built (symbols are missing at link time). -There is a rare timing-based startup hang (probably involves an -assupmtion about the thread library). Multi-threaded boehm-gc (required for -libjava) exposes severe threaded signal-handling bugs on FreeBSD before -4.5-RELEASE. The alpha port may not fully bootstrap without some manual -intervention: @command{gcjh} will crash with a floating-point exception while -generating @file{java/lang/Double.h} (just copy the version built on -@samp{i386-*-freebsd*} and rerun the top-level @command{gmake} with no -arguments and it -should properly complete the bootstrap). Other CPU architectures -supported by FreeBSD will require additional configuration tuning in, at -the very least, both boehm-gc and libffi. - -Shared @file{libgcc_s.so} is now built and installed by default. - -@html -<hr /> -@end html -@heading @anchor{elxsi-elxsi-bsd}elxsi-elxsi-bsd -The Elxsi's C compiler has known limitations that prevent it from -compiling GCC@. Please contact @email{mrs@@wrs.com} for more details. - -Support for this processor is obsoleted in GCC 3.1. - -@html -<hr /> -@end html -@heading @anchor{h8300-hms}h8300-hms -Hitachi H8/300 series of processors. - -Please have a look at our @uref{binaries.html,,binaries page}. - -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. - -@html -<hr /> -@end html -@heading @anchor{hppa*-hp-hpux*}hppa*-hp-hpux* - -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. The HP assembler does not work with the @samp{hppa64-hp-hpux11*} -port. - -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 -use GAS and GDB and configure GCC with the -@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}} and -@option{--with-as=@dots{}} options. - -If you wish to use the pa-risc 2.0 architecture support with a 32-bit -runtime, you must use either the HP assembler, gas/binutils 2.11 or newer, -or a recent -@uref{ftp://sources.redhat.com/pub/binutils/snapshots,,snapshot of gas}. - -More specific information to @samp{hppa*-hp-hpux*} targets follows. - -@html -<hr /> -@end html -@heading @anchor{hppa*-hp-hpux9}hppa*-hp-hpux9 - -The HP assembler has major problems on this platform. We've tried to work -around the worst of the problems. However, those workarounds may be causing -linker crashes in some circumstances; the workarounds also probably prevent -shared libraries from working. Use the GNU assembler to avoid these problems. - - -The configuration scripts for GCC will also trigger a bug in the hpux9 -shell. To avoid this problem set @env{CONFIG_SHELL} to @file{/bin/ksh} -and @env{SHELL} to @file{/bin/ksh} in your environment. - - -@html -<hr /> -@end html -@heading @anchor{hppa*-hp-hpux10}hppa*-hp-hpux10 - -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 -during a @samp{make bootstrap}. You should be able to continue by -saying @samp{make all} after getting the failure from @samp{make -bootstrap}. - - -@html -<hr /> -@end html -@heading @anchor{hppa*-hp-hpux11}hppa*-hp-hpux11 - -GCC 3.0 and up support HP-UX 11. On 64-bit capable systems, there -are two distinct ports. The @samp{hppa2.0w-hp-hpux11*} port generates -code for the 32-bit pa-risc runtime architecture. It uses the HP -linker and is currently the default selected by config.guess. The -optional @samp{hppa64-hp-hpux11*} port generates 64-bit code for the -pa-risc 2.0 architecture. It must be explicitly selected using the -@samp{--host=hppa64-hp-hpux11*} configure option. Different prefixes -must be used if both ports are to be installed on the same system. - -You must use GNU binutils 2.11 or above with the 32-bit port. Thread -support is not currently implemented, so @option{--enable-threads} does -not work. See: - -@itemize -@item @uref{http://gcc.gnu.org/ml/gcc-prs/2002-01/msg00551.html} -@item @uref{http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00663.html}. -@end itemize - -GCC 2.95.x is not supported under HP-UX 11 and cannot be used to -compile GCC 3.0 and up. Refer to @uref{binaries.html,,binaries} for -information about obtaining precompiled GCC binaries for HP-UX. - -GNU binutils 2.13 or later is recommended with the 64-bit port. -The HP assembler is not supported. It is @emph{highly} recommended -that the GNU linker be used as well. Either binutils must be built -prior to gcc, or a binary distribution of gcc or binutils must be -obtained for the initial builds. When starting with a HP compiler, -it is preferable to use the ANSI compiler as the bundled compiler -only supports traditional C. Bootstrapping with the bundled compiler -is tested infrequently and problems often arise because of the subtle -differences in semantics between traditional and ISO C. There also -have been problems reported with various binary distributions. This -port still is undergoing significant development. - -@html -<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. - -@html -<hr /> -@end html -@heading @anchor{*-*-linux-gnu}*-*-linux-gnu - -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 @samp{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. - -@html -@end html - -@html -<p> -@end html - -Currently Glibc 2.2.3 (and older releases) and GCC 3.0 are out of sync -since the latest exception handling changes for GCC@. Compiling glibc -with GCC 3.0 will give a binary incompatible glibc and therefore cause -lots of problems and might make your system completly unusable. This -will definitly need fixes in glibc but might also need fixes in GCC@. We -strongly advise to wait for glibc 2.2.4 and to read the release notes of -glibc 2.2.4 whether patches for GCC 3.0 are needed. You can use glibc -2.2.3 with GCC 3.0, just do not try to recompile it. - -@html -<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 configuration is obsoleted in GCC 3.1. - -@html -<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. - -@html -<hr /> -@end html -@heading @anchor{ix86-*-linux*}i?86-*-linux* - -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}. - -@html -<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 -<hr /> -@end html -@heading @anchor{ix86-*-sco3.2v4}i?86-*-sco3.2v4 -Use this configuration for SCO release 3.2 version 4. - -@html -<hr /> -@end html -@heading @anchor{ix86-*-sco3.2v5*}i?86-*-sco3.2v5* -Use this for the SCO OpenServer Release 5 family of operating systems. - -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@. - -Use of the @option{-march=pentiumpro} flag can result in -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 -@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. - -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. - -Systems based on OpenServer before 5.0.4 (@samp{uname -X} -will tell you what you're running) require TLS597 from -@uref{ftp://ftp.sco.com/TLS/,,ftp://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 -@option{-fPIC} on @file{921215-1.c}, @file{931002-1.c}, @file{nestfunc-1.c}, and @file{gcov-1.c}. -For 5.0.5, an updated linker that will cure this problem is -available. You must install both -@uref{ftp://ftp.sco.com/Supplements/rs505a/,,ftp://ftp.sco.com/Supplements/rs505a/} -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 @option{-fPIC}---try applying -@uref{sco_osr5_g77.patch,,@file{sco_osr5_g77.patch}} to your @samp{libf2c} and -rebuilding GCC@. -Affected faults, when analyzed in a debugger, will show a stack -backtrace with a fault occurring in @code{rtld()} and the program -running as @file{/usr/lib/ld.so.1}. This problem has been reported to SCO -engineering and will hopefully be addressed in later releases. - - -@html -<hr /> -@end html -@heading @anchor{ix86-*-udk}i?86-*-udk - -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 -@samp{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@. - -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: - -@example - CC=/udk/usr/ccs/bin/cc @var{/your/path/to}/gcc/configure \ - --host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk- -@end example - -@emph{You should substitute @samp{i686} in the above command with the appropriate -processor for your host.} - -After the usual @samp{make bootstrap} and -@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. - - -@html -<hr /> -@end html -@heading @anchor{ix86-*-isc}i?86-*-isc -This configuration is obsoleted in GCC 3.1. - -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, @command{sed} core dumps when building -@file{deduced.h}. Use the version of @command{sed} from version 4.0. - -@html -<hr /> -@end html -@heading @anchor{ix86-ibm-aix}i?86-ibm-aix -This configuration is obsoleted in GCC 3.1. - -You need to use GAS version 2.1 or later, and LD from -GNU binutils version 2.2 or later. - -@html -<hr /> -@end html -@heading @anchor{ix86-sequent-bsd}i?86-sequent-bsd -This configuration is obsoleted in GCC 3.1. - -Go to the Berkeley universe before compiling. - -@html -<hr /> -@end html -@heading @anchor{ix86-sequent-ptx1*}i?86-sequent-ptx1*, i?86-sequent-ptx2*, i?86-sequent-sysv3* -This configuration is obsoleted in GCC 3.1. - -You must install GNU @command{sed} before running @command{configure}. - -The @code{fixproto} shell script may trigger a bug in the system shell. -If you encounter this problem, upgrade your operating system or -use @command{bash} (the GNU shell) to run @code{fixproto}. - -@html -<hr /> -@end html -@heading @anchor{i860-intel-osf*}i860-intel-osf* -All support for the i860 processor is obsoleted in GCC 3.1. - -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 -<hr /> -@end html -@heading @anchor{ia64-*-linux}ia64-*-linux -IA-64 processor (also known as IPF, or Itanium Processor Family) -running GNU/Linux. - -The toolchain is not completely finished, so requirements will continue -to change. -GCC 3.0.1 and later require glibc 2.2.4. -GCC 3.0.2 requires binutils from 2001-09-05 or later. -GCC 3.0.1 requires binutils 2.11.1 or later. - -None of the following versions of GCC has an ABI that is compatible -with any of the other versions in this list, with the exception that -Red Hat 2.96 and Trillian 000171 are compatible with each other: -3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717. -This primarily affects C++ programs and programs that create shared libraries. -Because of these ABI incompatibilities, GCC 3.0.2 is not recommended for -user programs on GNU/Linux systems built using earlier compiler releases. -GCC 3.0.2 is recommended for compiling linux, the kernel. -GCC 3.0.2 is believed to be fully ABI compliant, and hence no more major -ABI changes are expected. - -@html -<hr /> -@end html -@heading @anchor{*-lynx-lynxos}*-lynx-lynxos -LynxOS 2.2 and earlier comes with GCC 1.x already installed as -@file{/bin/gcc}. You should compile with this instead of @file{/bin/cc}. -You can tell GCC 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 GCC will use the -installed tools, which produce @file{a.out} format executables. - -@html -<hr /> -<!-- rs6000-ibm-aix*, powerpc-ibm-aix* --> -@end html -@heading @anchor{*-ibm-aix*}*-ibm-aix* - -AIX Make frequently has problems with GCC makefiles. GNU Make 3.76 or -newer is recommended to build on this platform. - -Errors involving @code{alloca} when building GCC generally are due -to an incorrect definition of @code{CC} in the Makefile or mixing files -compiled with the native C compiler and GCC@. During the stage1 phase of -the build, the native AIX compiler @strong{must} be invoked as @command{cc} -(not @command{xlc}). Once @command{configure} has been informed of -@command{xlc}, one needs to use @samp{make distclean} to remove the -configure cache files and ensure that @env{CC} environment variable -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). - -The GNU Assembler incorrectly reports that it supports WEAK symbols on -AIX which causes GCC to try to utilize weak symbol functionality which -is not really supported on the platform. The native @command{as} and -@command{ld} still are recommended. The native AIX tools do -interoperate with GCC@. - -Building @file{libstdc++.a} requires a fix for a AIX Assembler bug -APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). - -@samp{libstdc++} in GCC 3.2 increments the major version number of the -shared object and GCC installation places the @file{libstdc++.a} -shared library in a common location which will overwrite the GCC 3.1 -version of the shared library. Applications either need to be -re-linked against the new shared library or the GCC 3.1 version of the -@samp{libstdc++} shared object needs to be available to the AIX -runtime loader. The GCC 3.1 @samp{libstdc++.so.4} shared object can -be installed for runtime dynamic loading using the following steps to -set the @samp{F_LOADONLY} flag in the shared object for @emph{each} -multilib @file{libstdc++.a} installed: - -Extract the shared object from each the GCC 3.1 @file{libstdc++.a} -archive: -@example - % ar -x libstdc++.a libstdc++.so.4 -@end example - -Enable the @samp{F_LOADONLY} flag so that the shared object will be -available for runtime dynamic loading, but not linking: -@example - % strip -e libstdc++.so.4 -@end example - -Archive the runtime-only shared object in the GCC 3.2 -@file{libstdc++.a} archive: -@example - % ar -q libstdc++.a libstdc++.so.4 -@end example - -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 and above. - -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://techsupport.services.ibm.com/,,techsupport.services.ibm.com} -website as PTF U455193. - -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://techsupport.services.ibm.com/,,techsupport.services.ibm.com} -website as PTF U461879. This fix is incorporated in AIX 4.3.3 and above. - -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://techsupport.services.ibm.com/,,techsupport.services.ibm.com} -website as PTF U453956. This fix is incorporated in AIX 4.3.1 and above. - -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., @samp{.} vs @samp{,} for -separating decimal fractions). There have been problems reported where -GCC does not produce the same floating-point formats that the assembler -expects. If one encounters this problem, set the @env{LANG} -environment variable to @samp{C} or @samp{En_US}. - -By default, GCC for AIX 4.1 and above produces code that can be used on -both Power or PowerPC processors. - -A default can be specified with the @option{-mcpu=@var{cpu_type}} -switch and using the configure option @option{--with-cpu-@var{cpu_type}}. - -@html -<hr /> -@end html -@heading @anchor{m32r-*-elf}m32r-*-elf -Mitsubishi M32R processor. -This configuration is intended for embedded systems. - -@html -<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 GCC; contact @email{law@@cygnus.com} -to get binaries of GCC for bootstrapping. - -@html -<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 -<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 -<hr /> -@end html -@heading @anchor{m68k-altos}m68k-altos -Altos 3068. This configuration is obsoleted in GCC 3.1. - -You must use the GNU assembler, linker and debugger. -Also, you must fix a kernel bug. - -@html -<hr /> -@end html -@heading @anchor{m68k-apple-aux}m68k-apple-aux -Apple Macintosh running A/UX@. -This configuration is obsoleted in GCC 3.1. - -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 G++. You enable -that configuration with the @option{--with-gnu-as} and @option{--with-gnu-ld} -options to @code{configure}. - -Note the C compiler that comes -with this system cannot compile GCC@. You can find binaries of GCC -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 -<hr /> -@end html -@heading @anchor{m68k-att-sysv}m68k-att-sysv -AT&T 3b1, a.k.a.@: 7300 PC@. This version of GCC 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 -<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. -This configuration is obsoleted in GCC 3.1. - -GCC works -either with native assembler or GNU assembler. You can use -GNU assembler with native COFF generation by providing @option{--with-gnu-as} to -the configure script or use GNU assembler with stabs-in-COFF encapsulation -by providing @samp{--with-gnu-as --stabs}. For any problem with the native -assembler or for availability of the DPX/2 port of GAS, contact -@email{F.Pierresteguy@@frcl.bull.fr}. - -@html -<hr /> -@end html -@heading @anchor{m68k-crds-unos}m68k-crds-unos -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 GCC, 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 GCC to function, either change all -references to @option{-lc} in @file{gcc.c} to @option{-lunos} or link -@file{/lib/libc.a} to @file{/lib/libunos.a}. - -@cindex @code{alloca}, for Unos -When compiling GCC with the standard compiler, to overcome bugs in -the support of @code{alloca}, do not use @option{-O} when making stage 2. -Then use the stage 2 compiler with @option{-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 -<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 GCC@. 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, 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 - - -@html -<hr /> -@end html -@heading @anchor{m68k-*-nextstep*}m68k-*-nextstep* -These configurations are obsoleted in GCC 3.1. - -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. - -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 @samp{.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 -the directory @var{prefix} you specified in the configuration process of GCC -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 - -@html -<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 @option{-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 -<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@. - -@html -<hr /> -@end html -@heading @anchor{m68k-sun-sunos4.1.1}m68k-sun-sunos4.1.1 - -It is reported that you may need the GNU assembler on this platform. - - -@html -<hr /> -@end html -@heading @anchor{m88k-*-svr3}m88k-*-svr3 -Motorola m88k running the AT&T/Unisoft/Motorola V.3 reference port. -These configurations are obsoleted in GCC 3.1. - -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 GCC for bootstrapping -if you have one. - -@html -<hr /> -@end html -@heading @anchor{m88k-*-dgux}m88k-*-dgux -Motorola m88k running DG/UX@. -These configurations are obsoleted in GCC 3.1. - -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 -<hr /> -@end html -@heading @anchor{m88k-tektronix-sysv3}m88k-tektronix-sysv3 -Tektronix XD88 running UTekV 3.2e. -These configurations are obsoleted in GCC 3.1. - -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 -<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 @option{-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 @option{-non_shared} to the -linker unless you pass an explicit @option{-shared} or -@option{-call_shared} switch. - -@heading @anchor{mips-mips-bsd}mips-mips-bsd -MIPS machines running the MIPS operating system in BSD mode. -These configurations are obsoleted in GCC 3.1. - -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}. - -If you use the MIPS C compiler to bootstrap, it may be necessary -to increase its table size for switch statements with the -@option{-Wf,-XNg1500} option. If you use the @option{-O2} -optimization option, you also need to use @option{-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 @option{-Wf,-XNg1500 -Olimit 3000}. - -@html -<hr /> -@end html -@heading @anchor{mips-dec-*}mips-dec-* -These configurations are obsoleted in GCC 3.1. - -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 mips-dec-ultrix -Ultrix configuration. - -@item mips-dec-osf1 -DEC's version of OSF/1. - -@item mips-dec-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 - -If you use the MIPS C compiler to bootstrap, it may be necessary -to increase its table size for switch statements with the -@option{-Wf,-XNg1500} option. If you use the @option{-O2} -optimization option, you also need to use @option{-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 @option{-Wf,-XNg1500 -Olimit 3000}. - -@html -<hr /> -@end html -@heading @anchor{mips-mips-riscos*}mips-mips-riscos* -These configurations are obsoleted in GCC 3.1. - -If you use the MIPS C compiler to bootstrap, it may be necessary -to increase its table size for switch statements with the -@option{-Wf,-XNg1500} option. If you use the @option{-O2} -optimization option, you also need to use @option{-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@var{rev} -Default configuration for RISC-OS, revision @var{rev}. - -@item mips-mips-riscos@var{rev}bsd -BSD 4.3 configuration for RISC-OS, revision @var{rev}. - -@item mips-mips-riscos@var{rev}sysv4 -System V.4 configuration for RISC-OS, revision @var{rev}. - -@html -<hr /> -@end html -@item mips-mips-riscos@var{rev}sysv -System V.3 configuration for RISC-OS, revision @var{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. - -@html -<hr /> -@end html -@heading @anchor{mips-sgi-irix4}mips-sgi-irix4 -This configuration is obsoleted in GCC 3.1. - -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. - -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 @option{-noasmopt} option. This -compiler option passes the option @option{-O0} to the assembler, to -inhibit reordering. - -The @option{-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 @option{-noasmopt}, it may still be due to assembler -reordering---perhaps GCC itself was miscompiled as a result. - -You may get the following warning on IRIX 4 platforms, it can be safely -ignored. -@example - warning: foo.o does not have gp tables for all its sections. -@end example - -@html -<hr /> -@end html -@heading @anchor{mips-sgi-irix5}mips-sgi-irix5 - -This configuration has considerable problems, which will be fixed in a -future release. - -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. It is also available for download from -@uref{http://www.sgi.com/developers/devtools/apis/ido.html,,http://www.sgi.com/developers/devtools/apis/ido.html}. - -@code{make compare} may fail on version 5 of IRIX unless you add -@option{-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 @option{-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 @option{-save-temps} -unless the comparisons fail without that option. If you do you -@option{-save-temps}, you will have to manually delete the @samp{.i} and -@samp{.s} files after each series of compilations. - -If you use the MIPS C compiler to bootstrap, it may be necessary -to increase its table size for switch statements with the -@option{-Wf,-XNg1500} option. If you use the @option{-O2} -optimization option, you also need to use @option{-Olimit 3000}. - -To enable debugging under IRIX 5, you must use GNU @command{as} 2.11.2 -or later, -and use the @option{--with-gnu-as} configure option when configuring GCC. -GNU @command{as} is distributed as part of the binutils package. -When using release 2.11.2, you need to apply a patch -@uref{http://sources.redhat.com/ml/binutils/2001-07/msg00352.html,,http://sources.redhat.com/ml/binutils/2001-07/msg00352.html} -which will be included in the next release of binutils. - -When building GCC, the build process loops rebuilding @command{cc1} over -and over again. This happens on @samp{mips-sgi-irix5.2}, and possibly -other platforms. It has been reported that this is a known bug in the -@command{make} shipped with IRIX 5.2. We recommend you use GNU -@command{make} instead of the vendor supplied @command{make} program; -however, you may have success with @command{smake} on IRIX 5.2 if you do -not have GNU @command{make} available. - -@html -<hr /> -@end html -@heading @anchor{mips-sgi-irix6}mips-sgi-irix6 - -If you are using IRIX @command{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 -test.o: ELF N32 MSB @dots{} -@end example - -If you see: - -@example -test.o: ELF 32-bit MSB @dots{} -@end example - -or - -@example -test.o: ELF 64-bit MSB @dots{} -@end example - -then your version of @command{cc} uses the O32 or N64 ABI by default. You -should set the environment variable @env{CC} to @samp{cc -n32} -before configuring GCC@. - -If you want the resulting @command{gcc} to run on old 32-bit systems -with the MIPS R4400 CPU, you need to ensure that only code for the mips3 -instruction set architecture (ISA) is generated. While GCC 3.x does -this correctly, both GCC 2.95 and SGI's MIPSpro @command{cc} may change -the ISA depending on the machine where GCC is built. Using one of them -as the bootstrap compiler may result in mips4 code, which won't run at -all on mips3-only systems. For the test program above, you should see: - -@example -test.o: ELF N32 MSB mips-3 @dots{} -@end example - -If you get: - -@example -test.o: ELF N32 MSB mips-4 @dots{} -@end example - -instead, you should set the environment variable @env{CC} to @samp{cc --n32 -mips3} or @samp{gcc -mips3} respectively before configuring GCC@. - -GCC on IRIX 6 is usually built to support both the N32 and N64 ABIs. If -you build GCC on a system that doesn't have the N64 libraries installed, -you need to configure with @option{--disable-multilib} so GCC doesn't -try to use them. Look for @file{/usr/lib64/libc.so.1} to see if you -have the 64-bit libraries installed. - -You must @emph{not} use GNU @command{as} (which isn't built anyway as of -binutils 2.11.2) on IRIX 6 platforms; doing so will only cause problems. - -GCC does not currently support generating O32 ABI binaries in the -@samp{mips-sgi-irix6} configurations. It is possible to create a GCC -with O32 ABI only support by configuring it for the @samp{mips-sgi-irix5} -target and using a patched GNU @command{as} 2.11.2 as documented in the -@uref{#mips-sgi-irix5,,@samp{mips-sgi-irix5}} section above. Using the -native assembler requires patches to GCC which will be included in a -future release. It is -expected that O32 ABI support will be available again in a future release. - -The @option{--enable-threads} option doesn't currently work, a patch is -in preparation for a future release. The @option{--enable-libgcj} -option is disabled by default: IRIX 6 uses a very low default limit -(20480) for the command line length. Although libtool contains a -workaround for this problem, at least the N64 @samp{libgcj} is known not -to build despite this, running into an internal error of the native -@command{ld}. A sure fix is to increase this limit (@samp{ncargs}) to -its maximum of 262144 bytes. If you have root access, you can use the -@command{systune} command to do this. - -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. Currently this -is known to affect @code{inet_ntoa}, @code{inet_lnaof}, -@code{inet_netof}, @code{inet_makeaddr}, and @code{semctl}. Until the -bug is fixed, GCC contains workarounds for the known affected functions. - -See @uref{http://freeware.sgi.com/,,http://freeware.sgi.com/} for more -information about using GCC on IRIX platforms. - -@html -<hr /> -@end html -@heading @anchor{mips-sony-sysv}mips-sony-sysv -Sony MIPS NEWS@. This configuration is obsoleted in GCC 3.1. - -This works in NEWSOS 5.0.1, but not in 5.0.2 (which uses ELF instead of -COFF)@. In particular, the linker does not like the code generated by -GCC when shared libraries are linked in. - -@html -<hr /> -@end html -@heading @anchor{ns32k-encore}ns32k-encore -This configuration is obsoleted in GCC 3.1. - -Encore ns32000 system. Encore systems are supported only under BSD@. - -@html -<hr /> -@end html -@heading @anchor{ns32k-*-genix}ns32k-*-genix -National Semiconductor ns32000 system. This configuration is obsoleted -in GCC 3.1. - -Genix has bugs in @code{alloca} and @code{malloc}; you must get the -compiled versions of these from GNU Emacs. - -@html -<hr /> -@end html -@heading @anchor{ns32k-sequent}ns32k-sequent -This configuration is obsoleted in GCC 3.1. - -Go to the Berkeley universe before compiling. - -@html -<hr /> -@end html -@heading @anchor{ns32k-utek}ns32k-utek -UTEK ns32000 system (``merlin''). This configuration is obsoleted in -GCC 3.1. - -The C compiler that comes with this system cannot compile GCC; contact -@samp{tektronix!reed!mason} to get binaries of GCC for bootstrapping. - - -@html -<hr /> -@end html -@heading @anchor{powerpc*-*-*}powerpc-*-* - -You can specify a default version for the @option{-mcpu=@var{cpu_type}} -switch by using the configure option @option{--with-cpu-@var{cpu_type}}. - -@html -<hr /> -@end html -@heading @anchor{powerpc-*-darwin*}powerpc-*-darwin* -PowerPC running Darwin (Mac OS X kernel). - -GCC 3.0 does not support Darwin, but 3.1 and later releases will work. - -Pre-installed versions of Mac OS X may not include any developer tools, -meaning that you will not be able to build GCC from source. Tool -binaries are available at -@uref{http://www.opensource.apple.com/projects/darwin} (free -registration required). - -Versions of the assembler prior to ``cctools-364'' cannot handle the -4-argument form of @code{rlwinm} and related mask-using instructions. Darwin -1.3 (Mac OS X 10.0) uses cctools-353 for instance. To get cctools-364, -check out @file{cctools} with tag @samp{Apple-364}, build it, and -install the assembler as @file{usr/bin/as}. See -@uref{http://www.opensource.apple.com/tools/cvs/docs.html} for details. - -Also, the default stack limit of 512K is too small, and a bootstrap will -typically fail when self-compiling @file{expr.c}. Set the stack to 800K -or more, for instance by doing @samp{limit stack 800}. It's also -convenient to use the GNU preprocessor instead of Apple's during the -first stage of bootstrapping; this is automatic when doing @samp{make -bootstrap}, but to do it from the toplevel objdir you will need to say -@samp{make CC='cc -no-cpp-precomp' bootstrap}. - -Note that the version of GCC shipped by Apple typically includes a -number of extensions not available in a standard GCC release. These -extensions are generally specific to Mac programming. - -@html -<hr /> -@end html -@heading @anchor{powerpc-*-elf}powerpc-*-elf, powerpc-*-sysv4 -PowerPC system in big endian mode, running System V.4. - -@html -<hr /> -@end html -@heading @anchor{powerpc-*-linux-gnu*}powerpc-*-linux-gnu* - -You will need -@uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.13.90.0.10} -or newer for a working GCC@. - -@html -<hr /> -@end html -@heading @anchor{powerpc-*-netbsd*}powerpc-*-netbsd* -PowerPC system in big endian mode running NetBSD@. To build the -documentation you will need Texinfo version 4.1 (NetBSD 1.5.1 included -Texinfo version 3.12). - -@html -<hr /> -@end html -@heading @anchor{powerpc-*-eabiaix}powerpc-*-eabiaix -Embedded PowerPC system in big endian mode with @option{-mcall-aix} selected as -the default. - -@html -<hr /> -@end html -@heading @anchor{powerpc-*-eabisim}powerpc-*-eabisim -Embedded PowerPC system in big endian mode for use in running under the -PSIM simulator. - -@html -<hr /> -@end html -@heading @anchor{powerpc-*-eabi}powerpc-*-eabi -Embedded PowerPC system in big endian mode. - -@html -<hr /> -@end html -@heading @anchor{powerpcle-*-elf}powerpcle-*-elf, powerpcle-*-sysv4 -PowerPC system in little endian mode, running System V.4. - -@html -<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 -<hr /> -@end html -@heading @anchor{powerpcle-*-eabi}powerpcle-*-eabi -Embedded PowerPC system in little endian mode. - -@html -<hr /> -@end html -@heading @anchor{powerpcle-*-winnt}powerpcle-*-winnt, powerpcle-*-pe -PowerPC system in little endian mode running Windows NT@. - -@html -<hr /> -@end html -@heading @anchor{romp-*-aos}romp-*-aos, romp-*-mach -These configurations are obsoleted in GCC 3.1. - -We recommend you compile GCC with an earlier version of itself; if you -compile GCC with @command{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. - -@html -<hr /> -@end html -@heading @anchor{s390-*-linux*}s390-*-linux* -S/390 system running Linux for S/390@. - -@html -<hr /> -@end html -@heading @anchor{s390x-*-linux*}s390x-*-linux* -zSeries system (64-bit) running Linux for zSeries@. - -@html -<hr /> -@end html -@c Please use Solaris 2 to refer to all release of Solaris, starting -@c with 2.0 until 2.6, 7, and 8. Solaris 1 was a marketing name for -@c SunOS 4 releases which we don't use to avoid confusion. Solaris -@c alone is too unspecific and must be avoided. -@heading @anchor{*-*-solaris2*}*-*-solaris2* - -Sun does not ship a C compiler with Solaris 2. To bootstrap and install -GCC you first have to install a pre-built compiler, see our -@uref{binaries.html,,binaries page} for details. - -The Solaris 2 @command{/bin/sh} will often fail to configure -@file{libstdc++-v3}, @file{boehm-gc} or -@file{libjava}. If you encounter this problem, set @env{CONFIG_SHELL} to -@command{/bin/ksh} in your environment before running @command{configure}. - -Solaris 2 comes with a number of optional OS packages. Some of these -packages are needed to use GCC fully, namely @code{SUNWarc}, -@code{SUNWbtool}, @code{SUNWesu}, @code{SUNWhea}, @code{SUNWlibm}, -@code{SUNWsprot}, and @code{SUNWtoo}. If you did not install all -optional packages when installing Solaris 2, you will need to verify that -the packages that GCC needs are installed. - -To check whether an optional package is installed, use -the @command{pkginfo} command. To add an optional package, use the -@command{pkgadd} command. For further details, see the Solaris 2 -documentation. - -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 @env{PATH}. - -All releases of GNU binutils prior to 2.11.2 have known bugs on this -platform. We recommend the use of GNU binutils 2.11.2 or the vendor -tools (Sun @command{as}, Sun @command{ld}). - -Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or -newer: @command{g++} will complain that types are missing. These headers assume -that omitting the type means @code{int}; this assumption worked for C89 but -is wrong for C++, and is now wrong for C99 also. - -@command{g++} accepts such (invalid) constructs with the option -@option{-fpermissive}; it -will assume that any missing type is @code{int} (as defined by C89). - -There are patches for Solaris 2.6 (105633-56 or newer for SPARC, -106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC, -108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC, -108653-22 for Intel) that fix this bug. - -@html -<hr /> -@end html -@heading @anchor{sparc-sun-solaris2*}sparc-sun-solaris2* - -When GCC is configured to use binutils 2.11.2 or later the binaries -produced are smaller than the ones produced using Sun's native tools; -this difference is quite significant for binaries containing debugging -information. - -Sun @command{as} 4.x is broken in that it cannot cope with long symbol names. -A typical error message might look similar to the following: - -@smallexample -/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error: - can't compute value of an expression involving an external symbol. -@end smallexample - -This is Sun bug 4237974. This is fixed with patch 108908-02 for Solaris -2.6 and has been fixed in later (5.x) versions of the assembler, -starting with Solaris 7. - -Starting with Solaris 7, the operating system is capable of executing -64-bit SPARC V9 binaries. GCC 3.1 and later properly supports -this; the @option{-m64} option enables 64-bit code generation. -However, if all you want is code tuned for the UltraSPARC CPU, you -should try the @option{-mtune=ultrasparc} option instead, which produces -code that, unlike full 64-bit code, can still run on non-UltraSPARC -machines. - -When configuring on a Solaris 7 or later system that is running a kernel -that supports only 32-bit binaries, one must configure with -@option{--disable-multilib}, since we will not be able to build the -64-bit target libraries. - -@html -<hr /> -@end html -@heading @anchor{sparc-sun-solaris2.7}sparc-sun-solaris2.7 - -Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC 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 7-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/3.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. The current (as of 2001-09-24) revision is -14, and is included in -the Solaris 7 Recommended Patch Cluster. -@end itemize - - -@html -<p> -<hr /> -@end html -@heading @anchor{sparc-sun-sunos4*}sparc-sun-sunos4* - -A bug in the SunOS 4 linker will cause it to crash when linking -@option{-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 SunOS 4 linker patch (patch ID 100170-10) -from Sun's patch site. - -Sometimes on a Sun 4 you may observe a crash in the program -@command{genflags} or @command{genoutput} while building GCC. This is said to -be due to a bug in @command{sh}. You can probably get around it by running -@command{genflags} or @command{genoutput} manually and then retrying the -@command{make}. - -@html -<hr /> -@end html -@heading @anchor{sparc-unknown-linux-gnulibc1}sparc-unknown-linux-gnulibc1 - -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 -<hr /> -@end html -@heading @anchor{sparc-*-linux*}sparc-*-linux* - -GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4 -or newer on this platform. All earlier binutils and glibc -releases mishandled unaligned relocations on @code{sparc-*-*} targets. - - -@html -<hr /> -@end html -@heading @anchor{sparc64-*-*}sparc64-*-* - -GCC version 2.95 is not able to compile code correctly for -@code{sparc64} targets. Users of the Linux kernel, at least, -can use the @code{sparc32} program to start up a new shell -invocation with an environment that causes @command{configure} to -recognize (via @samp{uname -a}) the system as @samp{sparc-*-*} instead. - -@html -<hr /> -@end html -@heading @anchor{sparcv9-*-solaris2*}sparcv9-*-solaris2* - -The following compiler flags must be specified in the configure -step in order to bootstrap this target with the Sun compiler: - -@example - % CC="cc -xildoff -xarch=v9" @var{srcdir}/configure [@var{options}] [@var{target}] -@end example - -@option{-xildoff} turns off the incremental linker, and @option{-xarch=v9} -specifies the v9 architecture to the Sun linker and assembler. - -@html -<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}. - -On a System V release 4 system, make sure @file{/usr/bin} precedes -@file{/usr/ucb} in @code{PATH}. The @code{cc} command in -@file{/usr/ucb} uses libraries which have bugs. - -@html -<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). - -@html -<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.) -These configurations are obsoleted in GCC 3.1. - -Don't use @option{-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 GCC@. You can work around this by building @file{cpp} in GCC -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 GCC -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. - -@html -<hr /> -@end html -@heading @anchor{xtensa-*-elf}xtensa-*-elf - -This target is intended for embedded Xtensa systems using the -@samp{newlib} C library. It uses ELF but does not support shared -objects. Designed-defined instructions specified via the -Tensilica Instruction Extension (TIE) language are only supported -through inline assembly. - -The Xtensa configuration information must be specified prior to -building GCC@. The @file{gcc/config/xtensa/xtensa-config.h} header -file contains the configuration information. If you created your -own Xtensa configuration with the Xtensa Processor Generator, the -downloaded files include a customized copy of this header file, -which you can use to replace the default header file. - -@html -<hr /> -@end html -@heading @anchor{xtensa-*-linux*}xtensa-*-linux* - -This target is for Xtensa systems running GNU/Linux. It supports ELF -shared objects and the GNU C library (glibc). It also generates -position-independent code (PIC) regardless of whether the -@option{-fpic} or @option{-fPIC} options are used. In other -respects, this target is the same as the -@uref{#xtensa-*-elf,,@samp{xtensa-*-elf}} target. - -@html -<hr /> -@end html -@heading @anchor{windows}Microsoft Windows (32-bit) - -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 -<hr /> -@end html -@heading @anchor{os2}OS/2 - -GCC does not currently support OS/2. However, Andrew Zabolotny has been -working on a generic OS/2 port with pgcc. The current 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 -<hr /> -@end html -@heading @anchor{older}Older systems - -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. - -We are planning to remove support for more older systems, starting in -GCC 3.1. Each release will have a list of ``obsoleted'' systems. -Support for these systems is still present in that release, but -@command{configure} will fail unless the @option{--enable-obsolete} -option is given. Unless a maintainer steps forward, support for -these systems will be removed from the next release of GCC@. - -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 @file{old-releases} directory on the -@uref{../mirrors.html,,GCC mirror sites}. Header bugs may generally -be avoided using @command{fixincludes}, but bugs or deficiencies in -libraries and the operating system may still cause problems. - -For some systems, old versions of GNU binutils may also be useful, -and are available from @file{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 -<hr /> -@end html -@heading @anchor{elf_targets}all ELF targets (SVR4, Solaris 2, etc.) - -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. - - -@html -<hr /> -<p> -@end html -@ifhtml -@uref{./index.html,,Return to the GCC Installation page} -@end ifhtml -@end ifset - -@c ***Old documentation****************************************************** -@ifset oldhtml -@include install-old.texi -@html -<hr /> -<p> -@end html -@ifhtml -@uref{./index.html,,Return to the GCC Installation page} -@end ifhtml -@end ifset - -@c ***GFDL******************************************************************** -@ifset gfdlhtml -@include fdl.texi -@html -<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, , GNU Free Documentation License, Top -@end ifinfo - -@ifinfo -@unnumbered Concept Index - -@printindex cp - -@contents -@end ifinfo -@bye diff --git a/contrib/gcc/doc/install.texi2html b/contrib/gcc/doc/install.texi2html deleted file mode 100755 index 3917e2a..0000000 --- a/contrib/gcc/doc/install.texi2html +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -# -# Convert the GCC install documentation from texinfo format to HTML. -# -# $SOURCEDIR and $DESTDIR, resp., refer to the directory containing -# the texinfo source and the directory to put the HTML version in. -# -# (C) 2001 Free Software Foundation -# Originally by Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>, June 2001. -# -# This script is Free Software, and it can be copied, distributed and -# modified as defined in the GNU General Public License. A copy of -# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html - -SOURCEDIR=${SOURCEDIR-.} -DESTDIR=${DESTDIR-HTML} - -MAKEINFO=${MAKEINFO-makeinfo} - -if [ ! -d $DESTDIR ]; then - mkdir -p $DESTDIR -fi - -for x in index.html specific.html download.html configure.html \ - build.html test.html finalinstall.html binaries.html old.html \ - gfdl.html -do - define=`echo $x | sed -e 's/\.//g'` - echo "define = $define" - $MAKEINFO -I $SOURCEDIR -I $SOURCEDIR/include $SOURCEDIR/install.texi --html --no-split -D$define -o$DESTDIR/$x -done |