install
来自「GCC编译器源代码」· 代码 · 共 1,454 行 · 第 1/5 页
TXT
1,454 行
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. Also, releases of AIX 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 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-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 directoryother than the one containing the source files, here is what you mustdo 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 theconfiguration steps shown above, when ordinary source files change. Youmust, however, run `configure' again when the configuration fileschange, 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 notall. * 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
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?