📄 install.texi
字号:
previous versions of GNU CC if you have them.Installing GNU CC on the 3b1 is difficult if you do not already haveGNU CC running, due to bugs in the installed C compiler. However,the following procedure might work. We are unable to test it.@enumerate@itemComment out the @samp{#include "config.h"} line on line 37 of@file{cccp.c} and do @samp{make cpp}. This makes a preliminary versionof GNU cpp.@itemSave the old @file{/lib/cpp} and copy the preliminary GNU cpp to thatfile name.@itemUndo your change in @file{cccp.c}, or reinstall the original version,and do @samp{make cpp} again.@itemCopy this final version of GNU cpp into @file{/lib/cpp}.@findex obstack_free@itemReplace every occurrence of @code{obstack_free} in the file@file{tree.c} with @code{_obstack_free}.@itemRun @code{make} to get the first-stage GNU CC.@itemReinstall the original version of @file{/lib/cpp}.@itemNow you can compile GNU CC with itself and install it in the normalfashion.@end enumerate@item m68k-bull-sysvBull 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 useGNU assembler with native coff generation by providing @samp{--with-gnu-as} tothe configure script or use GNU assembler with dbx-in-coff encapsulationby providing @samp{--with-gnu-as --stabs}. For any problem with native assembler or for availability of the DPX/2 port of GAS, contact @code{F.Pierresteguy@@frcl.bull.fr}.@item m68k-crds-unoxUse @samp{configure unos} for building on Unos.The Unos assembler is named @code{casm} instead of @code{as}. For somestrange reason linking @file{/bin/as} to @file{/bin/casm} changes thebehavior, and does not work. So, when installing GNU CC, you shouldinstall the following script as @file{as} in the subdirectory wherethe passes of GCC are installed:@example#!/bin/shcasm $*@end exampleThe default Unos library is named @file{libunos.a} instead of@file{libc.a}. To allow GNU CC to function, either change allreferences to @samp{-lc} in @file{gcc.c} to @samp{-lunos} or link@file{/lib/libc.a} to @file{/lib/libunos.a}.@cindex @code{alloca}, for UnosWhen compiling GNU CC with the standard compiler, to overcome bugs inthe support of @code{alloca}, do not use @samp{-O} when making stage 2.Then use the stage 2 compiler with @samp{-O} to make the stage 3compiler. This compiler will have the same characteristics as the usualstage 2 compiler on other systems. Use it to make a stage 4 compilerand compare that with stage 3 to verify proper compilation.(Perhaps simply defining @code{ALLOCA} in @file{x-crds} as described inthe comments there will make the above paragraph superfluous. Pleaseinform us of whether this works.)Unos uses memory segmentation instead of demand paging, so you will needa lot of memory. 5 Mb is barely enough if no other tasks are running.If linking @file{cc1} fails, try putting the object files into a libraryand linking from that library.@item m68k-hp-hpuxHP 9000 series 300 or 400 running HP-UX. HP-UX version 8.0 has a bug inthe assembler that prevents compilation of GNU CC. To fix it, get patchPHCO_4484 from HP.In addition, if you wish to use gas @samp{--with-gnu-as} you must usegas version 2.1 or later, and you must use the GNU linker version 2.1 orlater. Earlier versions of gas relied upon a program which converted thegas output into the native HP/UX format, but that program has not beenkept up to date. gdb does not understand that native HP/UX format, soyou must use gas if you wish to use gdb.@item m68k-sunSun 3. We do not provide a configuration file to use the Sun FPA bydefault, because programs that establish signal handlers for floatingpoint traps inherently cannot work with the FPA.See @ref{Sun Install}, for information on installing GNU CC on Sunsystems.@item m88k-*-svr3Motorola 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 thestandard C compiler. There are apparently bugs in this compiler thatresult in object files differences between stage 2 and stage 3. If thishappens, make the stage 4 compiler and compare it to the stage 3compiler. If the stage 3 and stage 4 object files are identical, thissuggests you encountered a problem with the standard C compiler; thestage 3 and 4 compilers may be usable.It is best, however, to use an older version of GNU CC for bootstrappingif you have one.@item m88k-*-dguxMotorola m88k running DG/UX. To build 88open BCS native or crosscompilers on DG/UX, specify the configuration name as@samp{m88k-*-dguxbcs} and build in the 88open BCS software developmentenvironment. To build ELF native or cross compilers on DG/UX, specify@samp{m88k-*-dgux} and build in the DG/UX ELF development environment.You set the software development environment by issuing@samp{sde-target} command and specifying either @samp{m88kbcs} or@samp{m88kdguxelf} as the operand.If you do not specify a configuration name, @file{configure} guesses theconfiguration based on the current software development environment.@item m88k-tektronix-sysv3Tektronix XD88 running UTekV 3.2e. Do not turn onoptimization while building stage1 if you bootstrap withthe buggy Green Hills compiler. Also, The bundled LAISystem V NFS is buggy so if you build in an NFS mounteddirectory, start from a fresh reboot, or avoid NFS all together.Otherwise you may have trouble getting clean comparisonsbetween stages.@item mips-mips-bsdMIPS machines running the MIPS operating system in BSD mode. It'spossible that some old versions of the system lack the functions@code{memcpy}, @code{memcmp}, and @code{memset}. If your system lacksthese, you must remove or undo the definition of@code{TARGET_MEM_FUNCTIONS} in @file{mips-bsd.h}.The MIPS C compiler needs to be told to increase its table sizefor switch statements with the @samp{-Wf,-XNg1500} option inorder to compile @file{cp/parse.c}. If you use the @samp{-O2}optimization option, you also need to use @samp{-Olimit 3000}.Both of these options are automatically generated in the@file{Makefile} that the shell script @file{configure} builds.If you override the @code{CC} make variable and use the MIPScompilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}.@item mips-mips-riscos*The MIPS C compiler needs to be told to increase its table sizefor switch statements with the @samp{-Wf,-XNg1500} option inorder to compile @file{cp/parse.c}. If you use the @samp{-O2}optimization option, you also need to use @samp{-Olimit 3000}.Both of these options are automatically generated in the@file{Makefile} that the shell script @file{configure} builds.If you override the @code{CC} make variable and use the MIPScompilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}.MIPS computers running RISC-OS can support four differentpersonalities: default, BSD 4.3, System V.3, and System V.4(older versions of RISC-OS don't support V.4). To configure GCCfor these platforms use the following configurations:@table @samp@item mips-mips-riscos@code{rev}Default configuration for RISC-OS, revision @code{rev}.@item mips-mips-riscos@code{rev}bsdBSD 4.3 configuration for RISC-OS, revision @code{rev}.@item mips-mips-riscos@code{rev}sysv4System V.4 configuration for RISC-OS, revision @code{rev}.@item mips-mips-riscos@code{rev}sysvSystem V.3 configuration for RISC-OS, revision @code{rev}.@end tableThe revision @code{rev} mentioned above is the revision ofRISC-OS to use. You must reconfigure GCC when going from aRISC-OS revision 4 to RISC-OS revision 5. This has the effect ofavoiding a linker@ifclear INSTALLONLYbug (see @ref{Installation Problems}, for more details).@end ifclear@ifset INSTALLONLYbug.@end ifset@item 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 SiliconGraphics.@code{make compare} may fail on version 5 of IRIX unless you add@samp{-save-temps} to @code{CFLAGS}. On these systems, the name of theassembler input file is stored in the object file, and that makescomparison fail if it differs between the @code{stage1} and@code{stage2} compilations. The option @samp{-save-temps} forces afixed name to be used for the assembler input file, instead of arandomly chosen name in @file{/tmp}. Do not add @samp{-save-temps}unless the comparisons fail without that option. If you do you@samp{-save-temps}, you will have to manually delete the @samp{.i} and@samp{.s} files after each series of compilations.The MIPS C compiler needs to be told to increase its table sizefor switch statements with the @samp{-Wf,-XNg1500} option inorder to compile @file{cp/parse.c}. If you use the @samp{-O2}optimization option, you also need to use @samp{-Olimit 3000}.Both of these options are automatically generated in the@file{Makefile} that the shell script @file{configure} builds.If you override the @code{CC} make variable and use the MIPScompilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}.On Irix version 4.0.5F, and perhaps on some other versions as well,there is an assembler bug that reorders instructions incorrectly. Towork around it, specify the target configuration@samp{mips-sgi-irix4loser}. This configuration inhibits assembleroptimization.In a compiler configured with target @samp{mips-sgi-irix4}, you can turnoff assembler optimization by using the @samp{-noasmopt} option. Thiscompiler option passes the option @samp{-O0} to the assembler, toinhibit reordering.The @samp{-noasmopt} option can be useful for testing whether a problemis due to erroneous assembler reordering. Even if a problem does not goaway with @samp{-noasmopt}, it may still be due to assemblerreordering---perhaps GNU CC itself was miscompiled as a result.To enable debugging under Irix 5, you must use GNU as 2.5 or later,and use the @samp{--with-gnu-as} configure option when configuring gcc.GNU as is distributed as part of the binutils package. @item mips-sony-sysvSony MIPS NEWS. This works in NEWSOS 5.0.1, but not in 5.0.2 (whichuses ELF instead of COFF). Support for 5.0.2 will probably be providedsoon by volunteers. In particular, the linker does not like thecode generated by GCC when shared libraries are linked in.@item ns32k-encoreEncore ns32000 system. Encore systems are supported only under BSD.@item ns32k-*-genixNational Semiconductor ns32000 system. Genix has bugs in @code{alloca}and @code{malloc}; you must get the compiled versions of these from GNUEmacs.@item ns32k-sequentGo to the Berkeley universe before compiling. In addition, you probablyneed to create a file named @file{string.h} containing just one line:@samp{#include <strings.h>}.@item ns32k-utekUTEK ns32000 system (``merlin''). The C compiler that comes with thissystem cannot compile GNU CC; contact @samp{tektronix!reed!mason} to getbinaries of GNU CC for bootstrapping.@item romp-*-aos@itemx romp-*-machThe only operating systems supported for the IBM RT PC are AOS andMACH. GNU CC does not support AIX running on the RT. We recommend youcompile GNU CC with an earlier version of itself; if you compile GNU CCwith @code{hc}, the Metaware compiler, it will work, but you will getmismatches between the stage 2 and stage 3 compilers in various files.These errors are minor differences in some floating-point constants andcan be safely ignored; the stage 3 compiler is correct.@item rs6000-*-aix@itemx powerpc-*-aixVarious early versions of each release of the IBM XLC compiler will notbootstrap GNU CC. Symptoms include differences between the stage2 andstage3 object files, and errors when compiling @file{libgcc.a} or@file{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. Bothxlc-1.2.1.28 and xlc-1.3.0.24 (PTF 432238) are known to produce workingversions of GNU CC, but most other recent releases correctly bootstrapGNU CC. Also, releases of AIX prior to AIX 3.2.4 include a version ofthe IBM assembler which does not accept debugging directives: assemblerupdates are available as PTFs. Also, if you are using AIX 3.2.5 orgreater and the GNU assembler, you must have a version modified afterOctober 16th, 1995 in order for the GNU C compiler to build. See thefile @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 assumptionsthat are incompatible with the calling conventions.AIX on the RS/6000 provides support (NLS) for environments outside ofthe United States. Compilers and assemblers use NLS to supportlocale-specific representations of various objects includingfloating-point numbers ("." vs "," for separating decimal fractions).There have been problems reported where the library linked with GNU CCdoes not produce the same floating-point formats that the assembleraccepts. 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 AIX4.1, you may now receive warnings of duplicate symbols from the link stepthat were not reported before. The assembly files generated by GNU CC forAIX have always included multiple symbol definitions for certain globalvariable and function declarations in the original program. The warningsshould not prevent the linker from producing a correct library or runnableexecutable.@item powerpc-*-elf@itemx powerpc-*-sysv4PowerPC system in big endian mode, running System V.4.This configuration is currently under development.@item powerpc-*-eabiaixEmbedded PowerPC system in big endian mode with -mcall-aix selected asthe default. This system is currently under development.@item powerpc-*-eabisim
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -