diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-11-05 10:35:33 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-11-05 10:35:33 +0000 |
commit | 98fb2ff8d94e9537906c1e1e2f3a72ecdc96f295 (patch) | |
tree | 242d08c66351c0b6c9bf23b6ef32fdb9a9e7d282 /gcc | |
parent | 6ac1740459c890ca8b994887b1948489b56a0d70 (diff) | |
download | gcc-98fb2ff8d94e9537906c1e1e2f3a72ecdc96f295.tar.gz |
* Makefile.in: Remove all targets related to building
distributions and diffs, or INSTALL.
* INSTALL, install1.texi: Remove.
* configure.in: Remove mention of distdir.
* configure: Regenerate.
* objc/Make-lang.in: Remove mention of distdir.
ch:
* Make-lang.in (CHILL.distdir): Remove.
cp:
* Make-lang.in (c++.distdir): Remove.
f:
* Make-lang.in: Remove f77.distdir and f/INSTALL.
* INSTALL, install0.texi: Remove.
java:
* Make-lang.in (java.distdir): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37265 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/INSTALL | 2197 | ||||
-rw-r--r-- | gcc/Makefile.in | 119 | ||||
-rw-r--r-- | gcc/ch/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/ch/Make-lang.in | 14 | ||||
-rwxr-xr-x | gcc/configure | 8 | ||||
-rw-r--r-- | gcc/configure.in | 2 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/Make-lang.in | 20 | ||||
-rw-r--r-- | gcc/f/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/f/INSTALL | 352 | ||||
-rw-r--r-- | gcc/f/Make-lang.in | 29 | ||||
-rw-r--r-- | gcc/f/install0.texi | 9 | ||||
-rw-r--r-- | gcc/install1.texi | 15 | ||||
-rw-r--r-- | gcc/java/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/java/Make-lang.in | 13 | ||||
-rw-r--r-- | gcc/objc/Make-lang.in | 14 |
17 files changed, 43 insertions, 2775 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f22013986b9..da60ee070d8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> + + * Makefile.in: Remove all targets related to building + distributions and diffs, or INSTALL. + * INSTALL, install1.texi: Remove. + * configure.in: Remove mention of distdir. + * configure: Regenerate. + * objc/Make-lang.in: Remove mention of distdir. + 2000-11-04 Neil Booth <neilb@earthling.net> * cpp.texi: Update for _Pragma. diff --git a/gcc/INSTALL b/gcc/INSTALL deleted file mode 100644 index bad72afee14..00000000000 --- a/gcc/INSTALL +++ /dev/null @@ -1,2197 +0,0 @@ -This file documents the installation of the GNU compiler. Copyright -(C) 1988, 1989, 1992, 1994, 1995 Free Software Foundation, Inc. You -may copy, distribute, and modify it freely as long as you preserve this -copyright notice and permission notice. - -Installing GNU CC -***************** - - Note most of this information is out of date and superseded by the -online GCC install procedures `http://gcc.gnu.org/install/'. It is -provided for historical reference only. - - Here is the procedure for installing GNU CC on a GNU or Unix system. -See *Note VMS Install::, for VMS systems. In this section we assume you -compile in the same directory that contains the source files; see *Note -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. - - 1. If you have built GNU CC previously in the same directory for a - different target machine, do `make distclean' to delete all files - that might be invalid. One of the files this deletes is - `Makefile'; if `make distclean' complains that `Makefile' does not - exist, it probably means that the directory is already suitably - clean. - - 2. On a System V release 4 system, make sure `/usr/bin' precedes - `/usr/ucb' in `PATH'. The `cc' command in `/usr/ucb' uses - libraries which have bugs. - - 3. Make sure the Bison parser generator is installed. (This is - unnecessary if the Bison output file `c-parse.c' is more recent - than `c-parse.y',and you do not plan to change the `.y' file.) - - Bison versions older than Sept 8, 1988 will produce incorrect - output for `c-parse.c'. - - 4. 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 `as', `ld' or whatever is appropriate. This will - enable the compiler to find the proper tools for compilation of - the program `enquire'. - - Alternatively, you can do subsequent compilation using a value of - the `PATH' environment variable such that the necessary GNU tools - come before the standard system tools. - - 5. Specify the host, build and target machine configurations. You do - this when you run the `configure' script. - - The "build" machine is the system which you are using, the "host" - machine is the system where you want to run the resulting compiler - (normally the build machine), and the "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 `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 `configure' cannot figure out - what your configuration is or guesses wrong. - - In those cases, specify the build machine's "configuration name" - with the `--host' option; the host and target will default to be - the same as the host machine. (If you are building a - cross-compiler, see *Note Cross-Compiler::.) - - Here is an example: - - ./configure --host=sparc-sun-sunos4.1 - - 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: `CPU-COMPANY-SYSTEM'. (The three - parts may themselves contain dashes; `configure' can figure out - which dashes serve which purpose.) For example, - `m68k-sun-sunos4.1' specifies a Sun 3. - - You can also replace parts of the configuration by nicknames or - aliases. For example, `sun3' stands for `m68k-sun', so - `sun3-sunos4.1' is another way to specify a Sun 3. You can also - use simply `sun3-sunos', since the version of SunOS is assumed by - default to be version 4. - - 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 *Note 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. - - 6. When running `configure', you may also need to specify certain - additional options that describe variant hardware and software - configurations. These are `--with-gnu-as', `--with-gnu-ld', - `--with-stabs' and `--nfp'. - - `--with-gnu-as' - If you will use GNU CC with the GNU assembler (GAS), you - should declare this by using the `--with-gnu-as' option when - you run `configure'. - - Using this option does not install GAS. It only modifies the - output of GNU CC to work with GAS. Building and installing - GAS is up to you. - - Conversely, if you *do not* wish to use GAS and do not specify - `--with-gnu-as' when building GNU CC, it is up to you to make - sure that GAS is not installed. GNU CC searches for a - program named `as' in various directories; if the program it - finds is GAS, then it runs GAS. If you are not sure where - GNU CC finds the assembler it is using, try specifying `-v' - when you run it. - - The systems where it makes a difference whether you use GAS - are - `hppa1.0-ANY-ANY', `hppa1.1-ANY-ANY', `i386-ANY-sysv', - `i386-ANY-isc', - `i860-ANY-bsd', `m68k-bull-sysv', - `m68k-hp-hpux', `m68k-sony-bsd', - `m68k-altos-sysv', `m68000-hp-hpux', - `m68000-att-sysv', `ANY-lynx-lynxos', and `mips-ANY'). On - any other system, `--with-gnu-as' has no effect. - - On the systems listed above (except for the HP-PA, for ISC on - the 386, and for `mips-sgi-irix5.*'), if you use GAS, you - should also use the GNU linker (and specify `--with-gnu-ld'). - - `--with-gnu-ld' - Specify the option `--with-gnu-ld' if you plan to use the GNU - linker with GNU CC. - - This option does not cause the GNU linker to be installed; it - just modifies the behavior of GNU CC to work with the GNU - linker. - - `--with-stabs' - On MIPS based systems and on Alphas, you must specify whether - you want GNU CC 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, GNU CC uses the ECOFF debugging format by default; - if you prefer BSD stabs, specify `--with-stabs' when you - configure GNU CC. - - No matter which default you choose when you configure GNU CC, - the user can use the `-gcoff' and `-gstabs+' options to - specify explicitly the debug format for a particular - compilation. - - `--with-stabs' is meaningful on the ISC system on the 386, - also, if `--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. - - `--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. - - `--nfp' - On certain systems, you must specify whether the machine has - a floating point unit. These systems include - `m68k-sun-sunosN' and `m68k-isi-bsd'. On any other system, - `--nfp' currently has no effect, though perhaps there are - other systems where it could usefully make a difference. - - `--enable-haifa' - `--disable-haifa' - Use `--enable-haifa' to enable use of an experimental - instruction scheduler (from IBM Haifa). This may or may not - produce better code. Some targets on which it is known to be - a win enable it by default; use `--disable-haifa' to disable - it in these cases. `configure' will print out whether the - Haifa scheduler is enabled when it is run. - - `--enable-threads=TYPE' - Certain systems, notably Linux-based GNU systems, can't be - relied on to supply a threads facility for the Objective C - runtime and so will default to single-threaded runtime. They - may, however, have a library threads implementation - available, in which case threads can be enabled with this - option by supplying a suitable TYPE, probably `posix'. The - possibilities for TYPE are `single', `posix', `win32', - `solaris', `irix' and `mach'. - - `--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. - - The `configure' script searches subdirectories of the source - directory for other compilers that are to be integrated into - GNU CC. The GNU compiler for C++, called G++ is in a - subdirectory named `cp'. `configure' inserts rules into - `Makefile' to build all of those compilers. - - Here we spell out what files will be set up by `configure'. - Normally you need not be concerned with these files. - - * A file named `config.h' is created that contains a - `#include' of the top-level config file for the machine - you will run the compiler on (*note The Configuration - File: (gcc.info)Config.). This file is responsible for - defining information about the host machine. It - includes `tm.h'. - - The top-level config file is located in the subdirectory - `config'. Its name is always `xm-SOMETHING.h'; usually - `xm-MACHINE.h', but there are some exceptions. - - If your system does not support symbolic links, you - might want to set up `config.h' to contain a `#include' - command which refers to the appropriate file. - - * A file named `tconfig.h' is created which includes the - top-level config file for your target machine. This is - used for compiling certain programs to run on that - machine. - - * A file named `tm.h' is created which includes the - machine-description macro file for your target machine. - It should be in the subdirectory `config' and its name - is often `MACHINE.h'. - - `--enable-nls' - `--disable-nls' - The `--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 - `--disable-nls' option disables NLS. - - `--with-included-gettext' - If NLS is enbled, the `--with-included-gettext' option causes - the build procedure to prefer its copy of GNU `gettext'. This - is the default. If you want the GCC build procedure to prefer - the host's `gettext' libraries, use - `--without-included-gettext'. - - `--with-catgets' - If NLS is enabled, and if the host lacks `gettext' but has the - inferior `catgets' interface, the GCC build procedure normally - ignores `catgets' and instead uses GCC's copy of the GNU - `gettext' library. The `--with-catgets' option causes the - build procedure to use the host's `catgets' in this situation. - - `--enable-maintainer-mode' - The build rules that regenerate the GCC master message catalog - `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 `--enable-maintainer-mode' will enable this. - Note that you need a special version of the `gettext' tools - to do so. - - `--enable-win32-registry' - `--enable-win32-registry=KEY' - `--disable-win32-registry' - The `--enable-win32-registry' option enables Windows-hosted - GCC to look up installations paths in the registry using the - following key: - - `HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\<KEY>' - - <KEY> defaults to GCC version number, and can be overridden - by the `--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 `--disable-win32-registry' option. This option - has no effect on the other hosts. - - 7. In certain cases, you should specify certain other options when - you run `configure'. - - * The standard directory for installing GNU CC is - `/usr/local/lib'. If you want to install its files somewhere - else, specify `--prefix=DIR' when you run `configure'. Here - DIR is a directory name to use instead of `/usr/local' for - all purposes with one exception: the directory - `/usr/local/include' is searched for header files no matter - where you install the compiler. To override this name, use - the `--with-local-prefix' option below. The directory you - specify need not exist, but its parent directory must exist. - - * Specify `--with-local-prefix=DIR' if you want the compiler to - search directory `DIR/include' for locally installed header - files *instead* of `/usr/local/include'. - - You should specify `--with-local-prefix' *only* if your site - has a different convention (not `/usr/local') for where to put - site-specific files. - - The default value for `--with-local-prefix' is `/usr/local' - regardless of the value of `--prefix'. Specifying `--prefix' - has no effect on which directory GNU CC searches for local - header files. This may seem counterintuitive, but actually - it is logical. - - The purpose of `--prefix' is to specify where to *install GNU - CC*. The local header files in `/usr/local/include'--if you - put any in that directory--are not part of GNU CC. They are - part of other programs--perhaps many others. (GNU CC - installs its own header files in another directory which is - based on the `--prefix' value.) - - *Do not* specify `/usr' as the `--with-local-prefix'! The - directory you use for `--with-local-prefix' *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 `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 GNU CC. Perhaps they make - this assumption because installing GNU CC creates the - directory. - - 8. Build the compiler. Just type `make LANGUAGES=c' in the compiler - directory. - - `LANGUAGES=c' specifies that only the C compiler should be - compiled. The makefile normally builds compilers for all the - supported languages; currently, C, C++, Objective C, Java, - FORTRAN, and CHILL. However, C is the only language that is sure - to work when you build with other non-GNU C compilers. In - addition, building anything but C at this stage is a waste of time. - - In general, you can specify the languages to build by typing the - argument `LANGUAGES="LIST"', where LIST is one or more words from - the list `c', `c++', `objective-c', `java', `f77', and `CHILL'. - If you have any additional 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 - `insn-emit.c'; they are normal. Also, warnings about "unknown - escape sequence" are normal in `genopinit.c' and perhaps some - other files. Likewise, you should ignore warnings about "constant - is so large that it is unsigned" in `insn-emit.c' and - `insn-recog.c', and a warning about a comparison always being zero - in `enquire.o'. Any other compilation errors may represent bugs in - the port to your machine or operating system, and should be - investigated and reported. - - 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. - - 9. If you are building a cross-compiler, stop here. *Note - Cross-Compiler::. - - 10. Move the first-stage object files and executables into a - subdirectory with this command: - - make stage1 - - The files are moved into a subdirectory named `stage1'. Once - installation is complete, you may wish to delete these files with - `rm -r stage1'. - - 11. 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 `stage1' - subdirectory under the names `as', `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 `PATH' environment variable such that the necessary GNU tools - come before the standard system tools. - - 12. Recompile the compiler with itself, with this command: - - make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O2" - - 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 `LANGUAGES="LIST"'. LIST - should contain one or more words from the list `c', `c++', - `objective-c', and `proto'. Separate the words with spaces. - `proto' stands for the programs `protoize' and `unprotoize'; they - are not a separate language, but you use `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 `stage1'. - - On a 68000 or 68020 system lacking floating point hardware, unless - you have selected a `tm.h' file that expects by default that there - is no such hardware, do this instead: - - make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O2 -msoft-float" - - 13. 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 `stage2' subdirectory as you did in the - `stage1' subdirectory, then do this: - - make stage2 - make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O2" - - This is called making the stage 3 compiler. Aside from the `-B' - option, the compiler options should be the same as when you made - the stage 2 compiler. But the `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 `LANGUAGES="LIST"', - as described above. - - If you do not have to install any additional GNU tools, you may - use the command - - make bootstrap LANGUAGES=LANGUAGE-LIST BOOT_CFLAGS=OPTION-LIST - - instead of making `stage1', `stage2', and performing the two - compiler builds. - - 14. 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 `-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: - - make compare - - 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 serious bug which you should investigate - and report. - - 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): - - for file in *.o; do - cmp $file stage2/$file - done - - If you have built the compiler with the `-mno-mips-tfile' option on - MIPS machines, you will not be able to compare the files. - - 15. Install the compiler driver, the compiler's passes and run-time - support with `make install'. Use the same value for `CC', - `CFLAGS' and `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: - - make install CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" LANGUAGES="LIST" - - This copies the files `cc1', `cpp' and `libgcc.a' to files `cc1', - `cpp' and `libgcc.a' in the directory - `/usr/local/lib/gcc-lib/TARGET/VERSION', which is where the - compiler driver program looks for them. Here TARGET is the - canonicalized form of target machine type specified when you ran - `configure', and 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., `cc1plus' for C++) to the same directory. - - This also copies the driver program `xgcc' into - `/usr/local/bin/gcc', so that it appears in typical execution - search paths. It also copies `gcc.1' into `/usr/local/man/man1' - and info pages into `/usr/local/info'. - - On some systems, this command causes recompilation of some files. - This is usually due to bugs in `make'. You should either ignore - this problem, or use GNU Make. - - *Warning: there is a bug in `alloca' in the Sun library. To avoid - this bug, be sure to install the executables of GNU CC that were - compiled by GNU CC. (That is, the executables from stage 2 or 3, - not stage 1.) They use `alloca' as a built-in function and never - the one in the library.* - - (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.) - - 16. If you're going to use C++, you need to install the C++ runtime - library. This includes all I/O functionality, special class - libraries, etc. - - The standard C++ runtime library for GNU CC is called `libstdc++'. - An obsolescent library `libg++' may also be available, but it's - necessary only for older software that hasn't been converted yet; - if you don't know whether you need `libg++' then you probably don't - need it. - - Here's one way to build and install `libstdc++' for GNU CC: - - * Build and install GNU CC, so that invoking `gcc' obtains the - GNU CC that was just built. - - * Obtain a copy of a compatible `libstdc++' distribution. For - example, the `libstdc++-2.8.0.tar.gz' distribution should be - compatible with GCC 2.8.0. GCC distributors normally - distribute `libstdc++' as well. - - * Set the `CXX' environment variable to `gcc' while running the - `libstdc++' distribution's `configure' command. Use the same - `configure' options that you used when you invoked GCC's - `configure' command. - - * Invoke `make' to build the C++ runtime. - - * Invoke `make install' to install the C++ runtime. - - To summarize, after building and installing GNU CC, invoke the - following shell commands in the topmost directory of the C++ - library distribution. For CONFIGURE-OPTIONS, use the same options - that you used to configure GNU CC. - - $ CXX=gcc ./configure CONFIGURE-OPTIONS - $ make - $ make install - - 17. GNU CC includes a runtime library for Objective-C because it is an - integral part of the language. You can find the files associated - with the library in the subdirectory `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. *Note - Cross-Compilers and Header Files: Cross Headers, for discussion - about header files issues for cross-compilation. - - When you run `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 OBJC_THREAD_FILE makefile variable on the command - line when you run make, for example: - - make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O2" OBJC_THREAD_FILE=thr-single - - Below is a list of the currently available back-ends. - - * thr-single Disable thread support, should work for all - platforms. - - * thr-decosf1 DEC OSF/1 thread support. - - * thr-irix SGI IRIX thread support. - - * thr-mach Generic MACH thread support, known to work on - NEXTSTEP. - - * thr-os2 IBM OS/2 thread support. - - * thr-posix Generix POSIX thread support. - - * thr-pthreads PCThreads on Linux-based GNU systems. - - * thr-solaris SUN Solaris thread support. - - * thr-win32 Microsoft Win32 API thread support. - -Files Created by `configure' -============================ - - Here we spell out what files will be set up by `configure'. Normally -you need not be concerned with these files. - - * A file named `config.h' is created that contains a `#include' of - the top-level config file for the machine you will run the compiler - on (*note The Configuration File: (gcc.info)Config.). This file - is responsible for defining information about the host machine. - It includes `tm.h'. - - The top-level config file is located in the subdirectory `config'. - Its name is always `xm-SOMETHING.h'; usually `xm-MACHINE.h', but - there are some exceptions. - - If your system does not support symbolic links, you might want to - set up `config.h' to contain a `#include' command which refers to - the appropriate file. - - * A file named `tconfig.h' is created which includes the top-level - config file for your target machine. This is used for compiling - certain programs to run on that machine. - - * A file named `tm.h' is created which includes the - machine-description macro file for your target machine. It should - be in the subdirectory `config' and its name is often `MACHINE.h'. - - * The command file `configure' also constructs the file `Makefile' - by adding some text to the template file `Makefile.in'. The - additional text comes from files in the `config' directory, named - `t-TARGET' and `x-HOST'. If these files do not exist, it means - nothing needs to be added for a given target or host. - -Configurations Supported by GNU CC -================================== - - Here are the possible CPU types: - - 1750a, a29k, alpha, arm, avr, cN, 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. - - Here are the recognized company names. As you can see, customary -abbreviations are used rather than the longer official names. - - 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. - - The company name is meaningful only to disambiguate when the rest of -the information supplied is insufficient. You can omit it, writing -just `CPU-SYSTEM', if it is not needed. For example, `vax-ultrix4.2' -is equivalent to `vax-dec-ultrix4.2'. - - Here is a list of system types: - - 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. - -You can omit the system type; then `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 `bsd4.3' or `bsd4.4' to -distinguish versions of BSD. In practice, the version number is most -needed for `sysv3' and `sysv4', which are often treated differently. - - `linux-gnu' is the canonical name for the GNU/Linux target; however -GNU CC will also accept `linux'. The version of the kernel in use is -not relevant on these systems. A suffix such as `libc1' or `aout' -distinguishes major versions of the C library; all of the suffixed -versions are obsolete. - - If you specify an impossible combination such as `i860-dg-vms', then -you may get an error message from `configure', or it may ignore part of -the information and do the best it can with the rest. `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 `sun3', mentioned above, is an alias for `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: - - 3300, 3b1, 3bN, 7300, altos3068, altos, apollo68, att-7300, - balance, convex-cN, crds, decstation-3100, decstation, delta, - encore, fx2800, gmicro, hp7NN, hp8NN, hp9k2NN, hp9k3NN, hp9k7NN, - hp9k8NN, 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. - -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 `local' as the company name to access them. If you use -configuration `CPU-local', the configuration name without the cpu prefix -is used to form the configuration file names. - - Thus, if you specify `m68k-local', configuration uses files -`m68k.md', `local.h', `m68k.c', `xm-local.h', `t-local', and `x-local', -all in the directory `config/m68k'. - - Here is a list of configurations that have special treatment or -special things you must know: - -`1750a-*-*' - MIL-STD-1750A processors. - - The MIL-STD-1750A cross configuration produces output for - `as1750', an assembler/linker available under the GNU Public - License for the 1750A. `as1750' can be obtained at - `ftp://ftp.fta-berlin.de/pub/crossgcc/1750gals/'. A similarly - licensed simulator for the 1750A is available from same address. - - You should ignore a fatal error during the building of libgcc - (libgcc is not yet implemented for the 1750A.) - - The `as1750' assembler requires the file `ms1750.inc', which is - found in the directory `config/1750a'. - - GNU CC produced the same sections as the Fairchild F9450 C - Compiler, namely: - - `Normal' - The program code section. - - `Static' - The read/write (RAM) data section. - - `Konst' - The read-only (ROM) constants section. - - `Init' - Initialization section (code to copy KREL to SREL). - - The smallest addressable unit is 16 bits (BITS_PER_UNIT is 16). - This means that type `char' is represented with a 16-bit word per - character. The 1750A's "Load/Store Upper/Lower Byte" instructions - are not used by GNU CC. - -`alpha-*-osf1' - Systems using processors that implement the DEC Alpha architecture - and are running the DEC Unix (OSF/1) operating system, for example - the DEC Alpha AXP systems.CC.) - - GNU CC writes a `.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 `/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. - - `make compare' may fail on old versions of DEC Unix unless you add - `-save-temps' to `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 `stage1' and `stage2' - compilations. The option `-save-temps' forces a fixed name to be - used for the assembler input file, instead of a randomly chosen - name in `/tmp'. Do not add `-save-temps' unless the comparisons - fail without that option. If you add `-save-temps', you will have - to manually delete the `.i' and `.s' files after each series of - compilations. - - GNU CC now supports both the native (ECOFF) debugging format used - by DBX and GDB and an encapsulated STABS format for use only with - GDB. See the discussion of the `--with-stabs' option of - `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 `.align' directive is used. To - work around this problem, GNU CC will not emit such alignment - directives while writing ECOFF format debugging information even - if optimization is being performed. Unfortunately, this has the - very undesirable side-effect that code addresses when `-O' is - specified are different depending on whether or not `-g' is also - specified. - - To avoid this behavior, specify `-gstabs+' and use GDB instead of - DBX. DEC is now aware of this problem with the assembler and - hopes to provide a fix shortly. - -`arc-*-elf' - Argonaut ARC processor. This configuration is intended for - embedded systems. - -`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 `a.out' format object - modules. - - You may need to make a variant of the file `arm.h' for your - particular configuration. - -`arm-*-elf' - This configuration is intended for embedded systems. - -`arm-*-linux*aout' - Any of the ARM-family processors running the Linux-based GNU - system with the `a.out' binary format. This is an obsolete - configuration. - -`arm-*-linux' -`arm-*-linux-gnu' -`arm-*-linux*oldld' - Any of the ARM-family processors running the Linux-based GNU - system with the `ELF' binary format. You must use version - 2.9.1.0.22 or later of the GNU/Linux binutils, which you can - download from `ftp://ftp.varesearch.com/pub/support/hjl/binutils/'. - - These two configurations differ only in the required version of GNU - binutils. For binutils 2.9.1.0.x, use `arm-*-linux-gnuoldld'. For - newer versions of binutils, use `arm-*-linux-gnu'. - -`arm-*-riscix' - The ARM2 or ARM3 processor running RISC iX, Acorn's port of BSD - Unix. If you are running a version of RISC iX prior to 1.2 then - you must specify the version number during configuration. Note - that the assembler shipped with RISC iX does not support stabs - debugging information; a new version of the assembler, with stabs - support included, is now available from Acorn and via ftp - `ftp://ftp.acorn.com/pub/riscix/as+xterm.tar.Z'. To enable stabs - debugging, pass `--with-gnu-as' to configure. - - You will need to install GNU `sed' before you can run configure. - -`a29k' - AMD Am29k-family processors. These are normally used in embedded - applications. There are no standard Unix configurations. This - configuration corresponds to AMD's standard calling sequence and - binary interface and is compatible with other 29k tools. - - You may need to make a variant of the file `a29k.h' for your - particular configuration. - -`a29k-*-bsd' - AMD Am29050 used in a system running a variant of BSD Unix. - -`avr' - ATMEL AVR-family micro controllers. These are used in embedded - applications. There are no standard Unix configurations. - Supports following MCU's: - AT90S23xx - ATtiny22 - AT90S44xx - - AT90S85xx - ATmega603/603L - ATmega103/103L - -`decstation-*' - MIPS-based DECstations can support three different personalities: - Ultrix, DEC OSF/1, and OSF/rose. (Alpha-based DECstation products - have a configuration name beginning with `alpha-dec'.) To - configure GCC for these platforms use the following configurations: - - `decstation-ultrix' - Ultrix configuration. - - `decstation-osf1' - Dec's version of OSF/1. - - `decstation-osfrose' - Open Software Foundation reference port of OSF/1 which uses - the OSF/rose object file format instead of ECOFF. Normally, - you would not select this configuration. - - The MIPS C compiler needs to be told to increase its table size - for switch statements with the `-Wf,-XNg1500' option in order to - compile `cp/parse.c'. If you use the `-O2' optimization option, - you also need to use `-Olimit 3000'. Both of these options are - automatically generated in the `Makefile' that the shell script - `configure' builds. If you override the `CC' make variable and - use the MIPS compilers, you may need to add `-Wf,-XNg1500 -Olimit - 3000'. - -`elxsi-elxsi-bsd' - The Elxsi's C compiler has known limitations that prevent it from - compiling GNU C. Please contact <mrs@cygnus.com> for more details. - -`dsp16xx' - A port to the AT&T DSP1610 family of processors. - -`h8300-*-*' - Hitachi H8/300 series of processors. - - 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. - -`hppa*-*-*' - There are several variants of the HP-PA processor which run a - variety of operating systems. GNU CC must be configured to use - the correct processor type and operating system, or GNU CC will - not function correctly. The easiest way to handle this problem is - to *not* specify a target when configuring GNU CC, the `configure' - script will try to automatically determine the right processor - type and operating system. - - `-g' does not work on HP-UX, since that system uses a peculiar - debugging format which GNU CC does not know about. However, `-g' - will work if you also use GAS and GDB in conjunction with GCC. We - highly recommend using GAS for all HP-PA configurations. - - You should be using GAS-2.6 (or later) along with GDB-4.16 (or - later). These can be retrieved from all the traditional GNU ftp - archive sites. - - On some versions of HP-UX, you will need to install GNU `sed'. - - You will need to be install GAS into a directory before `/bin', - `/usr/bin', and `/usr/ccs/bin' in your search path. You should - install GAS before you build GNU CC. - - To enable debugging, you must configure GNU CC with the - `--with-gnu-as' option before building. - -`i370-*-*' - This port is very preliminary and has many known bugs. We hope to - have a higher-quality port for this machine soon. - -`i386-*-linux*oldld' - Use this configuration to generate `a.out' binaries on Linux-based - GNU systems if you do not have gas/binutils version 2.5.2 or later - installed. This is an obsolete configuration. - -`i386-*-linux*aout' - Use this configuration to generate `a.out' binaries on Linux-based - GNU systems. This configuration is being superseded. You must use - gas/binutils version 2.5.2 or later. - -`i386-*-linux' -`i386-*-linux-gnu' - Use this configuration to generate ELF binaries on Linux-based GNU - systems. You must use gas/binutils version 2.5.2 or later. - -`i386-*-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. - -`i386-*-sco3.2v4' - Use this configuration for SCO release 3.2 version 4. - -`i386-*-sco3.2v5*' - Use this for the SCO OpenServer Release family including 5.0.0, - 5.0.2, 5.0.4, 5.0.5, Internet FastStart 1.0, and Internet - FastStart 1.1. - - GNU CC can generate COFF binaries if you specify `-mcoff' or ELF - binaries, the default. A full `make bootstrap' is recommended - so that an ELF compiler that builds ELF is generated. - - You must have TLS597 from `ftp://ftp.sco.com/TLS' installed for ELF - C++ binaries to work correctly on releases before 5.0.4. - - 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 have complex asms) you must configure this - package `--with-gnu-as'. To do this, install (cp or symlink) - gcc/as to your copy of the GNU assembler. You must use a recent - version of GNU binutils; version 2.9.1 seems to work well. If you - select this option, you will be unable to build COFF images. - Trying to do so will result in non-obvious failures. In general, - the "-with-gnu-as" option isn't as well tested as the native - assembler. - - *NOTE:* If you are building C++, you must follow the instructions - about invoking `make bootstrap' because the native OpenServer - compiler may build a `cc1plus' that will not correctly parse many - valid C++ programs. You must do a `make bootstrap' if you are - building with the native compiler. - -`i386-*-isc' - It may be a good idea to link with GNU malloc instead of the - malloc that comes with the system. - - In ISC version 4.1, `sed' core dumps when building `deduced.h'. - Use the version of `sed' from version 4.0. - -`i386-*-esix' - It may be good idea to link with GNU malloc instead of the malloc - that comes with the system. - -`i386-ibm-aix' - You need to use GAS version 2.1 or later, and LD from GNU binutils - version 2.2 or later. - -`i386-sequent-bsd' - Go to the Berkeley universe before compiling. - -`i386-sequent-ptx1*' -`i386-sequent-ptx2*' - You must install GNU `sed' before running `configure'. - -`i386-sun-sunos4' - You may find that you need another version of GNU CC to begin - bootstrapping with, since the current version when built with the - system's own compiler seems to get an infinite loop compiling part - of `libgcc2.c'. GNU CC version 2 compiled with GNU CC (any - version) seems not to have this problem. - - See *Note Sun Install::, for information on installing GNU CC on - Sun systems. - -`i[345]86-*-winnt3.5' - This version requires a GAS that has not yet been released. Until - it is, you can get a prebuilt binary version via anonymous ftp from - `ftp://cs.washington.edu/pub/gnat' or `ftp://cs.nyu.edu/pub/gnat'. - You must also use the Microsoft header files from the Windows NT - 3.5 SDK. Find these on the CDROM in the `/mstools/h' directory - dated 9/4/94. You must use a fixed version of Microsoft linker - made especially for NT 3.5, which is also is available on the NT - 3.5 SDK CDROM. If you do not have this linker, can you also use - the linker from Visual C/C++ 1.0 or 2.0. - - Installing GNU CC for NT builds a wrapper linker, called `ld.exe', - which mimics the behaviour of Unix `ld' in the specification of - libraries (`-L' and `-l'). `ld.exe' looks for both Unix and - Microsoft named libraries. For example, if you specify `-lfoo', - `ld.exe' will look first for `libfoo.a' and then for `foo.lib'. - - You may install GNU CC for Windows NT in one of two ways, - depending on whether or not you have a Unix-like shell and various - Unix-like utilities. - - 1. If you do not have a Unix-like shell and few Unix-like - utilities, you will use a DOS style batch script called - `configure.bat'. Invoke it as `configure winnt' from an - MSDOS console window or from the program manager dialog box. - `configure.bat' assumes you have already installed and have - in your path a Unix-like `sed' program which is used to - create a working `Makefile' from `Makefile.in'. - - `Makefile' uses the Microsoft Nmake program maintenance - utility and the Visual C/C++ V8.00 compiler to build GNU CC. - You need only have the utilities `sed' and `touch' to use - this installation method, which only automatically builds the - compiler itself. You must then examine what `fixinc.winnt' - does, edit the header files by hand and build `libgcc.a' - manually. - - 2. The second type of installation assumes you are running a - Unix-like shell, have a complete suite of Unix-like utilities - in your path, and have a previous version of GNU CC already - installed, either through building it via the above - installation method or acquiring a pre-built binary. In this - case, use the `configure' script in the normal fashion. - -`i860-intel-osf1' - This is the Paragon. If you have version 1.0 of the operating - system, you need to take special steps to build GNU CC due to - peculiarities of the system. Newer system versions have no - problem. See the section `Installation Problems' in the GNU CC - Manual. - -`*-lynx-lynxos' - LynxOS 2.2 and earlier comes with GNU CC 1.x already installed as - `/bin/gcc'. You should compile with this instead of `/bin/cc'. - You can tell GNU CC to use the GNU assembler and linker, by - specifying `--with-gnu-as --with-gnu-ld' when configuring. These - will produce COFF format object files and executables; otherwise - GNU CC will use the installed tools, which produce `a.out' format - executables. - -`m32r-*-elf' - Mitsubishi M32R processor. This configuration is intended for - embedded systems. - -`m68000-hp-bsd' - HP 9000 series 200 running BSD. Note that the C compiler that - comes with this system cannot compile GNU CC; contact - <law@cygnus.com> to get binaries of GNU CC for bootstrapping. - -`m68k-altos' - Altos 3068. You must use the GNU assembler, linker and debugger. - Also, you must fix a kernel bug. Details in the file - `README.ALTOS'. - -`m68k-apple-aux' - Apple Macintosh running A/UX. You may configure GCC to use - either the system assembler and linker or the GNU assembler and - linker. You should use the GNU configuration if you can, - especially if you also want to use GNU C++. You enabled that - configuration with + the `--with-gnu-as' and `--with-gnu-ld' - options to `configure'. - - Note the C compiler that comes with this system cannot compile GNU - CC. You can find binaries of GNU CC for bootstrapping on - `jagubox.gsfc.nasa.gov'. You will also a patched version of - `/bin/ld' there that raises some of the arbitrary limits found in - the original. - -`m68k-att-sysv' - AT&T 3b1, a.k.a. 7300 PC. This version of GNU CC cannot be - compiled with the system C compiler, which is too buggy. You will - need to get a previous version of GCC and use it to bootstrap. - Binaries are available from the OSU-CIS archive, at - `ftp://archive.cis.ohio-state.edu/pub/att7300/'. - -`m68k-bull-sysv' - Bull DPX/2 series 200 and 300 with BOS-2.00.45 up to BOS-2.01. GNU - CC works either with native assembler or GNU assembler. You can use - GNU assembler with native coff generation by providing - `--with-gnu-as' to the configure script or use GNU assembler with - dbx-in-coff encapsulation by providing `--with-gnu-as --stabs'. - For any problem with native assembler or for availability of the - DPX/2 port of GAS, contact <F.Pierresteguy@frcl.bull.fr>. - -`m68k-crds-unox' - Use `configure unos' for building on Unos. - - The Unos assembler is named `casm' instead of `as'. For some - strange reason linking `/bin/as' to `/bin/casm' changes the - behavior, and does not work. So, when installing GNU CC, you - should install the following script as `as' in the subdirectory - where the passes of GCC are installed: - - #!/bin/sh - casm $* - - The default Unos library is named `libunos.a' instead of `libc.a'. - To allow GNU CC to function, either change all references to - `-lc' in `gcc.c' to `-lunos' or link `/lib/libc.a' to - `/lib/libunos.a'. - - When compiling GNU CC with the standard compiler, to overcome bugs - in the support of `alloca', do not use `-O' when making stage 2. - Then use the stage 2 compiler with `-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 `ALLOCA' in `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 `cc1' fails, try putting the object - files into a library and linking from that library. - -`m68k-hp-hpux' - HP 9000 series 300 or 400 running HP-UX. HP-UX version 8.0 has a - bug in the assembler that prevents compilation of GNU CC. To fix - it, get patch PHCO_4484 from HP. - - In addition, if you wish to use gas `--with-gnu-as' you must use - gas version 2.1 or later, and you must use the GNU linker version - 2.1 or later. Earlier versions of gas relied upon a program which - converted the gas output into the native HP-UX format, but that - program has not been kept up to date. gdb does not understand - that native HP-UX format, so you must use gas if you wish to use - gdb. - -`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. - - See *Note Sun Install::, for information on installing GNU CC on - Sun systems. - -`m6811-elf' - Motorola 68HC11 family micro controllers. These are used in - embedded applications. There are no standard Unix configurations. - -`m6812-elf' - Motorola 68HC12 family micro controllers. These are used in - embedded applications. There are no standard Unix configurations. - -`m88k-*-svr3' - Motorola m88k running the AT&T/Unisoft/Motorola V.3 reference port. - These systems tend to use the Green Hills C, revision 1.8.5, as the - standard C compiler. There are apparently bugs in this compiler - that result in object files differences between stage 2 and stage - 3. If this happens, make the stage 4 compiler and compare it to - the stage 3 compiler. If the stage 3 and stage 4 object files are - identical, this suggests you encountered a problem with the - standard C compiler; the stage 3 and 4 compilers may be usable. - - It is best, however, to use an older version of GNU CC for - bootstrapping if you have one. - -`m88k-*-dgux' - Motorola m88k running DG/UX. To build 88open BCS native or cross - compilers on DG/UX, specify the configuration name as - `m88k-*-dguxbcs' and build in the 88open BCS software development - environment. To build ELF native or cross compilers on DG/UX, - specify `m88k-*-dgux' and build in the DG/UX ELF development - environment. You set the software development environment by - issuing `sde-target' command and specifying either `m88kbcs' or - `m88kdguxelf' as the operand. - - If you do not specify a configuration name, `configure' guesses the - configuration based on the current software development - environment. - -`m88k-tektronix-sysv3' - Tektronix XD88 running UTekV 3.2e. Do not turn on optimization - while building stage1 if you bootstrap with the buggy Green Hills - compiler. Also, The bundled LAI System V NFS is buggy so if you - build in an NFS mounted directory, start from a fresh reboot, or - avoid NFS all together. Otherwise you may have trouble getting - clean comparisons between stages. - -`mips-mips-bsd' - MIPS machines running the MIPS operating system in BSD mode. It's - possible that some old versions of the system lack the functions - `memcpy', `memcmp', and `memset'. If your system lacks these, you - must remove or undo the definition of `TARGET_MEM_FUNCTIONS' in - `mips-bsd.h'. - - The MIPS C compiler needs to be told to increase its table size - for switch statements with the `-Wf,-XNg1500' option in order to - compile `cp/parse.c'. If you use the `-O2' optimization option, - you also need to use `-Olimit 3000'. Both of these options are - automatically generated in the `Makefile' that the shell script - `configure' builds. If you override the `CC' make variable and - use the MIPS compilers, you may need to add `-Wf,-XNg1500 -Olimit - 3000'. - -`mips-mips-riscos*' - The MIPS C compiler needs to be told to increase its table size - for switch statements with the `-Wf,-XNg1500' option in order to - compile `cp/parse.c'. If you use the `-O2' optimization option, - you also need to use `-Olimit 3000'. Both of these options are - automatically generated in the `Makefile' that the shell script - `configure' builds. If you override the `CC' make variable and - use the MIPS compilers, you may need to add `-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: - - `mips-mips-riscos`rev'' - Default configuration for RISC-OS, revision `rev'. - - `mips-mips-riscos`rev'bsd' - BSD 4.3 configuration for RISC-OS, revision `rev'. - - `mips-mips-riscos`rev'sysv4' - System V.4 configuration for RISC-OS, revision `rev'. - - `mips-mips-riscos`rev'sysv' - System V.3 configuration for RISC-OS, revision `rev'. - - The revision `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. - -`mips-sgi-*' - In order to compile GCC on an SGI running IRIX 4, the "c.hdr.lib" - option must be installed from the CD-ROM supplied from Silicon - Graphics. This is found on the 2nd CD in release 4.0.1. - - In order to compile GCC on an SGI running IRIX 5, the - "compiler_dev.hdr" subsystem must be installed from the IDO CD-ROM - supplied by Silicon Graphics. - - `make compare' may fail on version 5 of IRIX unless you add - `-save-temps' to `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 `stage1' and `stage2' - compilations. The option `-save-temps' forces a fixed name to be - used for the assembler input file, instead of a randomly chosen - name in `/tmp'. Do not add `-save-temps' unless the comparisons - fail without that option. If you do you `-save-temps', you will - have to manually delete the `.i' and `.s' files after each series - of compilations. - - The MIPS C compiler needs to be told to increase its table size - for switch statements with the `-Wf,-XNg1500' option in order to - compile `cp/parse.c'. If you use the `-O2' optimization option, - you also need to use `-Olimit 3000'. Both of these options are - automatically generated in the `Makefile' that the shell script - `configure' builds. If you override the `CC' make variable and - use the MIPS compilers, you may need to add `-Wf,-XNg1500 -Olimit - 3000'. - - On Irix version 4.0.5F, and perhaps on some other versions as well, - there is an assembler bug that reorders instructions incorrectly. - To work around it, specify the target configuration - `mips-sgi-irix4loser'. This configuration inhibits assembler - optimization. - - In a compiler configured with target `mips-sgi-irix4', you can turn - off assembler optimization by using the `-noasmopt' option. This - compiler option passes the option `-O0' to the assembler, to - inhibit reordering. - - The `-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 `-noasmopt', it may still be due to assembler - reordering--perhaps GNU CC itself was miscompiled as a result. - - To enable debugging under Irix 5, you must use GNU as 2.5 or later, - and use the `--with-gnu-as' configure option when configuring gcc. - GNU as is distributed as part of the binutils package. - -`mips-sony-sysv' - Sony MIPS NEWS. This works in NEWSOS 5.0.1, but not in 5.0.2 - (which uses ELF instead of COFF). Support for 5.0.2 will probably - be provided soon by volunteers. In particular, the linker does - not like the code generated by GCC when shared libraries are - linked in. - -`ns32k-encore' - Encore ns32000 system. Encore systems are supported only under - BSD. - -`ns32k-*-genix' - National Semiconductor ns32000 system. Genix has bugs in `alloca' - and `malloc'; you must get the compiled versions of these from GNU - Emacs. - -`ns32k-sequent' - Go to the Berkeley universe before compiling. - -`ns32k-utek' - UTEK ns32000 system ("merlin"). The C compiler that comes with - this system cannot compile GNU CC; contact `tektronix!reed!mason' - to get binaries of GNU CC for bootstrapping. - -`romp-*-aos' -`romp-*-mach' - The only operating systems supported for the IBM RT PC are AOS and - MACH. GNU CC does not support AIX running on the RT. We - recommend you compile GNU CC with an earlier version of itself; if - you compile GNU CC with `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. - -`rs6000-*-aix' -`powerpc-*-aix' - Various early versions of each release of the IBM XLC compiler - will not bootstrap GNU CC. Symptoms include differences between - the stage2 and stage3 object files, and errors when compiling - `libgcc.a' or `enquire'. Known problematic releases include: - xlc-1.2.1.8, xlc-1.3.0.0 (distributed with AIX 3.2.5), and - xlc-1.3.0.19. Both xlc-1.2.1.28 and xlc-1.3.0.24 (PTF 432238) are - known to produce working versions of GNU CC, but most other recent - releases correctly bootstrap GNU CC. - - Release 4.3.0 of AIX and ones prior to AIX 3.2.4 include a version - of the IBM assembler which does not accept debugging directives: - assembler updates are available as PTFs. Also, if you are using - AIX 3.2.5 or greater and the GNU assembler, you must have a - version modified after October 16th, 1995 in order for the GNU C - compiler to build. See the file `README.RS6000' for more details - on any of these problems. - - GNU CC does not yet support the 64-bit PowerPC instructions. - - Objective C does not work on this architecture because it makes - assumptions that are incompatible with the calling conventions. - - AIX on the RS/6000 provides support (NLS) for environments outside - of the United States. Compilers and assemblers use NLS to support - locale-specific representations of various objects including - floating-point numbers ("." vs "," for separating decimal - fractions). There have been problems reported where the library - linked with GNU CC does not produce the same floating-point - formats that the assembler accepts. If you have this problem, set - the LANG environment variable to "C" or "En_US". - - Due to changes in the way that GNU CC invokes the binder (linker) - for AIX 4.1, you may now receive warnings of duplicate symbols - from the link step that were not reported before. The assembly - files generated by GNU CC for AIX have always 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. - - By default, AIX 4.1 produces code that can be used on either Power - or PowerPC processors. - - You can specify a default version for the `-mcpu='CPU_TYPE switch - by using the configure option `--with-cpu-'CPU_TYPE. - -`powerpc-*-elf' -`powerpc-*-sysv4' - PowerPC system in big endian mode, running System V.4. - - You can specify a default version for the `-mcpu='CPU_TYPE switch - by using the configure option `--with-cpu-'CPU_TYPE. - -`powerpc-*-linux' -`powerpc-*-linux-gnu' - PowerPC system in big endian mode, running the Linux-based GNU - system. - - You can specify a default version for the `-mcpu='CPU_TYPE switch - by using the configure option `--with-cpu-'CPU_TYPE. - -`powerpc-*-eabiaix' - Embedded PowerPC system in big endian mode with -mcall-aix - selected as the default. - - You can specify a default version for the `-mcpu='CPU_TYPE switch - by using the configure option `--with-cpu-'CPU_TYPE. - -`powerpc-*-eabisim' - Embedded PowerPC system in big endian mode for use in running - under the PSIM simulator. - - You can specify a default version for the `-mcpu='CPU_TYPE switch - by using the configure option `--with-cpu-'CPU_TYPE. - -`powerpc-*-eabi' - Embedded PowerPC system in big endian mode. - - You can specify a default version for the `-mcpu='CPU_TYPE switch - by using the configure option `--with-cpu-'CPU_TYPE. - -`powerpcle-*-elf' -`powerpcle-*-sysv4' - PowerPC system in little endian mode, running System V.4. - - You can specify a default version for the `-mcpu='CPU_TYPE switch - by using the configure option `--with-cpu-'CPU_TYPE. - -`powerpcle-*-solaris2*' - PowerPC system in little endian mode, running Solaris 2.5.1 or - higher. - - You can specify a default version for the `-mcpu='CPU_TYPE switch - by using the configure option `--with-cpu-'CPU_TYPE. Beta - versions of the Sun 4.0 compiler do not seem to be able to build - GNU CC correctly. There are also problems with the host assembler - and linker that are fixed by using the GNU versions of these tools. - -`powerpcle-*-eabisim' - Embedded PowerPC system in little endian mode for use in running - under the PSIM simulator. - -`powerpcle-*-eabi' - Embedded PowerPC system in little endian mode. - - You can specify a default version for the `-mcpu='CPU_TYPE switch - by using the configure option `--with-cpu-'CPU_TYPE. - -`powerpcle-*-winnt' -`powerpcle-*-pe' - PowerPC system in little endian mode running Windows NT. - - You can specify a default version for the `-mcpu='CPU_TYPE switch - by using the configure option `--with-cpu-'CPU_TYPE. - -`vax-dec-ultrix' - Don't try compiling with Vax C (`vcc'). It produces incorrect code - in some cases (for example, when `alloca' is used). - - Meanwhile, compiling `cp/parse.c' with pcc does not work because of - an internal table size limitation in that compiler. To avoid this - problem, compile just the GNU C compiler first, and use it to - recompile building all the languages that you want to run. - -`sparc-sun-*' - See *Note Sun Install::, for information on installing GNU CC on - Sun systems. - -`vax-dec-vms' - See *Note VMS Install::, for details on how to install GNU CC on - VMS. - -`we32k-*-*' - These computers are also known as the 3b2, 3b5, 3b20 and other - similar names. (However, the 3b1 is actually a 68000; see *Note - Configurations::.) - - Don't use `-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 `stmt.c' - in GNU CC. You can work around this by building `cpp' in GNU CC - first, then use that instead of the system's preprocessor with the - system's C compiler to compile `stmt.c'. Here is how: - - mv /lib/cpp /lib/cpp.att - cp cpp /lib/cpp.gnu - echo '/lib/cpp.gnu -traditional ${1+"$@"}' > /lib/cpp - chmod +x /lib/cpp - - The system's compiler produces bad code for some of the GNU CC - optimization files. So you must build the stage 2 compiler without - optimization. Then build a stage 3 compiler with optimization. - That executable should work. Here are the necessary commands: - - make LANGUAGES=c CC=stage1/xgcc CFLAGS="-Bstage1/ -g" - make stage2 - make CC=stage2/xgcc CFLAGS="-Bstage2/ -g -O" - - You may need to raise the ULIMIT setting to build a C++ compiler, - as the file `cc1plus' is larger than one megabyte. - -Compilation in a Separate Directory -=================================== - - 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: - - 1. Make sure you have a version of Make that supports the `VPATH' - feature. (GNU Make supports it, as do Make versions on most BSD - systems.) - - 2. If you have ever run `configure' in the source directory, you must - undo the configuration. Do this by running: - - make distclean - - 3. Go to the directory in which you want to build the compiler before - running `configure': - - mkdir gcc-sun3 - cd gcc-sun3 - - On systems that do not support symbolic links, this directory must - be on the same file system as the source code directory. - - 4. Specify where to find `configure' when you run it: - - ../gcc/configure ... - - This also tells `configure' where to find the compiler sources; - `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 `--srcdir' option, like this: - - ../gcc/configure --srcdir=../gcc OTHER OPTIONS - - The directory you specify with `--srcdir' need not be the same as - the one that `configure' is found in. - - Now, you can run `make' in that directory. You need not repeat the -configuration steps shown above, when ordinary source files change. You -must, however, run `configure' again when the configuration files -change, if your system does not support symbolic links. - -Building and Installing a Cross-Compiler -======================================== - - GNU CC can function as a cross-compiler for many machines, but not -all. - - * Cross-compilers for the Mips as target using the Mips assembler - currently do not work, because the auxiliary programs - `mips-tdump.c' and `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. - - * 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. - - * Cross-compilation between machines of different word sizes is - somewhat problematic and sometimes does not work. - - 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. - -Steps of Cross-Compilation --------------------------- - - To compile and run a program using a cross-compiler involves several -steps: - - * Run the cross-compiler on the host machine to produce assembler - files for the target machine. This requires header files for the - target machine. - - * 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. - - * 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 `crt....o') for the target - machine. - - 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. - -Configuring a Cross-Compiler ----------------------------- - - To build GNU CC as a cross-compiler, you start out by running -`configure'. Use the `--target=TARGET' to specify the target type. If -`configure' was unable to correctly identify the system you are running -on, also specify the `--build=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 `configure' can correctly identify: - - ./configure --target=m68k-hp-bsd4.3 - -Tools and Libraries for a Cross-Compiler ----------------------------------------- - - If you have a cross-assembler and cross-linker available, you should -install them now. Put them in the directory `/usr/local/TARGET/bin'. -Here is a table of the tools you should put in this directory: - -`as' - This should be the cross-assembler. - -`ld' - This should be the cross-linker. - -`ar' - This should be the cross-archiver: a program which can manipulate - archive files (linker libraries) in the target machine's format. - -`ranlib' - This should be a program to construct a symbol table in an archive - file. - - 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 `--host' and `--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 -`/usr/local/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: - - ftp TARGET-MACHINE - lcd /usr/local/TARGET/lib - cd /lib - get libc.a - cd /usr/lib - get libg.a - get libm.a - quit - -The precise set of libraries you'll need, and their locations on the -target machine, vary depending on its operating system. - - Many targets require "start files" such as `crt0.o' and `crtn.o' -which are linked into each executable; these too should be placed in -`/usr/local/TARGET/lib'. There may be several alternatives for -`crt0.o', for use with profiling or other compilation options. Check -your target's definition of `STARTFILE_SPEC' to find out what start -files it uses. Here's an example of copying these files from a target -machine: - - ftp TARGET-MACHINE - lcd /usr/local/TARGET/lib - prompt - cd /lib - mget *crt*.o - cd /usr/lib - mget *crt*.o - quit - -`libgcc.a' and Cross-Compilers ------------------------------- - - Code compiled by GNU CC uses certain runtime support functions -implicitly. Some of these functions can be compiled successfully with -GNU CC itself, but a few cannot be. These problem functions are in the -source file `libgcc1.c'; the library made from them is called -`libgcc1.a'. - - When you build a native compiler, these functions are compiled with -some other compiler-the one that you use for bootstrapping GNU CC. -Presumably it knows how to open code these operations, or else knows how -to call the run-time emulation facilities that the machine comes with. -But this approach doesn't work for building a cross-compiler. The -compiler that you use for building knows about the host system, not the -target system. - - So, when you build a cross-compiler you have to supply a suitable -library `libgcc1.a' that does the job it is expected to do. - - To compile `libgcc1.c' with the cross-compiler itself does not work. -The functions in this file are supposed to implement arithmetic -operations that GNU CC does not know how to open code for your target -machine. If these functions are compiled with GNU CC itself, they will -compile into infinite recursion. - - On any given target, most of these functions are not needed. If GNU -CC can open code an arithmetic operation, it will not call these -functions to perform the operation. It is possible that on your target -machine, none of these functions is needed. If so, you can supply an -empty library as `libgcc1.a'. - - Many targets need library support only for multiplication and -division. If you are linking with a library that contains functions for -multiplication and division, you can tell GNU CC to call them directly -by defining the macros `MULSI3_LIBCALL', and the like. These macros -need to be defined in the target description macro file. For some -targets, they are defined already. This may be sufficient to avoid the -need for libgcc1.a; if so, you can supply an empty library. - - Some targets do not have floating point instructions; they need other -functions in `libgcc1.a', which do floating arithmetic. Recent -versions of GNU CC have a file which emulates floating point. With a -certain amount of work, you should be able to construct a floating -point emulator that can be used as `libgcc1.a'. Perhaps future -versions will contain code to do this automatically and conveniently. -That depends on whether someone wants to implement it. - - Some embedded targets come with all the necessary `libgcc1.a' -routines written in C or assembler. These targets build `libgcc1.a' -automatically and you do not need to do anything special for them. -Other embedded targets do not need any `libgcc1.a' routines since all -the necessary operations are supported by the hardware. - - If your target system has another C compiler, you can configure GNU -CC as a native compiler on that machine, build just `libgcc1.a' with -`make libgcc1.a' on that machine, and use the resulting file with the -cross-compiler. To do this, execute the following on the target -machine: - - cd TARGET-BUILD-DIR - ./configure --host=sparc --target=sun3 - make libgcc1.a - -And then this on the host machine: - - ftp TARGET-MACHINE - binary - cd TARGET-BUILD-DIR - get libgcc1.a - quit - - Another way to provide the functions you need in `libgcc1.a' is to -define the appropriate `perform_...' macros for those functions. If -these definitions do not use the C arithmetic operators that they are -meant to implement, you should be able to compile them with the -cross-compiler you are building. (If these definitions already exist -for your target file, then you are all set.) - - To build `libgcc1.a' using the perform macros, use -`LIBGCC1=libgcc1.a OLDCC=./xgcc' when building the compiler. -Otherwise, you should place your replacement library under the name -`libgcc1.a' in the directory in which you will build the -cross-compiler, before you run `make'. - -Cross-Compilers and Header Files --------------------------------- - - 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 `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, put them in the directory -`/usr/local/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 -`libgcc.a'. (These are the parts that *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: - - (cd /usr/include; tar cf - .) > tarfile - - Then, on the host machine, do this: - - ftp TARGET-MACHINE - lcd /usr/local/TARGET/include - get tarfile - quit - tar xf tarfile - -Actually Building the Cross-Compiler ------------------------------------- - - Now you can proceed just as for compiling a single-machine compiler -through the step of building stage 1. If you have not provided some -sort of `libgcc1.a', then compilation will give up at the point where -it needs that file, printing a suitable error message. If you do -provide `libgcc1.a', then building the compiler will automatically -compile and link a test program called `libgcc1-test'; if you get -errors in the linking, it means that not all of the necessary routines -in `libgcc1.a' are available. - - You must provide the header file `float.h'. One way to do this is -to compile `enquire' and run it on your target machine. The job of -`enquire' is to run on the target machine and figure out by experiment -the nature of its floating point representation. `enquire' records its -findings in the header file `float.h'. If you can't produce this file -by running `enquire' on the target machine, then you will need to come -up with a suitable `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 `make install', as usual. - -Installing GNU CC on the Sun -============================ - - On Solaris, do not use the linker or other tools in `/usr/ucb' to -build GNU CC. Use `/usr/ccs/bin'. - - If the assembler reports `Error: misaligned data' when bootstrapping, -you are probably using an obsolete version of the GNU assembler. -Upgrade to the latest version of GNU `binutils', or use the Solaris -assembler. - - Make sure the environment variable `FLOAT_OPTION' is not set when -you compile `libgcc.a'. If this option were set to `f68881' when -`libgcc.a' is compiled, the resulting code would demand to be linked -with a special startup file and would not link properly without special -pains. - - There is a bug in `alloca' in certain versions of the Sun library. -To avoid this bug, install the binaries of GNU CC that were compiled by -GNU CC. They use `alloca' as a built-in function and never the one in -the library. - - Some versions of the Sun compiler crash when compiling GNU CC. The -problem is a segmentation fault in cpp. This problem seems to be due to -the bulk of data in the environment variables. You may be able to avoid -it by using the following command to compile GNU CC with Sun CC: - - make CC="TERMCAP=x OBJS=x LIBFUNCS=x STAGESTUFF=x cc" - - SunOS 4.1.3 and 4.1.3_U1 have bugs that can cause intermittent core -dumps when compiling GNU CC. A common symptom is an internal compiler -error which does not recur if you run it again. To fix the problem, -install Sun recommended patch 100726 (for SunOS 4.1.3) or 101508 (for -SunOS 4.1.3_U1), or upgrade to a later SunOS release. - -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 `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: - - 1. Define the VMS logical names `GNU_CC' and `GNU_CC_INCLUDE' to - point to the directories where the GNU CC executables - (`gcc-cpp.exe', `gcc-cc1.exe', etc.) and the C include files are - kept respectively. This should be done with the commands: - - $ assign /system /translation=concealed - - disk:[gcc.] gnu_cc - $ assign /system /translation=concealed - - disk:[gcc.include.] gnu_cc_include - - 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 `GCC_INSTALL.COM' script in the `[GCC]' directory. - - 2. Install the `GCC' command with the command line: - - $ set command /table=sys$common:[syslib]dcltables - - /output=sys$common:[syslib]dcltables gnu_cc:[000000]gcc - $ install replace sys$common:[syslib]dcltables - - 3. To install the help file, do the following: - - $ library/help sys$library:helplib.hlb gcc.hlp - - Now you can invoke the compiler with a command like `gcc /verbose - file.c', which is equivalent to the command `gcc -v -c file.c' in - Unix. - - If you wish to use GNU C++ you must first install GNU CC, and then -perform the following steps: - - 1. Define the VMS logical name `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: - - $ assign /system /translation=concealed - - disk:[gcc.gxx_include.] gnu_gxx_include - - 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. - - 2. Obtain the file `gcc-cc1plus.exe', and place this in the same - directory that `gcc-cc1.exe' is kept. - - The GNU C++ compiler can be invoked with a command like `gcc /plus - /verbose file.cc', which is equivalent to the command `g++ -v -c - file.cc' in Unix. - - 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 `/version' option to determine the version number of -the binaries and compare it with the source 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: - - 1. Execute the command procedure `vmsconfig.com' to set up the files - `tm.h', `config.h', `aux-output.c', and `md.', and to create files - `tconfig.h' and `hconfig.h'. This procedure also creates several - linker option files used by `make-cc1.com' and a data file used by - `make-l2.com'. - - $ @vmsconfig.com - - 2. Setup the logical names and command tables as defined above. In - addition, define the VMS logical name `GNU_BISON' to point at the - to the directories where the Bison executable is kept. This - should be done with the command: - - $ assign /system /translation=concealed - - disk:[bison.] gnu_bison - - You may, if you choose, use the `INSTALL_BISON.COM' script in the - `[BISON]' directory. - - 3. Install the `BISON' command with the command line: - - $ set command /table=sys$common:[syslib]dcltables - - /output=sys$common:[syslib]dcltables - - gnu_bison:[000000]bison - $ install replace sys$common:[syslib]dcltables - - 4. Type `@make-gcc' to recompile everything (alternatively, submit - the 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 `make-gcc.com' and follow the instructions that appear - in the comments. - - 5. 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 `libgcc2.c'. To compile this - you should use the command procedure `make-l2.com', which will - generate the library `libgcc2.olb'. `libgcc2.olb' should be built - using the compiler built from the same distribution that - `libgcc2.c' came from, and `make-gcc.com' will automatically do - all of this for you. - - To install the library, use the following commands: - - $ 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 - - The first command simply removes old modules that will be replaced - with modules from `libgcc2' under different module names. The - modules `new' and `eprintf' may not actually be present in your - `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 `libgcc2.c'. - - Whenever you update the compiler on your system, you should also - update the library with the above procedure. - - 6. 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): - - $ assign dua0:[gcc.build_dir.]/translation=concealed, - - dua1:[gcc.source_dir.]/translation=concealed gcc_build - $ set default gcc_build:[000000] - - where the directory `dua1:[gcc.source_dir]' contains the source - code, and the directory `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 `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). - - 7. *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 `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. - - If you are compiling with a version of GNU CC older than 1.33, - specify `/DEFINE=("inline=")' as an option in all the - compilations. This requires editing all the `gcc' commands in - `make-cc1.com'. (The older versions had problems supporting - `inline'.) Once you have a working 1.33 or newer GNU CC, you can - change this file back. - - 8. If you want to build GNU CC with the VAX C compiler, you will need - to make minor changes in `make-cccp.com' and `make-cc1.com' to - choose alternate definitions of `CC', `CFLAGS', and `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 - `libgcc2' in order to build `gcclib' (see above); `make-l2.com' - expects to be able to find it operational in - `gnu_cc:[000000]gnu-as.exe'. - - To use GNU CC on VMS, you need the VMS driver programs `gcc.exe', - `gcc.com', and `gcc.cld'. They are distributed with the VMS - binaries (`gcc-vms') rather than the GNU CC sources. GAS is also - included in `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 `CC', `CFLAGS', and `LIBS' definitions in - `make-cccp.com' and `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. - - Under previous versions of GNU CC, the generated code would -occasionally give strange results when linked with the sharable -`VAXCRTL' library. Now this should work. - - Even with this version, however, GNU CC itself should not be linked -with the sharable `VAXCRTL'. The version of `qsort' in `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 `make-cc1.com' and `make-cccp.com' -use the object library version of `VAXCRTL' in order to make use of the -`qsort' routine in `gcclib.olb'. If you wish to link the compiler -executables with the shareable image version of `VAXCRTL', you should -edit the file `tm.h' (created by `vmsconfig.com') to define the macro -`QSORT_WORKAROUND'. - - `QSORT_WORKAROUND' is always defined when GNU CC is compiled with -VAX C, to avoid a problem in case `gcclib.olb' is not yet available. - -`collect2' -========== - - GNU CC uses a utility called `collect2' on nearly all systems to -arrange to call various initialization functions at start time. - - The program `collect2' works by linking the program once and looking -through the linker output file for symbols with particular names -indicating they are constructor functions. If it finds any, it creates -a new temporary `.c' file containing a table of them, compiles it, and -links the program a second time including that file. - - The actual calls to the constructors are carried out by a subroutine -called `__main', which is called (automatically) at the beginning of -the body of `main' (provided `main' was compiled with GNU CC). Calling -`__main' is necessary, even when compiling C code, to allow linking C -and C++ object code together. (If you use `-nostdlib', you get an -unresolved reference to `__main', since it's defined in the standard -GCC library. Include `-lgcc' at the end of your compiler command line -to resolve this reference.) - - The program `collect2' is installed as `ld' in the directory where -the passes of the compiler are installed. When `collect2' needs to -find the *real* `ld', it tries the following file names: - - * `real-ld' in the directories listed in the compiler's search - directories. - - * `real-ld' in the directories listed in the environment variable - `PATH'. - - * The file specified in the `REAL_LD_FILE_NAME' configuration macro, - if specified. - - * `ld' in the compiler's search directories, except that `collect2' - will not execute itself recursively. - - * `ld' in `PATH'. - - "The compiler's search directories" means all the directories where -`gcc' searches for passes of the compiler. This includes directories -that you specify with `-B'. - - Cross-compilers search a little differently: - - * `real-ld' in the compiler's search directories. - - * `TARGET-real-ld' in `PATH'. - - * The file specified in the `REAL_LD_FILE_NAME' configuration macro, - if specified. - - * `ld' in the compiler's search directories. - - * `TARGET-ld' in `PATH'. - - `collect2' explicitly avoids running `ld' using the file name under -which `collect2' itself was invoked. In fact, it remembers up a list -of such names--in case one copy of `collect2' finds another copy (or -version) of `collect2' installed as `ld' in a second place in the -search path. - - `collect2' searches for the utilities `nm' and `strip' using the -same algorithm as above for `ld'. - -Standard Header File Directories -================================ - - `GCC_INCLUDE_DIR' means the same thing for native and cross. It is -where GNU CC stores its private include files, and also where GNU CC -stores the fixed include files. A cross compiled GNU CC runs -`fixincludes' on the header files in `$(tooldir)/include'. (If the -cross compilation header files need to be fixed, they must be installed -before GNU CC is built. If the cross compilation header files are -already suitable for ANSI C and GNU CC, nothing special need be done). - - `GPLUSPLUS_INCLUDE_DIR' means the same thing for native and cross. -It is where `g++' looks first for header files. The C++ library -installs only target independent header files in that directory. - - `LOCAL_INCLUDE_DIR' is used only for a native compiler. It is -normally `/usr/local/include'. GNU CC searches this directory so that -users can install header files in `/usr/local/include'. - - `CROSS_INCLUDE_DIR' is used only for a cross compiler. GNU CC -doesn't install anything there. - - `TOOL_INCLUDE_DIR' is used for both native and cross compilers. It -is the place for other packages to install header files that GNU CC will -use. For a cross-compiler, this is the equivalent of `/usr/include'. -When you build a cross-compiler, `fixincludes' processes any header -files in this directory. - diff --git a/gcc/Makefile.in b/gcc/Makefile.in index df2016dc4c0..2fefb3f1444 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -49,7 +49,7 @@ LANGUAGES = c gcov$(exeext) $(CONFIG_LANGUAGES) # Languages should create dependencies of $(INTL_TARGETS) on generated # sources in Make-lang.in. Example: # $(INTL_TARGETS): $(srcdir)/cp/parse.c -INTL_TARGETS = intl.all intl.install intl.distdir +INTL_TARGETS = intl.all intl.install # Selection of languages to be made during stage1 build. # This is overridden by configure. @@ -700,7 +700,6 @@ ORDINARY_FLAGS_TO_PASS = \ "bindir=$(bindir)" \ "libsubdir=$(libsubdir)" \ "datadir=$(datadir)" \ - "distdir=../tmp/\$$(subdir)" \ "localedir=$(localedir)" FLAGS_TO_PASS = $(ORDINARY_FLAGS_TO_PASS) "CC=@cc_set_by_configure@" PREPEND_DOTDOT_TO_RELATIVE_PATHS = sed \ @@ -831,7 +830,7 @@ C_TREE_H = c-tree.h $(C_COMMON_H) # all.build, all.cross, start.encap, rest.encap, # info, dvi, # install-normal, install-common, install-info, install-man, -# uninstall, distdir, +# uninstall, # mostlyclean, clean, distclean, extraclean, maintainer-clean, # stage1, stage2, stage3, stage4 # @@ -893,7 +892,7 @@ cstamp-h: config.in config.status # config.status does not exist before failing. config.status: $(srcdir)/configure version.c @if [ ! -f config.status ] ; then \ - echo You must configure gcc. Look at the INSTALL file for details.; \ + echo You must configure gcc. Look at http://gcc.gnu.org/install/ for details.; \ false; \ else \ LANGUAGES="$(CONFIG_LANGUAGES)" $(SHELL) config.status --recheck; \ @@ -1815,7 +1814,7 @@ $(top_builddir)/intl/libintl.a: intl.all # Make sure all the headers are there for xgettext to scan. $(INTL_TARGETS): $(srcdir)/c-parse.c -intl.all intl.install intl.uninstall intl.distdir \ +intl.all intl.install intl.uninstall \ intl.mostlyclean intl.clean intl.distclean intl.maintainer-clean: @for d in $(INTL_SUBDIRS); do \ target=`expr $@ : 'intl.\(.*\)'` && \ @@ -1824,12 +1823,6 @@ intl.all intl.install intl.uninstall intl.distdir \ if [ $$? -eq 0 ] ; then true ; else exit 1 ; fi ; \ done -# intl.distdir doesn't copy the intl makefiles (since they aren't distributed), -# but we need them for the `make extraclean' in distdir-finish. -intl.distdir-fixup: - for d in $(INTL_SUBDIRS); do \ - ln $$d/Makefile tmp/$$d || cp $$d/Makefile tmp/$$d || exit; \ - done # # Remake cpp and protoize. @@ -2161,10 +2154,6 @@ cpp.dvi: $(srcdir)/cpp.texi texindex cpp.?? TEXINPUTS=${texidir}:$(srcdir):$$TEXINPUTS tex cpp.texi - -INSTALL: $(srcdir)/install1.texi $(srcdir)/install.texi - (cd $(srcdir) && $(MAKEINFO) -D INSTALLONLY \ - --no-split --no-headers -o INSTALL install1.texi) # # Deletion of files made during compilation. # There are four levels of this: @@ -2720,106 +2709,6 @@ TAGS: force mv tmp-tags/* .; \ rmdir tmp-tags) -# Create the distribution tar.gz file. -dist: tmp-gcc.xtar - gzip --best < tmp-gcc.xtar > tmp-gcc.xtar.gz - mv tmp-gcc.xtar.gz gcc-$(version).tar.gz - -tmp-gcc.xtar: distdir -# Make the distribution. - tar -chf tmp-gcc.xtar gcc-$(version) - -distdir-cvs: force - if [ -d $(srcdir)/CVS ]; then (cd $(srcdir) && cvs -r update); fi - -# This target exists to do the initial work before the language specific -# stuff gets done. -distdir-start: doc $(srcdir)/INSTALL $(srcdir)/c-parse.y \ - $(srcdir)/c-parse.c $(srcdir)/config.in $(srcdir)/version.c TAGS - @case '$(USE_NLS)' in \ - yes) ;; \ - *) echo "configure with --enable-nls before making a distribution"; \ - exit 1;; \ - esac - @if grep -s "for version ${mainversion}" gcc.texi > /dev/null; \ - then true; \ - else echo "You must update the version number in \`gcc.texi'"; sleep 10;\ - fi -# Update the version number in README - $(AWK) '$$1 " " $$2 " " $$3 == "This directory contains" \ - { $$6 = version; print $$0 } \ - $$1 " " $$2 " " $$3 != "This directory contains"' \ - version=$(version) $(srcdir)/README > tmp.README - mv tmp.README README - -rm -rf gcc-$(version) tmp -# Put all the files in a temporary subdirectory -# which has the name that we want to have in the tar file. - mkdir tmp - mkdir tmp/config - mkdir tmp/ginclude - mkdir tmp/objc - mkdir tmp/intl - mkdir tmp/po - for file in `(cd $(srcdir) && echo *[0-9a-zA-Z+])`; do \ - test -f $(srcdir)/$$file && $(LN_S) $(srcdir)/$$file tmp; \ - done - if test "$(srcdir)" != "." ; then \ - for file in c-parse.c ; do \ - test -f ./$$file && $(LN_S) ../$$file tmp; \ - done; \ - fi - for file in `(cd $(srcdir)/config && echo *[0-9a-zA-Z+])`; do \ - if test -d $(srcdir)/config/$$file \ - && test "$$file" != RCS && test "$$file" != CVS; then \ - mkdir tmp/config/$$file; \ - for subfile in `(cd $(srcdir)/config/$$file && echo *[0-9a-zA-Z+])`; do \ - $(LN_S) $(srcdir)/config/$$file/$$subfile tmp/config/$$file; \ - done; \ - else \ - $(LN_S) $(srcdir)/config/$$file tmp/config; \ - fi; \ - done - for file in `(cd $(srcdir)/ginclude && echo *[0-9a-zA-Z+])`; do \ - $(LN_S) $(srcdir)/ginclude/$$file tmp/ginclude; \ - done - for file in `(cd $(srcdir)/objc && echo *[0-9a-zA-Z+])`; do \ - $(LN_S) $(srcdir)/objc/$$file tmp/objc; \ - done - $(LN_S) .gdbinit tmp - -# Finish making `distdir', after the languages have done their thing. -distdir-finish: - mv tmp gcc-$(version) -# Get rid of everything we don't want in the distribution. We'd want -# this to use Makefile.in, but it doesn't have the `lang.foo' targets -# expanded. - (cd gcc-$(version) && make extraclean distdir-check VERSION_DEP=) - -distdir-check: - ($(AWK) '/^[^#]/{print} /^#[A-Za-z]/{print substr($$1, 2)}' | sort) \ - < po/POTFILES.in > tmp.POTFILES - ls [A-Za-z]*.[ch] [a-z]*/[A-Za-z]*.[ch] \ - [a-z]*/[a-z]*/[A-Za-z]*.[ch] | sort > tmp.src - diff tmp.POTFILES tmp.src || { \ - echo "po/POTFILES.in and sources do not match -- please fix"; \ - exit 1; \ - } - rm -f tmp.* - -distdir: distdir-cvs distdir-start intl.distdir intl.distdir-fixup \ - lang.distdir distdir-finish - -# make diff oldversion=M.N -# creates a diff file between an older distribution and this one. -# The -P option assumes this is GNU diff. -diff: - diff -rc2P -x c-parse.y -x c-parse.c \ - -x TAGS -x INSTALL -x configure -x config.in \ - -x "gcc.??" -x "gcc.??s" -x gcc.aux -x "gcc.info*" \ - -x "cpp.??" -x "cpp.??s" -x cpp.aux -x "cpp.info*" \ - $(LANG_DIFF_EXCLUDES) \ - gcc-$(oldversion) gcc-$(version) > gcc-$(oldversion)-$(version).diff - # A list of files to be destroyed during "lean" builds. VOL_FILES=`echo $(BACKEND) $(OBJS) $(C_OBJS) $(LIBCPP_OBJS) *.c *.h gen*` diff --git a/gcc/ch/ChangeLog b/gcc/ch/ChangeLog index 082be480bf6..fb5d21b0127 100644 --- a/gcc/ch/ChangeLog +++ b/gcc/ch/ChangeLog @@ -1,3 +1,7 @@ +2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> + + * Make-lang.in (CHILL.distdir): Remove. + 2000-11-02 Geoffrey Keating <geoffk@cygnus.com> * Make-lang.in: Remove 'CYGNUS LOCAL' markers. diff --git a/gcc/ch/Make-lang.in b/gcc/ch/Make-lang.in index 779fd1ea6a1..3eb22bed832 100644 --- a/gcc/ch/Make-lang.in +++ b/gcc/ch/Make-lang.in @@ -24,7 +24,7 @@ # foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap, # foo.info, foo.dvi, # foo.install-normal, foo.install-common, foo.install-info, foo.install-man, -# foo.uninstall, foo.distdir, +# foo.uninstall, # foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean, # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 # @@ -184,15 +184,3 @@ CHILL.stage3: stage3-start -mv ch/*.o stage3/ch CHILL.stage4: stage4-start -mv ch/*.o stage4/ch -# -# Maintenance hooks: - -# This target creates the files that can be rebuilt, but go in the -# distribution anyway. It then copies the files to the distdir directory. -CHILL.distdir: - mkdir tmp/ch - cd ch ; $(MAKE) $(LANG_FLAGS_TO_PASS) $(CXX_FLAGS_TO_PASS) hash.h - cd ch; \ - for file in *[0-9a-zA-Z+]; do \ - ln $$file ../tmp/ch >/dev/null 2>&1 || cp $$file ../tmp/ch; \ - done diff --git a/gcc/configure b/gcc/configure index 793c8c07cbf..ba4d81efaff 100755 --- a/gcc/configure +++ b/gcc/configure @@ -1553,7 +1553,7 @@ for ac_kw in inline __inline__ __inline; do #include "confdefs.h" int main() { -} int $ac_kw foo() { +} $ac_kw foo() { ; return 0; } EOF if { (eval echo configure:1560: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then @@ -7264,7 +7264,7 @@ else int main() { /* Ultrix mips cc rejects this. */ -typedef int charset[2]; const charset x = {0,0}; +typedef int charset[2]; const charset x; /* SunOS 4.1.1 cc rejects this. */ char const *const *ccp; char **p; @@ -7405,7 +7405,7 @@ else #include "confdefs.h" #include <alloca.h> int main() { -void *p = alloca(2 * sizeof(int)); +char *p = alloca(2 * sizeof(int)); ; return 0; } EOF if { (eval echo configure:7412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then @@ -9652,7 +9652,7 @@ touch Make-hooks target_list="all.build all.cross start.encap rest.encap \ info dvi \ install-normal install-common install-info install-man \ - uninstall distdir \ + uninstall \ mostlyclean clean distclean extraclean maintainer-clean \ stage1 stage2 stage3 stage4" for t in $target_list diff --git a/gcc/configure.in b/gcc/configure.in index 02a97ef4b76..def5675743f 100644 --- a/gcc/configure.in +++ b/gcc/configure.in @@ -5033,7 +5033,7 @@ touch Make-hooks target_list="all.build all.cross start.encap rest.encap \ info dvi \ install-normal install-common install-info install-man \ - uninstall distdir \ + uninstall \ mostlyclean clean distclean extraclean maintainer-clean \ stage1 stage2 stage3 stage4" for t in $target_list diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index a72b74c40a3..b79e31056d5 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,7 @@ +2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> + + * Make-lang.in (c++.distdir): Remove. + 2000-11-04 Mark Mitchell <mark@codesourcery.com> * decl2.c (do_nonmember_using_decl): Allow `extern "C"' diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index 5e03947fb11..2099c3a7d67 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -25,7 +25,7 @@ # foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap, # foo.info, foo.dvi, # foo.install-normal, foo.install-common, foo.install-info, foo.install-man, -# foo.uninstall, foo.distdir, +# foo.uninstall, # foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean, # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 # @@ -225,24 +225,6 @@ c++.stage3: stage3-start -mv cp/*$(objext) stage3/cp c++.stage4: stage4-start -mv cp/*$(objext) stage4/cp -# -# Maintenance hooks: - -# This target creates the files that can be rebuilt, but go in the -# distribution anyway. It then copies the files to the distdir directory. -c++.distdir: - mkdir tmp/cp - mkdir tmp/cp/inc - cd cp ; $(MAKE) $(LANG_FLAGS_TO_PASS) $(CXX_FLAGS_TO_PASS) parse.c hash.h - cd cp; \ - for file in *[0-9a-zA-Z+]; do \ - $(LN) $$file ../tmp/cp; \ - done - cd cp/inc; \ - for file in *[0-9a-zA-Z+]; do \ - ln $$file ../../tmp/cp/inc >/dev/null 2>&1 \ - || cp $$file ../../tmp/cp/inc; \ - done # # .o: .h dependencies. diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index fcb06affcbd..4c751d7b1a3 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,8 @@ +2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> + + * Make-lang.in: Remove f77.distdir and f/INSTALL. + * INSTALL, install0.texi: Remove. + 2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk> * com.c (open_include_file, ffecom_open_include_): Use strchr () diff --git a/gcc/f/INSTALL b/gcc/f/INSTALL deleted file mode 100644 index 91858800958..00000000000 --- a/gcc/f/INSTALL +++ /dev/null @@ -1,352 +0,0 @@ -*Note:* This file is automatically generated from the files -`install0.texi' and `g77install.texi'. `INSTALL' is *not* a source -file, although it is normally included within source distributions. - - This file contains installation information for the GNU Fortran -compiler. Copyright (C) {No Value For "copyrights-install"} Free -Software Foundation, Inc. You may copy, distribute, and modify it -freely as long as you preserve this copyright notice and permission -notice. - -Installing GNU Fortran -********************** - - The following information describes how to install `g77'. - - Note that, for users of the GCC-2.95 version of `g77', much of the -information is obsolete, and is superceded by the GCC installation -procedures. Such information is accordingly omitted and flagged as -such. - - *Warning:* The information below is still under development, and -might not accurately reflect the `g77' code base of which it is a part. -Efforts are made to keep it somewhat up-to-date, but they are -particularly concentrated on any version of this information that is -distributed as part of a *released* `g77'. - - In particular, while this information is intended to apply to the -GCC-2.95 version of `g77', only an official *release* of that version -is expected to contain documentation that is most consistent with the -`g77' product in that version. - - The following information was last updated on 1999-07-17: - -Prerequisites -============= - - For users of the GCC-2.95 version of `g77', this information is -superceded by the GCC installation instructions. - -Problems Installing -=================== - - This is a list of problems (and some apparent problems which don't -really mean anything is wrong) that show up when configuring, building, -installing, or porting GNU Fortran. - - *Note Installation Problems: (gcc)Installation Problems, for more -information on installation problems that can afflict either `gcc' or -`g77'. - -General Problems ----------------- - - These problems can occur on most or all systems. - -GNU C Required -.............. - - Compiling `g77' requires GNU C, not just ANSI C. Fixing this -wouldn't be very hard (just tedious), but the code using GNU extensions -to the C language is expected to be rewritten for 0.6 anyway, so there -are no plans for an interim fix. - - This requirement does not mean you must already have `gcc' installed -to build `g77'. As long as you have a working C compiler, you can use a -"bootstrap" build to automate the process of first building `gcc' using -the working C compiler you have, then building `g77' and rebuilding -`gcc' using that just-built `gcc', and so on. - -Patching GNU CC -............... - - `g77' no longer requires application of a patch file to the `gcc' -compiler tree. In fact, no such patch file is distributed with `g77'. -This is as of version 0.5.23 and `egcs' version 1.0. - -Building GNU CC Necessary -......................... - - It should be possible to build the runtime without building `cc1' -and other non-Fortran items, but, for now, an easy way to do that is -not yet established. - -Missing strtoul or bsearch -.......................... - - This information does not apply to the GCC-2.95 version of `g77', - -Cleanup Kills Stage Directories -............................... - - It'd be helpful if `g77''s `Makefile.in' or `Make-lang.in' would -create the various `stageN' directories and their subdirectories, so -developers and expert installers wouldn't have to reconfigure after -cleaning up. - - That help has arrived as of version 0.5.23 of `g77' and version 1.1 -of `egcs'. Configuration itself no longer creates any particular -directories that are unique to `g77'. The build procedures in -`Make-lang.in' take care of that, on demand. - -LANGUAGES Macro Ignored -....................... - - Prior to version 0.5.23 of `g77' and version 1.1 of `egcs', `g77' -would sometimes ignore the absence of `f77' and `F77' in the -`LANGUAGES' macro definition used for the `make' command being -processed. - - As of `g77' version 0.5.23 and `egcs' version 1.1, `g77' now obeys -this macro in all relevant situations. - - However, in versions of `gcc' through 2.8.1, non-`g77' portions of -`gcc', such as `g++', are known to go ahead and perform various -language-specific activities when their respective language strings do -not appear in the `LANGUAGES' macro in effect during that invocation of -`make'. - - It is expected that these remaining problems will be fixed in a -future version of `gcc'. - -System-specific Problems ------------------------- - - A linker bug on some versions of AIX 4.1 might prevent building when -`g77' is built within `gcc'. It might also occur when building within -`egcs'. - -Cross-compiler Problems ------------------------ - - `g77' has been in alpha testing since September of 1992, and in -public beta testing since February of 1995. Alpha testing was done by -a small number of people worldwide on a fairly wide variety of -machines, involving self-compilation in most or all cases. Beta -testing has been done primarily via self-compilation, but in more and -more cases, cross-compilation (and "criss-cross compilation", where a -version of a compiler is built on one machine to run on a second and -generate code that runs on a third) has been tried and has succeeded, -to varying extents. - - Generally, `g77' can be ported to any configuration to which `gcc', -`f2c', and `libf2c' can be ported and made to work together, aside from -the known problems described in this manual. If you want to port `g77' -to a particular configuration, you should first make sure `gcc' and -`libf2c' can be ported to that configuration before focusing on `g77', -because `g77' is so dependent on them. - - Even for cases where `gcc' and `libf2c' work, you might run into -problems with cross-compilation on certain machines, for several -reasons. - - * There is one known bug (a design bug to be fixed in 0.6) that - prevents configuration of `g77' as a cross-compiler in some cases, - though there are assumptions made during configuration that - probably make doing non-self-hosting builds a hassle, requiring - manual intervention. - - * `gcc' might still have some trouble being configured for certain - combinations of machines. For example, it might not know how to - handle floating-point constants. - - * Improvements to the way `libg2c' is built could make building - `g77' as a cross-compiler easier--for example, passing and using - `$(LD)' and `$(AR)' in the appropriate ways. (This is improved in - the `egcs' version of `g77', especially as of version 1.1.) - - * There are still some challenges putting together the right - run-time libraries (needed by `libg2c') for a target system, - depending on the systems involved in the configuration. (This is - a general problem with cross-compilation, and with `gcc' in - particular.) - -Changing Settings Before Building -================================= - - Here are some internal `g77' settings that can be changed by editing -source files in `egcs/gcc/f/' before building. - - This information, and perhaps even these settings, represent -stop-gap solutions to problems people doing various ports of `g77' have -encountered. As such, none of the following information is expected to -be pertinent in future versions of `g77'. - -Larger File Unit Numbers ------------------------- - - As distributed, whether as part of `f2c' or `g77', `libf2c' accepts -file unit numbers only in the range 0 through 99. For example, a -statement such as `WRITE (UNIT=100)' causes a run-time crash in -`libf2c', because the unit number, 100, is out of range. - - If you know that Fortran programs at your installation require the -use of unit numbers higher than 99, you can change the value of the -`MXUNIT' macro, which represents the maximum unit number, to an -appropriately higher value. - - To do this, edit the file `egcs/libf2c/libI77/fio.h' in your `g77' -source tree, changing the following line: - - #define MXUNIT 100 - - Change the line so that the value of `MXUNIT' is defined to be at -least one *greater* than the maximum unit number used by the Fortran -programs on your system. - - (For example, a program that does `WRITE (UNIT=255)' would require -`MXUNIT' set to at least 256 to avoid crashing.) - - Then build or rebuild `g77' as appropriate. - - *Note:* Changing this macro has *no* effect on other limits your -system might place on the number of files open at the same time. That -is, the macro might allow a program to do `WRITE (UNIT=100)', but the -library and operating system underlying `libf2c' might disallow it if -many other files have already been opened (via `OPEN' or implicitly via -`READ', `WRITE', and so on). Information on how to increase these -other limits should be found in your system's documentation. - -Always Flush Output -------------------- - - Some Fortran programs require output (writes) to be flushed to the -operating system (under UNIX, via the `fflush()' library call) so that -errors, such as disk full, are immediately flagged via the relevant -`ERR=' and `IOSTAT=' mechanism, instead of such errors being flagged -later as subsequent writes occur, forcing the previously written data -to disk, or when the file is closed. - - Essentially, the difference can be viewed as synchronous error -reporting (immediate flagging of errors during writes) versus -asynchronous, or, more precisely, buffered error reporting (detection -of errors might be delayed). - - `libg2c' supports flagging write errors immediately when it is built -with the `ALWAYS_FLUSH' macro defined. This results in a `libg2c' that -runs slower, sometimes quite a bit slower, under certain -circumstances--for example, accessing files via the networked file -system NFS--but the effect can be more reliable, robust file I/O. - - If you know that Fortran programs requiring this level of precision -of error reporting are to be compiled using the version of `g77' you -are building, you might wish to modify the `g77' source tree so that -the version of `libg2c' is built with the `ALWAYS_FLUSH' macro defined, -enabling this behavior. - - To do this, find this line in `egcs/libf2c/f2c.h' in your `g77' -source tree: - - /* #define ALWAYS_FLUSH */ - - Remove the leading `/* ', so the line begins with `#define', and the -trailing ` */'. - - Then build or rebuild `g77' as appropriate. - -Maximum Stackable Size ----------------------- - - `g77', on most machines, puts many variables and arrays on the stack -where possible, and can be configured (by changing -`FFECOM_sizeMAXSTACKITEM' in `egcs/gcc/f/com.c') to force smaller-sized -entities into static storage (saving on stack space) or permit -larger-sized entities to be put on the stack (which can improve -run-time performance, as it presents more opportunities for the GBE to -optimize the generated code). - - *Note:* Putting more variables and arrays on the stack might cause -problems due to system-dependent limits on stack size. Also, the value -of `FFECOM_sizeMAXSTACKITEM' has no effect on automatic variables and -arrays. *Note But-bugs::, for more information. - -Floating-point Bit Patterns ---------------------------- - - The `g77' build will crash if an attempt is made to build it as a -cross-compiler for a target when `g77' cannot reliably determine the -bit pattern of floating-point constants for the target. Planned -improvements for version 0.6 of `g77' will give it the capabilities it -needs to not have to crash the build but rather generate correct code -for the target. (Currently, `g77' would generate bad code under such -circumstances if it didn't crash during the build, e.g. when compiling -a source file that does something like `EQUIVALENCE (I,R)' and `DATA -R/9.43578/'.) - -Initialization of Large Aggregate Areas ---------------------------------------- - - A warning message is issued when `g77' sees code that provides -initial values (e.g. via `DATA') to an aggregate area (`COMMON' or -`EQUIVALENCE', or even a large enough array or `CHARACTER' variable) -that is large enough to increase `g77''s compile time by roughly a -factor of 10. - - This size currently is quite small, since `g77' currently has a -known bug requiring too much memory and time to handle such cases. In -`egcs/gcc/f/data.c', the macro `FFEDATA_sizeTOO_BIG_INIT_' is defined -to the minimum size for the warning to appear. The size is specified -in storage units, which can be bytes, words, or whatever, on a -case-by-case basis. - - After changing this macro definition, you must (of course) rebuild -and reinstall `g77' for the change to take effect. - - Note that, as of version 0.5.18, improvements have reduced the scope -of the problem for *sparse* initialization of large arrays, especially -those with large, contiguous uninitialized areas. However, the warning -is issued at a point prior to when `g77' knows whether the -initialization is sparse, and delaying the warning could mean it is -produced too late to be helpful. - - Therefore, the macro definition should not be adjusted to reflect -sparse cases. Instead, adjust it to generate the warning when densely -initialized arrays begin to cause responses noticeably slower than -linear performance would suggest. - -Alpha Problems Fixed --------------------- - - `g77' used to warn when it was used to compile Fortran code for a -target configuration that is not basically a 32-bit machine (such as an -Alpha, which is a 64-bit machine, especially if it has a 64-bit -operating system running on it). That was because `g77' was known to -not work properly on such configurations. - - As of version 0.5.20, `g77' is believed to work well enough on such -systems. So, the warning is no longer needed or provided. - - However, support for 64-bit systems, especially in areas such as -cross-compilation and handling of intrinsics, is still incomplete. The -symptoms are believed to be compile-time diagnostics rather than the -generation of bad code. It is hoped that version 0.6 will completely -support 64-bit systems. - -Quick Start -=========== - - For users of the GCC-2.95 version of `g77', this information is -superceded by the GCC installation instructions. - -Complete Installation -===================== - - For users of the GCC-2.95 version of `g77', this information is -superceded by the GCC installation instructions. - -Distributing Binaries -===================== - - For users of the GCC-2.95 version of `g77', this information is -superceded by the GCC installation instructions. - diff --git a/gcc/f/Make-lang.in b/gcc/f/Make-lang.in index 832b85457f7..a0e5f738bee 100644 --- a/gcc/f/Make-lang.in +++ b/gcc/f/Make-lang.in @@ -24,7 +24,7 @@ # foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap, # foo.info, foo.dvi, # foo.install-normal, foo.install-common, foo.install-info, foo.install-man, -# foo.uninstall, foo.distdir, +# foo.uninstall, # foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean, # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 # @@ -56,7 +56,7 @@ F77 f77: f771$(exeext) f77.install-normal \ f77.install-common f77.install-info f77.install-man \ f77.uninstall f77.mostlyclean f77.clean f77.distclean \ - f77.extraclean f77.maintainer-clean f77.distdir f77.rebuilt \ + f77.extraclean f77.maintainer-clean f77.rebuilt \ f77.stage1 f77.stage2 f77.stage3 f77.stage4 g77spec.o: $(srcdir)/f/g77spec.c $(srcdir)/f/version.h system.h $(GCC_H) @@ -233,15 +233,11 @@ $(srcdir)/f/BUGS: f/bugs0.texi f/bugs.texi f/root.texi cd $(srcdir)/f; $(MAKEINFO) -D BUGSONLY --no-header --no-split \ --no-validate -o BUGS bugs0.texi -$(srcdir)/f/INSTALL: f/install0.texi f/g77install.texi f/root.texi - cd $(srcdir)/f; $(MAKEINFO) -D INSTALLONLY --no-header --no-split \ - --no-validate -o INSTALL install0.texi - $(srcdir)/f/NEWS: f/news0.texi f/news.texi f/root.texi cd $(srcdir)/f; $(MAKEINFO) -D NEWSONLY --no-header --no-split \ --no-validate -o NEWS news0.texi -f77.rebuilt: f/g77.info $(srcdir)/f/BUGS $(srcdir)/f/INSTALL \ +f77.rebuilt: f/g77.info $(srcdir)/f/BUGS \ $(srcdir)/f/NEWS # @@ -364,7 +360,7 @@ f77.distclean: -rm -f lang-f77 f/Makefile f77.extraclean: f77.maintainer-clean: - -rm -f f/g77.info* f/g77.*aux f/TAGS f/BUGS f/INSTALL f/NEWS f/intdoc.texi + -rm -f f/g77.info* f/g77.*aux f/TAGS f/BUGS f/NEWS f/intdoc.texi # # Stage hooks: # The main makefile has already created stage?/f. @@ -388,23 +384,6 @@ f77.stage4: stage4-start -if [ -f lang-f77 ]; then \ mv -f $(G77STAGESTUFF) stage4/f; \ fi -# -# Maintenance hooks: - -# This target creates the files that can be rebuilt, but go in the -# distribution anyway. It then copies the files to the distdir directory. -f77.distdir: f77.rebuilt - case "$(LANGUAGES)" in \ - *[fF]77*) touch lang-f77;; \ - *) rm -f lang-f77;; \ - esac - -if [ -f lang-f77 ]; then \ - mkdir tmp/f; \ - cd f; \ - for file in *[0-9a-zA-Z+]; do \ - $(LN_S) $$file ../tmp/f; \ - done; \ - fi # # .o: .h dependencies. diff --git a/gcc/f/install0.texi b/gcc/f/install0.texi deleted file mode 100644 index 44311dd226e..00000000000 --- a/gcc/f/install0.texi +++ /dev/null @@ -1,9 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@c %**start of header -@setfilename INSTALL -@c %**end of header - -@c This tells g77install.texi that it's generating just the INSTALL file. -@set DOC-INSTALL -@include g77install.texi -@bye diff --git a/gcc/install1.texi b/gcc/install1.texi deleted file mode 100644 index 21c08b93401..00000000000 --- a/gcc/install1.texi +++ /dev/null @@ -1,15 +0,0 @@ -@setfilename INSTALL -@set INSTALLONLY - -@c This file itself, install1.texi, does not appear in the GCC distribution. -@c The immediately following lines apply to the INSTALL file -@c which is generated using this file. -This file documents the installation of the GNU compiler. -Copyright (C) 1988, 1989, 1992, 1994, 1995 Free Software Foundation, Inc. -You may copy, distribute, and modify it freely as long as you preserve -this copyright notice and permission notice. - -@node Installation,,, (dir) -@chapter Installing GNU CC -@include install.texi -@bye diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 45fc5614b29..ab5162ee553 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,7 @@ +2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> + + * Make-lang.in (java.distdir): Remove. + 2000-11-03 Tom Tromey <tromey@cygnus.com> * Make-lang.in (java.dvi): New target. diff --git a/gcc/java/Make-lang.in b/gcc/java/Make-lang.in index 345087a31ba..b2ed5f6d7d1 100644 --- a/gcc/java/Make-lang.in +++ b/gcc/java/Make-lang.in @@ -29,7 +29,7 @@ # foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap, # foo.info, foo.dvi, # foo.install-normal, foo.install-common, foo.install-info, foo.install-man, -# foo.uninstall, foo.distdir, +# foo.uninstall, # foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean, # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 # @@ -210,17 +210,6 @@ java.stage3: stage3-start -mv java/*$(objext) stage3/java java.stage4: stage4-start -mv java/*$(objext) stage4/java -# -# Maintenance hooks: - -# This target creates the files that can be rebuilt, but go in the -# distribution anyway. It then copies the files to the distdir directory. -java.distdir: java/parse.c java/hash.h - mkdir tmp/java - cd java; \ - for file in *[0-9a-zA-Z+]; do \ - ln $$file ../tmp/java >/dev/null 2>&1 || cp $$file ../tmp/java; \ - done # # .o:.h dependencies. diff --git a/gcc/objc/Make-lang.in b/gcc/objc/Make-lang.in index 6f19902400e..7eae3d6e64b 100644 --- a/gcc/objc/Make-lang.in +++ b/gcc/objc/Make-lang.in @@ -24,7 +24,7 @@ # foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap, # foo.info, foo.dvi, # foo.install-normal, foo.install-common, foo.install-info, foo.install-man, -# foo.uninstall, foo.distdir, +# foo.uninstall, # foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean, # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 # @@ -141,15 +141,3 @@ objc.stage3: stage3-start objc.stage4: stage4-start -mv objc/*$(objext) stage4/objc -mv cc1obj$(exeext) stage4 - -# -# Maintenance hooks: - -# This target creates the files that can be rebuilt, but go in the -# distribution anyway. It then copies the files to the distdir directory. -objc.distdir: $(srcdir)/objc/objc-parse.c - mkdir tmp/objc - cd objc; \ - for file in *[0-9a-zA-Z+]; do \ - ln $$file ../tmp/objc >/dev/null 2>&1 || cp $$file ../tmp/objc; \ - done |