home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 7 / FreshFishVol7.bin / bbs / gnu / gcc-2.5.8-bin.lha / GNU / info / gcc.info-6 (.txt) < prev    next >
GNU Info File  |  1994-09-02  |  47KB  |  850 lines

  1. This is Info file gcc.info, produced by Makeinfo-1.54 from the input
  2. file gcc.texi.
  3.    This file documents the use and the internals of the GNU compiler.
  4.    Published by the Free Software Foundation 675 Massachusetts Avenue
  5. Cambridge, MA 02139 USA
  6.    Copyright (C) 1988, 1989, 1992, 1993 Free Software Foundation, Inc.
  7.    Permission is granted to make and distribute verbatim copies of this
  8. manual provided the copyright notice and this permission notice are
  9. preserved on all copies.
  10.    Permission is granted to copy and distribute modified versions of
  11. this manual under the conditions for verbatim copying, provided also
  12. that the sections entitled "GNU General Public License" and "Protect
  13. Your Freedom--Fight `Look And Feel'" are included exactly as in the
  14. original, and provided that the entire resulting derived work is
  15. distributed under the terms of a permission notice identical to this
  16.    Permission is granted to copy and distribute translations of this
  17. manual into another language, under the above conditions for modified
  18. versions, except that the sections entitled "GNU General Public
  19. License" and "Protect Your Freedom--Fight `Look And Feel'", and this
  20. permission notice, may be included in translations approved by the Free
  21. Software Foundation instead of in the original English.
  22. File: gcc.info,  Node: Configurations,  Next: Other Dir,  Up: Installation
  23. Configurations Supported by GNU CC
  24. ==================================
  25.    Here are the possible CPU types:
  26.      1750a, a29k, alpha, arm, cN, clipper, elxsi, h8300, hppa1.0,
  27.      hppa1.1, i370, i386, i486, i860, i960, m68000, m68k, m88k, mips,
  28.      ns32k, pyramid, romp, rs6000, sh, sparc, sparclite, sparc64, vax,
  29.      we32k.
  30.    Here are the recognized company names.  As you can see, customary
  31. abbreviations are used rather than the longer official names.
  32.      acorn, alliant, altos, apollo, att, bull, cbm, convergent, convex,
  33.      crds, dec, dg, dolphin, elxsi, encore, harris, hitachi, hp, ibm,
  34.      intergraph, isi, mips, motorola, ncr, next, ns, omron, plexus,
  35.      sequent, sgi, sony, sun, tti, unicom.
  36.    The company name is meaningful only to disambiguate when the rest of
  37. the information supplied is insufficient.  You can omit it, writing
  38. just `CPU-SYSTEM', if it is not needed.  For example, `vax-ultrix4.2'
  39. is equivalent to `vax-dec-ultrix4.2'.
  40.    Here is a list of system types:
  41.      386bsd, aix, acis, amigados, aos, aout, bosx, bsd, clix, ctix,
  42.      cxux, dgux, dynix, ebmon, elf, esix, freebsd, hms, genix, gnu,
  43.      hiux, hpux, iris, irix, isc, linux, luna, lynxos, mach, minix,
  44.      msdos, mvs, netbsd, newsos, nindy, ns, osf, osfrose, riscix,
  45.      riscos, rtu, sco, solaris, sunos, sym, sysv, ultrix, unicos,
  46.      uniplus, unos, vms, vxworks, xenix.
  47. You can omit the system type; then `configure' guesses the operating
  48. system from the CPU and company.
  49.    You can add a version number to the system type; this may or may not
  50. make a difference.  For example, you can write `bsd4.3' or `bsd4.4' to
  51. distinguish versions of BSD.  In practice, the version number is most
  52. needed for `sysv3' and `sysv4', which are often treated differently.
  53.    If you specify an impossible combination such as `i860-dg-vms', then
  54. you may get an error message from `configure', or it may ignore part of
  55. the information and do the best it can with the rest.  `configure'
  56. always prints the canonical name for the alternative that it used.  GNU
  57. CC does not support all possible alternatives.
  58.    Often a particular model of machine has a name.  Many machine names
  59. are recognized as aliases for CPU/company combinations.  Thus, the
  60. machine name `sun3', mentioned above, is an alias for `m68k-sun'.
  61. Sometimes we accept a company name as a machine name, when the name is
  62. popularly used for a particular machine.  Here is a table of the known
  63. machine names:
  64.      3300, 3b1, 3bN, 7300, altos3068, altos, apollo68, att-7300,
  65.      balance, convex-cN, crds, decstation-3100, decstation, delta,
  66.      encore, fx2800, gmicro, hp7NN, hp8NN, hp9k2NN, hp9k3NN, hp9k7NN,
  67.      hp9k8NN, iris4d, iris, isi68, m3230, magnum, merlin, miniframe,
  68.      mmax, news-3600, news800, news, next, pbd, pc532, pmax, powerpc,
  69.      ps2, risc-news, rtpc, sun2, sun386i, sun386, sun3, sun4, symmetry,
  70.      tower-32, tower.
  71. Remember that a machine name specifies both the cpu type and the company
  72. name.  If you want to install your own homemade configuration files,
  73. you can use `local' as the company name to access them.  If you use
  74. configuration `CPU-local', the configuration name without the cpu prefix
  75. is used to form the configuration file names.
  76.    Thus, if you specify `m68k-local', configuration uses files
  77. `local.md', `local.h', `local.c', `xm-local.h', `t-local', and
  78. `x-local', all in the directory `config/m68k'.
  79.    Here is a list of configurations that have special treatment or
  80. special things you must know:
  81. `1750a-*-*'
  82.      MIL-STD-1750A processors.  This port is preliminary.
  83.      You should ignore a fatal error during the building of libgcc
  84.      (libgcc is not yet implemented for the 1750A.)
  85.      The Tektronix MIL-STD-1750A Assembler requires the file
  86.      `m1750.inc', which is found in the directory `config/1750a'.
  87.      GNU CC produced the same sections as the Fairchild F9450 C
  88.      Compiler, namely:
  89.     `NREL'
  90.           The program code section.
  91.     `SREL'
  92.           The read/write (RAM) data section.
  93.     `KREL'
  94.           The read-only (ROM) constants section.
  95.     `IREL'
  96.           Initialization section (code to copy KREL to SREL).
  97.      The smallest addressable unit is 16 bits (BITS_PER_UNIT is 16).
  98.      This means that type `char' is represented with a 16-bit word per
  99.      character.  The 1750A's "Load/Store Upper/Lower Byte" instructions
  100.      are not used by GNU CC.
  101.      There is a problem with long argument lists to functions.  The
  102.      compiler aborts if the sum of space needed by all arguments
  103.      exceeds 14 words.  This is because the arguments are passed in
  104.      registers (R0..R13) not on the stack, and there is a problem with
  105.      passing further arguments (i.e.  beyond those in R0..R13) via the
  106.      stack.
  107.      If efficiency is less important than using long argument lists, you
  108.      can change the definition of the `FUNCTION_ARG' macro in
  109.      `config/1750/1750a.h' to always return zero.  If you do that, GNU
  110.      CC will pass all parameters on the stack.
  111. `alpha-*-osf1'
  112.      Systems using processors that implement the DEC Alpha architecture
  113.      and are running the OSF/1 operating system, for example the DEC
  114.      Alpha AXP systems.  (VMS on the Alpha is not currently supported
  115.      by GNU CC.)
  116.      GNU CC writes a `.verstamp' directive to the assembler output file
  117.      unless it is built as a cross-compiler.  It gets the version to
  118.      use from the system header file `/usr/include/stamp.h'.  If you
  119.      install a new version of OSF/1, you should rebuild GCC to pick up
  120.      the new version stamp.
  121.      Note that since the Alpha is a 64-bit architecture,
  122.      cross-compilers from 32-bit machines will not generate code as
  123.      efficient as that generated when the compiler is running on a
  124.      64-bit machine because many optimizations that depend on being
  125.      able to represent a word on the target in an integral value on the
  126.      host cannot be performed.  Building cross-compilers on the Alpha
  127.      for 32-bit machines has only been tested in a few cases and may
  128.      not work properly.
  129.      `make compare' may fail on old versions of OSF/1 unless you add
  130.      `-save-temps' to `CFLAGS'.  On these systems, the name of the
  131.      assembler input file is stored in the object file, and that makes
  132.      comparison fail if it differs between the `stage1' and `stage2'
  133.      compilations.  The option `-save-temps' forces a fixed name to be
  134.      used for the assembler input file, instead of a randomly chosen
  135.      name in `/tmp'.  Do not add `-save-temps' unless the comparisons
  136.      fail without that option.  If you add `-save-temps', you will have
  137.      to manually delete the `.i' and `.s' files after each series of
  138.      compilations.
  139.      GNU CC now supports both the native (ECOFF) debugging format used
  140.      by DBX and GDB and an encapsulated STABS format for use only with
  141.      GDB.  See the disc