From f85b8d1a2f3e3dfec7b38b6e65ba920bb0ed1426 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Sun, 3 Jun 2001 20:06:55 +0100 Subject: [PATCH] install-old.texi: Remove more old installation documentation. * doc/install-old.texi: Remove more old installation documentation. * doc/install.texi: Add relevant parts here. From-SVN: r42831 --- gcc/ChangeLog | 6 + gcc/doc/install-old.texi | 401 +-------------------------------------- gcc/doc/install.texi | 134 ++++++++++++- 3 files changed, 140 insertions(+), 401 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 274f6ee8c58..c77ed73ae86 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-06-03 Joseph S. Myers + + * doc/install-old.texi: Remove more old installation + documentation. + * doc/install.texi: Add relevant parts here. + 2001-06-03 Gerald Pfeifer * doc/install.texi2html: New script. diff --git a/gcc/doc/install-old.texi b/gcc/doc/install-old.texi index 96e10c86729..3e1dbc94f65 100644 --- a/gcc/doc/install-old.texi +++ b/gcc/doc/install-old.texi @@ -2,23 +2,17 @@ @c This is part of the GCC manual. @c For copying conditions, see the file gcc.texi. -@c The text of this file appears in the file INSTALL -@c in the GCC distribution, as well as in the GCC manual. - -Note most of this information is out of date and superseded by the -online GCC install procedures @uref{http://gcc.gnu.org/install/}. It is -provided for historical reference only. - -@ifclear INSTALLONLY @node Installation @chapter Installing GNU CC -@end ifclear @cindex installing GNU CC +Note most of this information is out of date and superseded by the +new GCC install manual @file{gcc/doc/install.texi}. It is +provided for historical reference only. + @menu * Configuration Files:: Files created by running @code{configure}. * Configurations:: Configurations Supported by GNU CC. -* Other Dir:: Compiling in a separate directory (not where the source is). * Cross-Compiler:: Building and installing a cross-compiler. * VMS Install:: See below for installation on VMS. * Collect2:: How @code{collect2} works; how it finds @code{ld}. @@ -26,40 +20,9 @@ provided for historical reference only. @end menu Here is the procedure for installing GNU CC on a GNU or Unix system. -See @ref{VMS Install}, for VMS systems. In this section we assume you -compile in the same directory that contains the source files; see -@ref{Other Dir}, to find out how to compile in a separate directory on -Unix systems. - -You cannot install GNU C 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. +See @ref{VMS Install}, for VMS systems. @enumerate -@item -If you have built GNU CC previously 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. - -@item -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. - -@cindex Bison parser generator -@cindex parser generator, Bison -@item -Make sure the Bison parser generator is installed. (This is unnecessary -if the Bison output file @file{c-parse.c} is more recent than -@file{c-parse.y},and you do not plan to change the @samp{.y} file.) - -Bison versions older than Sept 8, 1988 will produce incorrect output -for @file{c-parse.c}. - @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 @@ -194,63 +157,6 @@ 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 --nfp -On certain systems, you must specify whether the machine has a floating -point unit. These systems include @samp{m68k-sun-sunos@var{n}} and -@samp{m68k-isi-bsd}. On any other system, @samp{--nfp} currently has no -effect, though perhaps there are other systems where it could usefully -make a difference. - -@cindex Internal Compiler Checking -@item --enable-checking -When you specify this option, the compiler is built to perform checking -of tree node types when referencing fields of that node. 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 GNU C. - -@cindex Native Language Support -@cindex NLS -@item --enable-nls -@itemx --disable-nls -The @samp{--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 @samp{--disable-nls} option disables NLS. - -@cindex @code{gettext} -@item --with-included-gettext -If NLS is enbled, the @samp{--with-included-gettext} option causes the build -procedure to prefer its copy of GNU @code{gettext}. This is the default. If -you want the GCC build procedure to prefer the host's @code{gettext} -libraries, use @samp{--without-included-gettext}. - -@cindex @code{catgets} -@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 @samp{--with-catgets} option causes the -build procedure to use the host's @code{catgets} in this situation. - -@cindex Windows32 Registry support -@item --enable-win32-registry -@itemx --enable-win32-registry=@var{KEY} -@itemx --disable-win32-registry -The @samp{--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\} -@end smallexample - - defaults to GCC version number, and can be overridden by the -@code{--enable-win32-registry=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 @code{--disable-win32-registry} -option. This option has no effect on the other hosts. @end table @item @@ -271,242 +177,6 @@ words from the list @samp{c}, @samp{c++}, @samp{objective-c}, GNU compilers as subdirectories of the GNU CC source directory, you may also specify their names in this list. -Ignore any warnings you may see about ``statement not reached'' in -@file{insn-emit.c}; they are normal. Also, warnings about ``unknown -escape sequence'' are normal in @file{genopinit.c} and perhaps some -other files. Likewise, you should ignore warnings about ``constant is -so large that it is unsigned'' in @file{insn-emit.c} and -@file{insn-recog.c}, and a warning about a comparison always being zero -in @file{enquire.o}. Any other compilation errors may represent bugs in -the port to your machine or operating system, and -@ifclear INSTALLONLY -should be investigated and reported (@pxref{Bugs}). -@end ifclear -@ifset INSTALLONLY -should be investigated and reported. -@end ifset - -Some compilers fail to compile GNU CC because they have bugs or -limitations. For example, the Microsoft compiler is said to run out of -macro space. Some Ultrix compilers run out of expression space; then -you need to break up the statement where the problem happens. - -@item -If you are building a cross-compiler, stop here. @xref{Cross-Compiler}. - -@cindex stage1 -@item -Move the first-stage object files and executables into a subdirectory -with this command: - -@smallexample -make stage1 -@end smallexample - -The files are moved into a subdirectory named @file{stage1}. -Once installation is complete, you may wish to delete these files -with @code{rm -r stage1}. - -@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 @file{stage1} subdirectory -under the names @file{as}, @file{ld} or whatever is appropriate. This -will enable the stage 1 compiler to find the proper tools in the -following stage. - -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 -Recompile the compiler with itself, with this command: - -@smallexample -make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O2" -@end smallexample - -This is called making the stage 2 compiler. - -The command shown above builds compilers for all the supported -languages. If you don't want them all, you can specify the languages to -build by typing the argument @samp{LANGUAGES="@var{list}"}. @var{list} -should contain one or more words from the list @samp{c}, @samp{c++}, -@samp{objective-c}, and @samp{proto}. Separate the words with spaces. -@samp{proto} stands for the programs @code{protoize} and -@code{unprotoize}; they are not a separate language, but you use -@code{LANGUAGES} to enable or disable their installation. - -If you are going to build the stage 3 compiler, then you might want to -build only the C language in stage 2. - -Once you have built the stage 2 compiler, if you are short of disk -space, you can delete the subdirectory @file{stage1}. - -On a 68000 or 68020 system lacking floating point hardware, -unless you have selected a @file{tm.h} file that expects by default -that there is no such hardware, do this instead: - -@smallexample -make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O2 -msoft-float" -@end smallexample - -@item -If you wish to test the compiler by compiling it with itself one more -time, install any other necessary GNU tools (such as GAS or the GNU -linker) in the @file{stage2} subdirectory as you did in the -@file{stage1} subdirectory, then do this: - -@smallexample -make stage2 -make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O2" -@end smallexample - -@noindent -This is called making the stage 3 compiler. Aside from the @samp{-B} -option, the compiler options should be the same as when you made the -stage 2 compiler. But the @code{LANGUAGES} option need not be the -same. The command shown above builds compilers for all the supported -languages; if you don't want them all, you can specify the languages to -build by typing the argument @samp{LANGUAGES="@var{list}"}, as described -above. - -If you do not have to install any additional GNU tools, you may use the -command - -@smallexample -make bootstrap LANGUAGES=@var{language-list} BOOT_CFLAGS=@var{option-list} -@end smallexample - -@noindent -instead of making @file{stage1}, @file{stage2}, and performing -the two compiler builds. - -@item -Compare the latest object files with the stage 2 object files---they -ought to be identical, aside from time stamps (if any). - -On some systems, meaningful comparison of object files is impossible; -they always appear ``different.'' This is currently true on Solaris and -some systems that use ELF object file format. On some versions of Irix -on SGI machines and DEC Unix (OSF/1) on Alpha systems, you will not be -able to compare the files without specifying @file{-save-temps}; see the -description of individual systems above to see if you get comparison -failures. You may have similar problems on other systems. - -Use this command to compare the files: - -@smallexample -make compare -@end smallexample - -This will mention any object files that differ between stage 2 and stage -3. Any difference, no matter how innocuous, indicates that the stage 2 -compiler has compiled GNU CC incorrectly, and is therefore a potentially -@ifclear INSTALLONLY -serious bug which you should investigate and report (@pxref{Bugs}). -@end ifclear -@ifset INSTALLONLY -serious bug which you should investigate and report. -@end ifset - -If your system does not put time stamps in the object files, then this -is a faster way to compare them (using the Bourne shell): - -@smallexample -for file in *.o; do -cmp $file stage2/$file -done -@end smallexample - -If you have built the compiler with the @samp{-mno-mips-tfile} option on -MIPS machines, you will not be able to compare the files. - -@item -Install the compiler driver, the compiler's passes and run-time support -with @samp{make install}. Use the same value for @code{CC}, -@code{CFLAGS} and @code{LANGUAGES} that you used when compiling the -files that are being installed. One reason this is necessary is that -some versions of Make have bugs and recompile files gratuitously when -you do this step. If you use the same variable values, those files will -be recompiled properly. - -For example, if you have built the stage 2 compiler, you can use the -following command: - -@smallexample -make install CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" LANGUAGES="@var{list}" -@end smallexample - -@noindent -This copies the files @file{cc1}, @file{cpp} and @file{libgcc.a} to -files @file{cc1}, @file{cpp} and @file{libgcc.a} in the directory -@file{/usr/local/lib/gcc-lib/@var{target}/@var{version}}, which is where -the compiler driver program looks for them. Here @var{target} is the -canonicalized form of target machine type specified when you ran -@file{configure}, and @var{version} is the version number of GNU CC. -This naming scheme permits various versions and/or cross-compilers to -coexist. It also copies the executables for compilers for other -languages (e.g., @file{cc1plus} for C++) to the same directory. - -This also copies the driver program @file{xgcc} into -@file{/usr/local/bin/gcc}, so that it appears in typical execution -search paths. It also copies @file{gcc.1} into -@file{/usr/local/man/man1} and info pages into @file{/usr/local/info}. - -On some systems, this command causes recompilation of some files. This -is usually due to bugs in @code{make}. You should either ignore this -problem, or use GNU Make. - -(It is usually better to install GNU CC executables from stage 2 or 3, -since they usually run faster than the ones compiled with some other -compiler.) - -@item -GNU CC includes a runtime library for Objective-C because it is an -integral part of the language. You can find the files associated with -the library in the subdirectory @file{objc}. The GNU Objective-C -Runtime Library requires header files for the target's C library in -order to be compiled,and also requires the header files for the target's -thread library if you want thread support. @xref{Cross Headers, -Cross-Compilers and Header Files, Cross-Compilers and Header Files}, for -discussion about header files issues for cross-compilation. - -When you run @file{configure}, it picks the appropriate Objective-C -thread implementation file for the target platform. In some situations, -you may wish to choose a different back-end as some platforms support -multiple thread implementations or you may wish to disable thread -support completely. You do this by specifying a value for the -@var{OBJC_THREAD_FILE} makefile variable on the command line when you -run make, for example: - -@smallexample -make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O2" OBJC_THREAD_FILE=thr-single -@end smallexample - -@noindent -Below is a list of the currently available back-ends. - -@itemize @bullet -@item thr-single -Disable thread support, should work for all platforms. -@item thr-decosf1 -DEC OSF/1 thread support. -@item thr-irix -SGI IRIX thread support. -@item thr-mach -Generic MACH thread support, known to work on NEXTSTEP. -@item thr-os2 -IBM OS/2 thread support. -@item thr-posix -Generix POSIX thread support. -@item thr-pthreads -PCThreads on Linux-based GNU systems. -@item thr-solaris -SUN Solaris thread support. -@item thr-win32 -Microsoft Win32 API thread support. -@end itemize @end enumerate @node Configuration Files @@ -668,67 +338,6 @@ things you must know: See @ref{VMS Install}, for details on how to install GNU CC on VMS. @end table -@node Other Dir -@section Compilation in a Separate Directory -@cindex other directory, compilation in -@cindex compilation in a separate directory -@cindex separate directory, compilation in - -If you wish to build the object files and executables in a directory -other than the one containing the source files, here is what you must -do differently: - -@enumerate -@item -Make sure you have a version of Make that supports the @code{VPATH} -feature. (GNU Make supports it, as do Make versions on most BSD -systems.) - -@item -If you have ever run @file{configure} in the source directory, you must undo -the configuration. Do this by running: - -@example -make distclean -@end example - -@item -Go to the directory in which you want to build the compiler before -running @file{configure}: - -@example -mkdir gcc-sun3 -cd gcc-sun3 -@end example - -On systems that do not support symbolic links, this directory must be -on the same file system as the source code directory. - -@item -Specify where to find @file{configure} when you run it: - -@example -../gcc/configure @dots{} -@end example - -This also tells @code{configure} where to find the compiler sources; -@code{configure} takes the directory from the file name that was used to -invoke it. But if you want to be sure, you can specify the source -directory with the @samp{--srcdir} option, like this: - -@example -../gcc/configure --srcdir=../gcc @var{other options} -@end example - -The directory you specify with @samp{--srcdir} need not be the same -as the one that @code{configure} is found in. -@end enumerate - -Now, you can run @code{make} in that directory. You need not repeat the -configuration steps shown above, when ordinary source files change. You -must, however, run @code{configure} again when the configuration files -change, if your system does not support symbolic links. - @node Cross-Compiler @section Building and Installing a Cross-Compiler @cindex cross-compiler, installation diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 34a4e565307..f8b1bfaece2 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -33,7 +33,7 @@ @settitle Installing GCC: Binaries @end ifset -@comment $Id: install.texi,v 1.13 2001/06/02 22:33:30 jsm28 Exp $ +@comment $Id: install.texi,v 1.14 2001/06/03 06:40:15 dje Exp $ @c Copyright (C) 2001 Free Software Foundation, Inc. @c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com @@ -247,6 +247,15 @@ 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 built GNU CC previously 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 @@ -407,10 +416,34 @@ On some systems, this is the default. 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 @samp{aix}, -@samp{dce}, @samp{decosf1}, @samp{irix}, @samp{mach}, @samp{os2}, -@samp{posix}, @samp{pthreads}, @samp{single}, @samp{solaris}, -@samp{vxworks} and @samp{win32}. +like C++ and Java. The possibilities for @var{lib} are: + +@table @code +@item aix +AIX thread support. +@item dce +DCE thread support. +@item decosf1 +DEC OSF/1 thread support. +@item irix +SGI IRIX thread support. +@item mach +Generic MACH thread support, known to work on NEXTSTEP. +@item os2 +IBM OS/2 thread support. +@item posix +Generix POSIX thread support. +@item pthreads +Same as @samp{posix}. +@item single +Disable thread support, should work for all platforms. +@item solaris +SUN Solaris 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 @@ -493,6 +526,61 @@ you may use @option{--enable-libgcj} to override the default. @item --with-dwarf2 Specify that the compiler should use DWARF2 debugging information as the default. + +@item --enable-win32-registry +@itemx --enable-win32-registry=@var{KEY} +@itemx --disable-win32-registry +The @samp{--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\} +@end smallexample + + defaults to GCC version number, and can be overridden by the +@code{--enable-win32-registry=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 @code{--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, @samp{--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 GNU C. 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 @samp{--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 @samp{--disable-nls} option disables NLS. + +@item --with-included-gettext +If NLS is enbled, the @samp{--with-included-gettext} option causes the build +procedure to prefer its copy of GNU @code{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 @samp{--with-catgets} option causes the +build procedure to use the host's @code{catgets} in this situation. @end table Some options which only apply to building cross compilers: @@ -580,6 +668,17 @@ 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.0 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 @@ -621,6 +720,17 @@ without debugging information with @samp{make CFLAGS='-O' LIBCFLAGS='-g roughly 40% of disk space both for the bootstrap and the final installation. (Libraries will still contain debugging information.) +If you wish to use non-default flags when compiling the stage2 and +stage3 compile, 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=...} 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 @@ -628,6 +738,12 @@ which the particular compiler has been built. Please note, that re-defining LANGUAGES when calling @samp{make bootstrap} @strong{does not} work anymore! +If the comparison of stage2 and stage3 fails, this normally indicates +that the stage 2 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 @@ -1477,6 +1593,11 @@ compilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}. Please have a look at our @uref{binaries.html,,binaries page}. +You cannot install GNU C 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


@@ -2895,6 +3016,9 @@ On System V, if you get an error like this, @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

-- 2.30.2