home *** CD-ROM | disk | FTP | other *** search
/ PC-Online 1996 May / PCOnline_05_1996.bin / linux / source / d / libgxx / release.lib < prev   
Encoding:
Text File  |  1995-10-10  |  5.5 KB  |  137 lines

  1. This is the ELF binary release, 2.6.2.5, of the GNU C++ library 2.6.2
  2. for Linux. You have to install gcc 2.7.0, which has yet to be released,
  3. or above to compile it. You need gcc 2.6.3/ELF and libc 5.0.9 or above
  4. to use it. Please don't use it with older gcc or libc.
  5.  
  6. libstdc++.a and stl are in. But libg++-2.6.2/libstdc++/stl/README:
  7.  
  8. ================
  9. This directory contains Hewlett-Packard's implementation of
  10. the C++ Standard Template Library.
  11. It is the October 21, 1994.
  12. It has been extensively modified so it can be compiled by g++.
  13. (Version 2.6.1 or newer is recommended.)
  14. Some of these hacks are pretty ugly, but are needed to work around
  15. bugs in g++ (which we are working on).
  16. Thanks to Carsten Bormann <cabo@informatik.uni-bremen.de> for
  17. coming up with many of these work-arounds.  However, I have
  18. come up with alternate (possibly inferior!) work-arounds in some cases.
  19.  
  20. It is easy to crash g++ by using STL.  (I found the function-object
  21. templates in function.h to be especially fruitful in that respect!)
  22. ***SO DON'T BOTHER SENDING BUG REPORTS THAT STL CAUSES G++ TO CRASH***,
  23. or otherwise fails to compile it. unless you also have a fix or
  24. improved work-around!!!  WE KNOW!
  25.  
  26. You should either compile without -O, or also use -felide-constuctors.
  27.  
  28. Also note that this is based on a pre-Draft Standard for C++.
  29. Thinks are likely to change.  For example, the header file names
  30. are very likely to change.  The Allocator interface will change.  Etc, etc.
  31. CYGNUS MAKES NO COMMITTMENT (yet) TO SUPPORT BACKWARD COMPATIBILITY FOR STL.
  32.  
  33. For examples if things that should work, look in the ../tests directory.
  34.  
  35.     --Per Bothner
  36. Cygnus Support     bothner@cygnus.com
  37.     
  38. -----------
  39. Here is Carsten Bormann's notes on his changes:
  40.  
  41. This is a set of seriously bletcherous hacks to HP's wonderful STL
  42. library.  The objective is to hammer STL through GCC 2.6.1 (2.6.0
  43. seems to work, too, until you run into one of its bugs) so that us
  44. academic types can play with STL, not to make STL better in any way.
  45.  
  46. You need to have the STL release from butler.hpl.hp.com:stl/sharfile.Z
  47. that has as its first line in the read.me:
  48.  
  49. >> This release (dated October 21, 1994) is a minor bug fix release. <<
  50.  
  51. Many of these changes make the library much less efficient.  All
  52. changes (except vector<bool> -- see below) are due to bugs (or
  53. non-features) in GCC, not due to any problems in STL.  Do not judge
  54. the performance of STL (code space, data space, compile time
  55. complexity, run time complexity) from these hacks -- they will be much
  56. better when GCC implements more of Standard C++.  May the authors of
  57. STL forgive me.
  58.  
  59. The class templates generally have been hacked in the following ways:
  60.  
  61. 1) Static data members have been eliminated, generally by making them
  62. non-static members or member functions (both of which generally
  63. seriously impairs performance -- e.g., each rb_tree iterator now
  64. carries a copy of NIL since there is no other place to put it).  The
  65. template list<> has suffered most.
  66.  
  67. Allocators are still static members, since I changed defalloc.h to
  68. have static members only.  (This makes allocators less useful, but
  69. still useable.)  (Note that a static member without data need not be
  70. initialized.)
  71.  
  72. 2) For member functions defined outside the class template, parameters
  73. of type tmpl<T>::something have been changed.  In some cases, a class
  74. derived from the type has been used; in some cases the function simply
  75. has been made inline (again causing code bloat).
  76.  
  77. 3) A number of function templates in iterator.h have been declared
  78. again for derived classes defined by templates, usually by making them
  79. friend functions and using the name injection feature of GCC.  I don't
  80. understand the relevant sections of the WP, so I don't know if this
  81. hack will cease to work in more conforming versions of GCC or become
  82. unneccessary or simply STL won't work with standard C++.  Some of
  83. the necessary friends may still be missing...
  84.  
  85. defalloc.h has lost much of its functionality: see above.
  86.  
  87. bool.h has been made ineffective, since GCC supports bool.
  88.  
  89. Finally, bit_vector has been changed into a proper specialization of
  90. vector<bool>.
  91. [Not in this libstdc++ release. -PB]
  92.  
  93. demo.cc and Makefile build a small demo program for a number of
  94. features of STL.  This is not a test suite, so I certainly have not
  95. found all my mistakes (could anyone in possession of such a test suite
  96. please run it over these hacks?).  Send bug reports (that follow GNU
  97. bug reporting conventions) to
  98.  
  99.     cabo@informatik.uni-bremen.de
  100.  
  101. Note that I generally do not have time to answer questions about STL.
  102.  
  103. Carsten Bormann
  104. ====================
  105.  
  106. The primary ftp sites for the compiler/C library are tsx-11.mit.edu
  107. under pub/linux/packages/GCC and sunsite.unc.edu under pub/Linux/GCC.
  108.  
  109. I strongly discourage compiling libg++ 2.6.2.5 yourself unless you know
  110. what you are doing. I have made many modifications/bug fixes. I have
  111. to work around the gcc bugs. I hope my changes can be merged in the
  112. next libg++ 2.6.x or 2.7.x and gcc gets fixed. But I don't know what
  113. will happen.
  114.  
  115. To compile libg++ 2.6.2.5 is tricky. You should first apply the
  116. patches, libg++-2.6.2.5.diff.gz, against libg++ 2.6.2. You have to
  117. make sure all the libio/*.c are never compiled, libio/_G_config.h 
  118. is never built and not used for Linux. I don't have the time to
  119. document what I did. You have to figure it out yourself.
  120.  
  121. The file list:
  122.  
  123. 1. libg++-2.6.2.5.bin.tar.gz
  124.  
  125.   REQUIRED. Both static and shared ELF libraries for libg++,
  126.   libiostream, and libcurses++, header files and genclass.
  127.   It is libg++ 2.6.2.5. To install
  128.  
  129.   su root
  130.   cd /
  131.   gzip -dc libg++-2.6.2.5.bin.tar.gz | tar xvvf -
  132.  
  133.  
  134. H.J.
  135. hjl@nynexst.com
  136. 05/20/95
  137.