home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / share / doc / cpp / README.Debian < prev   
Encoding:
Text File  |  2010-10-05  |  5.9 KB  |  163 lines

  1.         The Debian GNU Compiler Collection Setup
  2.         ========================================
  3.  
  4. Abstract
  5. --------
  6.  
  7. Debian uses a default version of GCC for most packages; however, some
  8. packages require another version.  So, Debian allows several versions
  9. of GCC to coexist on the same system, and selects the default version
  10. by means of the gcc-defaults package, which creates symbolic links as
  11. appropriate.
  12.  
  13. Versions of GCC present in Debian Squeeze
  14. -----------------------------------------
  15.  
  16. - GCC 4.3 is the default compiler for C, C++, Objective-C, Objective-C++,
  17.   Ada, Fortran 95, and Java on all architectures. This package also
  18.   provides libgcc1, libgcc2 (m68k) and libgcc4 (hppa) which contain the
  19.   GCC intrinsics, and  libstdc++6.
  20.  
  21. - GCC 4.1 is the default compiler for D and Pascal.
  22.  
  23. - GCC 3.4 is provided for the C, but is not the default for any language.
  24.  
  25. - GCC 3.3 is not provided anymore; it is used to build libstdc++5 on
  26.   the amd64 and i386 architectures. It is expected that libstdc++5 is
  27.   not available anymore for the release following Lenny.
  28.  
  29. - GCC 2.95 and GCC 2.7.2.3 were removed for the release of Lenny.
  30.  
  31. How are the default compilers selected?
  32. ---------------------------------------
  33.  
  34. Starting in Debian 3.0, there is now a gcc-defaults package set. This
  35. creates the actual packages for gcc, gnat, g++, gobjc, chill, gcj, gij,
  36. gdc and gpc.  These packages will depend on the corresponding default
  37. compiler for that architecture. For Debian 4.0 for example, "gcc"
  38. depends on "gcc-4.1", which means that the "gcc-4.1" package will
  39. install a binary called "gcc-4.1", which is symlinked to in the "gcc"
  40. package as "gcc".
  41.  
  42. This may seem confusing, but what it allows you do to is install more
  43. than one version of the GCC compiler collection at the same time,
  44. making sure you are always using the one preferred for that
  45. architecture. To use the other compiler, simply set CC=gcc-4.1, or
  46. similar.
  47.  
  48. The default compiler versions for Debian GNU/Linux on i386 are
  49. (minor version numbers omitted):
  50.  
  51.     cpp        : cpp-4.4
  52.     gcc        : gcc-4.4
  53.     g++        : g++-4.4
  54.     gfortran    : gfortran-4.4
  55.     gcj        : gcj-4.4
  56.     gij        : gij-4.4
  57.     gobjc        : gobjc-4.4
  58.     gobjc++        : gobjc++-4.4
  59.     gpc        : gpc-4.1
  60.     gdc        : gdc-4.3
  61.  
  62. Most of the documentation for GCC including the manual pages is
  63. licensed under the GFDL and therefore not included in the main section.
  64.  
  65. Thanks to gcc-defaults, each architecture can choose its own preferred
  66. compiler for each language, and that preference can change without
  67. requiring a complete rebuild of both compiler packages for all
  68. architectures.
  69.  
  70. Practical implications
  71. ----------------------
  72.  
  73. The most important practical implications are in the merging/linking
  74. of object files built with different compilers; If you use the 4.1
  75. C compiler, you should use the gcc-4.1 compiler driver for all your
  76. work.  When configuring sources, use
  77.  
  78.     CC=gcc-4.1 ./configure <configure options>     # bash
  79.     setenv CC gcc-4.1; ./configure <options>    # csh
  80.  
  81. When calling make, use make CC=gcc-4.1.
  82.  
  83. C Application Binary Interface
  84. ------------------------------
  85.  
  86. Starting with Debian 4.0 (lenny), gcc-4.1 and newer compilers do
  87. support the long double datatype with 128bit on the alpha, powerpc,
  88. s390 and sparc architectures.  Libraries and applications using this
  89. datatype have to be rebuilt using the compiler versions in Lenny
  90. unless these depend on libc6/libc6.1 and libstdc++6, which still have
  91. compatibility with a 64bit long double datatype.
  92.  
  93. gcc/g++/... are not handled using alternatives
  94. ----------------------------------------------
  95.  
  96. The symlinks in /usr/bin (gcc, g++, ...) are not handled using the Debian
  97. alternative mechanism. There are differences in the architecture specific
  98. ABI on some architectures and the C++ ABI differs as well. Having the
  99. symlinks managed by alternatives doesn't allow reliable builds with the
  100. same major/minor version of the compiler. To use another compiler version,
  101. set the appropriate environment variables as described above in the section
  102. "Practical implications".
  103.  
  104. C++ libraries
  105. -------------
  106.  
  107. To use the libstdc++ library for debugging (found in the
  108. libstd++6-<GCC version>-dbg package), add /usr/lib/debug to your
  109. LD_LIBRARY_PATH. For gdb to display the source you need to get the
  110. correspondig gcc-X.Y source package, unpack the source and point gdb
  111. to the location of the source (dir directive).
  112.  
  113. C++ Application Binary Interface
  114. --------------------------------
  115.  
  116. Sometimes, the C++ ABI of GCC changes.  It is impossible to link
  117. object files that obey different ABIs into an executable.  When the
  118. ABI changes, Debian provides a new version of libstdc++ with a new
  119. soname.
  120.  
  121. Version 4 of the ABI was used by GCC 3.0 and 3.1; it is no longer
  122. supported.
  123.  
  124. Version 5 of the ABI is common to GCC 3.2 and 3.3; GCC 3.3
  125. provides libstdc++5. It is only supported as a runtime library.
  126.  
  127. Version 6 of the ABI is common to GCC 3.4 and later; GCC 4.3 provides
  128. libstdc++6.
  129.  
  130. Bugs
  131. ----
  132.  
  133. Before submitting a bug, please read README.Bugs in this directory.
  134.  
  135. Feedback appreciated
  136. --------------------
  137.  
  138. Feedback about this document is appreciated; preferably as a Severity:
  139. wishlist bug against Package: gcc . For general discussions and
  140. questions, subscribe and/or email the debian-gcc@lists.debian.org mailing
  141. list.
  142.  
  143. Maintainers of these packages
  144. -----------------------------
  145.  
  146. Matthias Klose <doko@debian.org>
  147. Ray Dassen <jdassen@debian.org>
  148. Philip Blundell <pb@debian.org>            (arm-linux)
  149. Jeff Bailey <jbailey@nisa.net>            (hurd-i386)
  150. Joel Baker <fenton@debian.org>            (netbsd-i386)
  151. Ben Collins <bcollins@debian.org>        (sparc-linux)
  152. Falk Hueffner <falk@debian.org>            (alpha-linux)
  153. Randolph Chung <tausq@debian.org>        (ia64-linux, hppa-linux)
  154. Thiemo Seufer <ths@networkno.de>        (mips*-linux)
  155. Dan Jacobowitz <dan@debian.org>            (powerpc-linux)
  156. Gerhard Tonn <GerhardTonn@swol.de>        (s390-linux)
  157. Roman Zippel <zippel@linux-m68k.org>        (m68k-linux)
  158. Ludovic Brenta <ludovic.brenta@insalien.org>    (gnat)
  159. Arthur Loiret <arthur.loiret@gmail.com>        (gdc)
  160.  
  161. ===============================================================================
  162.  
  163.