⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gcc.texi

📁 早期freebsd实现
💻 TEXI
📖 第 1 页 / 共 5 页
字号:
implemented multiply-by-constant optimization and better long longsupport, and improved leaf function register allocation.@itemMike Stump implemented the support for Elxsi 64 bit CPU.@end itemize@node Boycott@chapter Protect Your Freedom---Fight ``Look And Feel''@quotation@i{This section is a political message from the League for ProgrammingFreedom to the users of GNU CC.  It is included here as an expressionof support for the League on the part of the Free Software Foundation.}@end quotationApple and Lotus are trying to create a new form of legal monopoly: acopyright on a class of user interfaces.  These monopolies would causeserious problems for users and developers of computer software andsystems.  Xerox, too, has tried to make a monopoly for itself on windowsystems; their suit against Apple was thrown out on a technicality, butXerox has not said anything to indicate it wouldn't try again.Until a few years ago, the law seemed clear: no one could restrictothers from using a user interface; programmers were free to implementany interface they chose.  Imitating interfaces, sometimes with changes,was standard practice in the computer field.  The interfaces we knowevolved gradually in this way; for example, the Macintosh user interfacedrew ideas from the Xerox interface, which in turn drew on work done atStanford and SRI.  1-2-3 imitated VisiCalc, and dBase imitated adatabase program from JPL.Most computer companies, and nearly all computer users, were happy withthis state of affairs.  The companies that are suing say it does notoffer ``enough incentive'' to develop their products, but they must haveconsidered it ``enough'' when they made their decision to do so.  Itseems they are not satisfied with the opportunity to continue to competein the marketplace---not even with a head start.If companies like Xerox, Lotus, and Apple are permitted to make lawthrough the courts, the precedent will hobble the software industry:@itemize @bullet@itemGratuitous incompatibilities will burden users.  Imagine if eachcar manufacturer had to arrange the pedals in a different order.@itemSoftware will become and remain more expensive.  Users will be``locked in'' to proprietary interfaces, for which there is no realcompetition.@itemLarge companies have an unfair advantage wherever lawsuits becomecommonplace.  Since they can easily afford to sue, they can intimidatesmall companies with threats even when they don't really have a case.@itemUser interface improvements will come slower, since incrementalevolution through creative imitation will no longer be permitted.@itemEven Apple, etc., will find it harder to make improvements ifthey can no longer adapt the good ideas that others introduce, forfear of weakening their own legal positions.  Some users suggest thatthis stagnation may already have started.@itemIf you use GNU software, you might find it of some concern that userinterface copyright will make it hard for the Free Software Foundationto develop programs compatible with the interfaces that you alreadyknow.@end itemizeTo protect our freedom from lawsuits like these, a group of programmersand users have formed a new grass-roots political organization, theLeague for Programming Freedom.The purpose of the League is to oppose new monopolistic practices suchas user-interface copyright and software patents; it calls for a returnto the legal policies of the recent past, in which these practices werenot allowed.  The League is not concerned with free software as anissue, and not affiliated with the Free Software Foundation.The League's membership rolls include John McCarthy, inventor of Lisp,Marvin Minsky, founder of the Artificial Intelligence lab, Guy L.Steele, Jr., author of well-known books on Lisp and C, as well asRichard Stallman, the developer of GNU CC.  Please join and add yourname to the list.  Membership dues in the League are $42 per year forprogrammers, managers and professionals; $10.50 for students; $21 forothers.The League needs both activist members and members who only pay theirdues.To join, or for more information, phone (617) 243-4091 or write to:@displayLeague for Programming Freedom1 Kendall Square #143P.O. Box 9171Cambridge, MA 02139@end displayYou can also send electronic mail to @code{league@@prep.ai.mit.edu}.Here are some suggestions from the League for things you can do toprotect your freedom to write programs:@itemize @bullet@itemDon't buy from Xerox, Lotus or Apple.  Buy from their competitors orfrom the defendants they are suing.@itemDon't develop software to work with the systems made by these companies.@itemPort your existing software to competing systems, so that you encourageusers to switch.@itemWrite letters to company presidents to let them know their conductis unacceptable.@itemTell your friends and colleagues about this issue and how it threatensto ruin the computer industry.@itemAbove all, don't work for the look-and-feel plaintiffs, and don'taccept contracts from them.@itemWrite to Congress to explain the importance of this issue.@displayHouse Subcommittee on Intellectual Property2137 Rayburn BldgWashington, DC 20515Senate Subcommittee on Patents, Trademarks and CopyrightsUnited States SenateWashington, DC 20510@end display(These committees have received lots of mail already; let's give themeven more.)@end itemizeExpress your opinion!  You can make a difference.@include invoke.texi@include install.texi@include extend.texi@node Trouble@chapter Known Causes of Trouble with GNU CC@cindex bugs, known@cindex installation trouble@cindex known causes of troubleThis section describes known problems that affect users of GNU CC.  Mostof these are not GNU CC bugs per se---if they were, we would fix them.But the result for a user may be like the result of a bug.Some of these problems are due to bugs in other software, some aremissing features that are too much work to add, and some are placeswhere people's opinions differ as to what is best.@menu* Actual Bugs::		      Bugs we will fix later.* Installation Problems::     Problems that manifest when you install GNU CC.* Cross-Compiler Problems::   Common problems of cross compiling with GNU CC.* Interoperation::      Problems using GNU CC with other compilers,			   and with certain linkers, assemblers and debuggers.* Incompatibilities::   GNU CC is incompatible with traditional C.* Disappointments::     Regrettable things we can't change, but not quite bugs.* Protoize Caveats::    Things to watch out for when using @code{protoize}.* Non-bugs::		Things we think are right, but some others disagree.@end menu@node Actual Bugs@section Actual Bugs We Haven't Fixed Yet@itemize @bullet@itemLoop unrolling doesn't work properly for certain C++ programs.  This isbecause of difficulty in updating the debugging information within theloop being unrolled.  We plan to revamp the representation of debugginginformation so that this will work properly, but we have not done thisin version 2.3 because we don't want to delay it any further.@end itemize@node Installation Problems@section Installation ProblemsThis is a list of problems (and some apparent problems which don'treally mean anything is wrong) that show up during installation of GNUCC.@itemize @bullet@itemOn certain systems, defining certain environment variables such as@code{CC} can interfere with the functioning of @code{make}.@itemIf you encounter seemingly strange errors when trying to build thecompiler in a directory other than the source directory, it could bebecause you have previously configured the compiler in the sourcedirectory.  Make sure you have done all the necessary preparations.@xref{Other Dir}.@itemIn previous versions of GNU CC, the @code{gcc} driver program looked for@code{as} and @code{ld} in various places such as files beginning with@file{/usr/local/lib/gcc-}.  GNU CC version 2 looks for them in thedirectory @file{/usr/local/lib/gcc-lib/@var{target}/@var{version}}.Thus, to use a version of @code{as} or @code{ld} that is not the systemdefault, for example @code{gas} or GNU @code{ld}, you must put them inthat directory (or make links to them from that directory).@itemSome commands executed when making the compiler may fail (return anon-zero status) and be ignored by @code{make}.  These failures, whichare often due to files that were not found, are expected, and can safelybe ignored.@itemIt is normal to have warnings in compiling certain files aboutunreachable code and about enumeration type clashes.  These files' namesbegin with @samp{insn-}.@itemSometimes @code{make} recompiles parts of the compiler when installingthe compiler.  In one case, this was traced down to a bug in@code{make}.  Either ignore the problem or switch to GNU Make.@itemOn some 386 systems, building the compiler never finishes because@code{enquire} hangs due to a hardware problem in the motherboard---itreports floating point exceptions to the kernel incorrectly.  You caninstall GNU CC except for @file{float.h} by patching out the command torun @code{enquire}.  You may also be able to fix the problem for real bygetting a replacement motherboard.  This problem was observed inRevision E of the Micronics motherboard, and is fixed in Revision F.@itemOn some 386 systems, GNU CC crashes trying to compile @file{enquire.c}.This happens on machines that don't have a 387 FPU chip.  On 386machines, the system kernel is supposed to emulate the 387 when youdon't have one.  The crash is due to a bug in the emulator.One of these systems is the Unix from Interactive Systems: 386/ix.On this system, an alternate emulator is provided, and it does work.To use it, execute this command as super-user:@exampleln /etc/emulator.rel1 /etc/emulator@end example@noindentand then reboot the system.  (The default emulator file remains presentunder the name @file{emulator.dflt}.)If you have such a problem on the SCO system, try using@file{/etc/emulator.att}.Another system which has this problem is Esix.  We don't know whether ithas an alternate emulator that works.@cindex @code{genflags}, crash on Sun 4@itemSometimes on a Sun 4 you may observe a crash in the program@code{genflags} or @code{genoutput} while building GNU CC.  This is said tobe due to a bug in @code{sh}.  You can probably get around it by running@code{genflags} or @code{genoutput} manually and then retrying the@code{make}.@itemIf you use the 1.31 version of the MIPS assembler (such as was shippedwith Ultrix 3.1), you will need to use the -fno-delayed-branch switchwhen optimizing floating point code.  Otherwise, the assembler willcomplain when the GCC compiler fills a branch delay slot with afloating point instruction, such as add.d.@itemUsers have reported some problems with version 2.0 of the MIPScompiler tools that were shipped with Ultrix 4.1.  Version 2.10which came with Ultrix 4.2 seems to work fine.@itemSome versions of the MIPS linker will issue an assertion failurewhen linking code that uses @code{alloca} against sharedlibraries on RISC-OS 5.0, and DEC's OSF/1 systems.  This is a bugin the linker, that is supposed to be fixed in future revisions.To protect against this, GCC passes @samp{-non_shared} to thelinker unless you pass an explicit @samp{-shared} or@samp{-call_shared} switch.@itemOn System V release 3, you may get this error messagewhile linking:@smallexampleld fatal: failed to write symbol name @var{something}  in strings table for file @var{whatever}@end smallexampleThis indicates that the disk is full or your ULIMIT won't allowthe file to be as large as it needs to be.@itemOn HP 9000 series 300 or 400 running HP-UX release 8.0, there is a bugin the assembler that must be fixed before GNU CC can be built.  Thisbug manifests itself during the first stage of compilation, whilebuilding @file{libgcc2.a}:@example_floatdisfcc1: warning: `-g' option not supported on this version of GCCcc1: warning: `-g1' option not supported on this version of GCC./gcc: Internal compiler error: program as got fatal signal 11@end exampleA patched version of the assembler is available by anonymous ftp from@code{altdorf.ai.mit.edu} as the file@file{archive/cph/hpux-8.0-assembler}.  If you have HP software support,the patch can also be obtained directly from HP, as described in thefollowing note:@quotationThis is the patched assembler, to patch SR#1653-010439, where theassembler aborts on floating point constants.The bug is not really in the assembler, but in the shared libraryversion of the function ``cvtnum(3c)''.  The bug on ``cvtnum(3c)'' is

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -