From 6a46171e8281a2488ed5bb83918c416787cf22f0 Mon Sep 17 00:00:00 2001
From: cvs2svn
Date: Thu, 10 Oct 2002 04:41:01 +0000
Subject: This commit was manufactured by cvs2svn to create tag
'gcc-vendor-gcc_3_2_anoncvs_20021009'.
---
contrib/gcc/cccp.1 | 674 --
contrib/gcc/config/alpha/crtbegin.asm | 192 -
contrib/gcc/config/alpha/crtend.asm | 108 -
contrib/gcc/config/alpha/gdb-osf12.h | 26 -
contrib/gcc/config/alpha/gdb-osf2.h | 26 -
contrib/gcc/config/alpha/gdb.h | 26 -
contrib/gcc/config/alpha/osf2.h | 32 -
contrib/gcc/config/i386/freebsd-elf.h | 257 -
contrib/gcc/config/i386/freebsd.h.fixed | 257 -
contrib/gcc/config/i386/x-freebsd | 3 -
contrib/gcc/cp/cfns.h | 472 --
contrib/gcc/cp/g++.c | 582 --
contrib/gcc/cp/reno.texi | 752 --
contrib/gcc/cpp.1 | 1 -
contrib/gcc/doc/install-old.texi | 725 --
contrib/gcc/doc/install.texi | 3902 -----------
contrib/gcc/doc/install.texi2html | 31 -
contrib/gcc/f/g77.1 | 365 -
contrib/gcc/gcc.1 | 4191 ------------
contrib/gcc/objc/sendmsg.c | 651 --
contrib/libf2c/ChangeLog.egcs | 200 -
contrib/libf2c/libI77/rawio.h | 45 -
contrib/libg++/COPYING | 339 -
contrib/libg++/COPYING.LIB | 481 --
contrib/libg++/include/ChangeLog | 990 ---
contrib/libg++/include/ansidecl.h | 141 -
contrib/libg++/include/demangle.h | 89 -
contrib/libg++/include/floatformat.h | 88 -
contrib/libg++/include/getopt.h | 129 -
contrib/libg++/include/libiberty.h | 137 -
contrib/libg++/include/obstack.h | 518 --
contrib/libg++/libg++/ChangeLog | 2271 ------
contrib/libg++/libg++/Makefile.in | 263 -
contrib/libg++/libg++/NEWS | 573 --
contrib/libg++/libg++/README | 247 -
contrib/libg++/libg++/README.SHLIB | 38 -
contrib/libg++/libg++/TODO | 13 -
contrib/libg++/libg++/g++FAQ.texi | 1986 ------
contrib/libg++/libg++/genclass/ChangeLog | 27 -
contrib/libg++/libg++/genclass/Makefile.in | 23 -
contrib/libg++/libg++/genclass/configure.in | 26 -
contrib/libg++/libg++/genclass/expected.out | 1027 ---
contrib/libg++/libg++/genclass/genclass.sh | 452 --
contrib/libg++/libg++/genclass/gentest.sh | 174 -
contrib/libg++/libg++/libg++.texi | 4803 -------------
contrib/libg++/libg++/src/ACG.cc | 292 -
contrib/libg++/libg++/src/ACG.h | 68 -
contrib/libg++/libg++/src/AllocRing.cc | 110 -
contrib/libg++/libg++/src/AllocRing.h | 62 -
contrib/libg++/libg++/src/Binomial.cc | 34 -
contrib/libg++/libg++/src/Binomial.h | 55 -
contrib/libg++/libg++/src/BitSet.cc | 1104 ---
contrib/libg++/libg++/src/BitSet.h | 360 -
contrib/libg++/libg++/src/BitString.cc | 1608 -----
contrib/libg++/libg++/src/BitString.h | 763 ---
contrib/libg++/libg++/src/ChangeLog | 1213 ----
contrib/libg++/libg++/src/Complex.h | 10 -
contrib/libg++/libg++/src/CursesW.cc | 257 -
contrib/libg++/libg++/src/CursesW.h | 603 --
contrib/libg++/libg++/src/DLList.cc | 327 -
contrib/libg++/libg++/src/DLList.h | 139 -
contrib/libg++/libg++/src/DiscUnif.cc | 29 -
contrib/libg++/libg++/src/DiscUnif.h | 72 -
contrib/libg++/libg++/src/Erlang.cc | 32 -
contrib/libg++/libg++/src/Erlang.h | 68 -
contrib/libg++/libg++/src/Fix.cc | 670 --
contrib/libg++/libg++/src/Fix.h | 523 --
contrib/libg++/libg++/src/Fix16.cc | 238 -
contrib/libg++/libg++/src/Fix16.h | 648 --
contrib/libg++/libg++/src/Fix24.cc | 329 -
contrib/libg++/libg++/src/Fix24.h | 597 --
contrib/libg++/libg++/src/Geom.cc | 30 -
contrib/libg++/libg++/src/Geom.h | 52 -
contrib/libg++/libg++/src/GetOpt.cc | 253 -
contrib/libg++/libg++/src/GetOpt.h | 129 -
contrib/libg++/libg++/src/HypGeom.cc | 30 -
contrib/libg++/libg++/src/HypGeom.h | 70 -
contrib/libg++/libg++/src/Incremental.h | 12 -
contrib/libg++/libg++/src/Intdouble.cc | 142 -
contrib/libg++/libg++/src/Integer.cc | 2282 -------
contrib/libg++/libg++/src/Integer.h | 1134 ---
contrib/libg++/libg++/src/Integer.hP | 30 -
contrib/libg++/libg++/src/LogNorm.cc | 36 -
contrib/libg++/libg++/src/LogNorm.h | 78 -
contrib/libg++/libg++/src/MLCG.cc | 103 -
contrib/libg++/libg++/src/MLCG.h | 87 -
contrib/libg++/libg++/src/Makefile.in | 75 -
contrib/libg++/libg++/src/NegExp.cc | 28 -
contrib/libg++/libg++/src/NegExp.h | 55 -
contrib/libg++/libg++/src/Normal.cc | 60 -
contrib/libg++/libg++/src/Normal.h | 66 -
contrib/libg++/libg++/src/Obstack.cc | 127 -
contrib/libg++/libg++/src/Obstack.h | 218 -
contrib/libg++/libg++/src/Pix.h | 5 -
contrib/libg++/libg++/src/Poisson.cc | 36 -
contrib/libg++/libg++/src/Poisson.h | 51 -
contrib/libg++/libg++/src/RNG.cc | 131 -
contrib/libg++/libg++/src/RNG.h | 58 -
contrib/libg++/libg++/src/Random.cc | 4 -
contrib/libg++/libg++/src/Random.h | 54 -
contrib/libg++/libg++/src/Rational.cc | 416 --
contrib/libg++/libg++/src/Rational.h | 290 -
contrib/libg++/libg++/src/Regex.cc | 149 -
contrib/libg++/libg++/src/Regex.h | 78 -
contrib/libg++/libg++/src/RndInt.cc | 4 -
contrib/libg++/libg++/src/RndInt.h | 176 -
contrib/libg++/libg++/src/SLList.cc | 247 -
contrib/libg++/libg++/src/SLList.h | 129 -
contrib/libg++/libg++/src/Sample.cc | 241 -
contrib/libg++/libg++/src/SmplHist.cc | 112 -
contrib/libg++/libg++/src/SmplHist.h | 72 -
contrib/libg++/libg++/src/SmplStat.cc | 160 -
contrib/libg++/libg++/src/SmplStat.h | 69 -
contrib/libg++/libg++/src/String.cc | 1307 ----
contrib/libg++/libg++/src/String.h | 1284 ----
contrib/libg++/libg++/src/Uniform.cc | 27 -
contrib/libg++/libg++/src/Uniform.h | 71 -
contrib/libg++/libg++/src/Weibull.cc | 33 -
contrib/libg++/libg++/src/Weibull.h | 74 -
contrib/libg++/libg++/src/bitand.c | 41 -
contrib/libg++/libg++/src/bitany.c | 38 -
contrib/libg++/libg++/src/bitblt.c | 97 -
contrib/libg++/libg++/src/bitclear.c | 37 -
contrib/libg++/libg++/src/bitcopy.c | 41 -
contrib/libg++/libg++/src/bitcount.c | 64 -
contrib/libg++/libg++/src/bitdo1.h | 32 -
contrib/libg++/libg++/src/bitdo2.h | 184 -
contrib/libg++/libg++/src/bitinvert.c | 37 -
contrib/libg++/libg++/src/bitlcomp.c | 81 -
contrib/libg++/libg++/src/bitprims.h | 125 -
contrib/libg++/libg++/src/bitset1.c | 37 -
contrib/libg++/libg++/src/bitxor.c | 41 -
contrib/libg++/libg++/src/bool.h | 24 -
contrib/libg++/libg++/src/builtin.cc | 4 -
contrib/libg++/libg++/src/builtin.h | 125 -
contrib/libg++/libg++/src/compare.cc | 4 -
contrib/libg++/libg++/src/compare.h | 91 -
contrib/libg++/libg++/src/configure.in | 45 -
contrib/libg++/libg++/src/depend | 849 ---
contrib/libg++/libg++/src/dtoa.cc | 335 -
contrib/libg++/libg++/src/error.cc | 49 -
contrib/libg++/libg++/src/fmtq.cc | 29 -
contrib/libg++/libg++/src/gcd.cc | 52 -
contrib/libg++/libg++/src/gen/AVLMap.ccP | 614 --
contrib/libg++/libg++/src/gen/AVLMap.hP | 141 -
contrib/libg++/libg++/src/gen/AVLSet.ccP | 892 ---
contrib/libg++/libg++/src/gen/AVLSet.hP | 152 -
contrib/libg++/libg++/src/gen/AVec.ccP | 397 --
contrib/libg++/libg++/src/gen/AVec.hP | 118 -
contrib/libg++/libg++/src/gen/BSTSet.ccP | 377 -
contrib/libg++/libg++/src/gen/BSTSet.hP | 152 -
contrib/libg++/libg++/src/gen/Bag.ccP | 74 -
contrib/libg++/libg++/src/gen/Bag.hP | 79 -
contrib/libg++/libg++/src/gen/CHBag.ccP | 210 -
contrib/libg++/libg++/src/gen/CHBag.hP | 76 -
contrib/libg++/libg++/src/gen/CHMap.ccP | 168 -
contrib/libg++/libg++/src/gen/CHMap.hP | 104 -
contrib/libg++/libg++/src/gen/CHNode.ccP | 21 -
contrib/libg++/libg++/src/gen/CHNode.hP | 43 -
contrib/libg++/libg++/src/gen/CHSet.ccP | 273 -
contrib/libg++/libg++/src/gen/CHSet.hP | 84 -
contrib/libg++/libg++/src/gen/DLDeque.ccP | 4 -
contrib/libg++/libg++/src/gen/DLDeque.hP | 130 -
contrib/libg++/libg++/src/gen/DLList.ccP | 339 -
contrib/libg++/libg++/src/gen/DLList.hP | 157 -
contrib/libg++/libg++/src/gen/Deque.ccP | 11 -
contrib/libg++/libg++/src/gen/Deque.hP | 57 -
contrib/libg++/libg++/src/gen/FPQueue.ccP | 4 -
contrib/libg++/libg++/src/gen/FPQueue.hP | 112 -
contrib/libg++/libg++/src/gen/FPStack.ccP | 4 -
contrib/libg++/libg++/src/gen/FPStack.hP | 114 -
contrib/libg++/libg++/src/gen/FPlex.ccP | 167 -
contrib/libg++/libg++/src/gen/FPlex.hP | 253 -
contrib/libg++/libg++/src/gen/List.ccP | 972 ---
contrib/libg++/libg++/src/gen/List.hP | 279 -
contrib/libg++/libg++/src/gen/MPlex.ccP | 848 ---
contrib/libg++/libg++/src/gen/MPlex.hP | 414 --
contrib/libg++/libg++/src/gen/Map.ccP | 59 -
contrib/libg++/libg++/src/gen/Map.hP | 87 -
contrib/libg++/libg++/src/gen/OSLBag.ccP | 196 -
contrib/libg++/libg++/src/gen/OSLBag.hP | 91 -
contrib/libg++/libg++/src/gen/OSLSet.ccP | 321 -
contrib/libg++/libg++/src/gen/OSLSet.hP | 101 -
contrib/libg++/libg++/src/gen/OXPBag.ccP | 221 -
contrib/libg++/libg++/src/gen/OXPBag.hP | 73 -
contrib/libg++/libg++/src/gen/OXPSet.ccP | 280 -
contrib/libg++/libg++/src/gen/OXPSet.hP | 102 -
contrib/libg++/libg++/src/gen/PHPQ.ccP | 339 -
contrib/libg++/libg++/src/gen/PHPQ.hP | 108 -
contrib/libg++/libg++/src/gen/PQ.ccP | 63 -
contrib/libg++/libg++/src/gen/PQ.hP | 78 -
contrib/libg++/libg++/src/gen/PSList.hP | 32 -
contrib/libg++/libg++/src/gen/PVec.hP | 79 -
contrib/libg++/libg++/src/gen/Plex.ccP | 222 -
contrib/libg++/libg++/src/gen/Plex.hP | 494 --
contrib/libg++/libg++/src/gen/Queue.ccP | 14 -
contrib/libg++/libg++/src/gen/Queue.hP | 51 -
contrib/libg++/libg++/src/gen/RAVLMap.ccP | 690 --
contrib/libg++/libg++/src/gen/RAVLMap.hP | 147 -
contrib/libg++/libg++/src/gen/RPlex.ccP | 477 --
contrib/libg++/libg++/src/gen/RPlex.hP | 257 -
contrib/libg++/libg++/src/gen/SLBag.ccP | 105 -
contrib/libg++/libg++/src/gen/SLBag.hP | 96 -
contrib/libg++/libg++/src/gen/SLList.ccP | 292 -
contrib/libg++/libg++/src/gen/SLList.hP | 137 -
contrib/libg++/libg++/src/gen/SLQueue.ccP | 4 -
contrib/libg++/libg++/src/gen/SLQueue.hP | 108 -
contrib/libg++/libg++/src/gen/SLSet.ccP | 77 -
contrib/libg++/libg++/src/gen/SLSet.hP | 87 -
contrib/libg++/libg++/src/gen/SLStack.ccP | 4 -
contrib/libg++/libg++/src/gen/SLStack.hP | 109 -
contrib/libg++/libg++/src/gen/Set.ccP | 117 -
contrib/libg++/libg++/src/gen/Set.hP | 78 -
contrib/libg++/libg++/src/gen/SkipBag.ccP | 322 -
contrib/libg++/libg++/src/gen/SkipBag.hP | 171 -
contrib/libg++/libg++/src/gen/SkipMap.ccP | 307 -
contrib/libg++/libg++/src/gen/SkipMap.hP | 176 -
contrib/libg++/libg++/src/gen/SkipSet.ccP | 395 --
contrib/libg++/libg++/src/gen/SkipSet.hP | 187 -
contrib/libg++/libg++/src/gen/SplayBag.ccP | 445 --
contrib/libg++/libg++/src/gen/SplayBag.hP | 126 -
contrib/libg++/libg++/src/gen/SplayMap.ccP | 401 --
contrib/libg++/libg++/src/gen/SplayMap.hP | 154 -
contrib/libg++/libg++/src/gen/SplayNode.ccP | 21 -
contrib/libg++/libg++/src/gen/SplayNode.hP | 44 -
contrib/libg++/libg++/src/gen/SplayPQ.ccP | 523 --
contrib/libg++/libg++/src/gen/SplayPQ.hP | 123 -
contrib/libg++/libg++/src/gen/SplaySet.ccP | 499 --
contrib/libg++/libg++/src/gen/SplaySet.hP | 145 -
contrib/libg++/libg++/src/gen/Stack.ccP | 11 -
contrib/libg++/libg++/src/gen/Stack.hP | 51 -
contrib/libg++/libg++/src/gen/VHBag.ccP | 264 -
contrib/libg++/libg++/src/gen/VHBag.hP | 84 -
contrib/libg++/libg++/src/gen/VHMap.ccP | 210 -
contrib/libg++/libg++/src/gen/VHMap.hP | 84 -
contrib/libg++/libg++/src/gen/VHSet.ccP | 263 -
contrib/libg++/libg++/src/gen/VHSet.hP | 96 -
contrib/libg++/libg++/src/gen/VOHSet.ccP | 305 -
contrib/libg++/libg++/src/gen/VOHSet.hP | 88 -
contrib/libg++/libg++/src/gen/VQueue.ccP | 83 -
contrib/libg++/libg++/src/gen/VQueue.hP | 130 -
contrib/libg++/libg++/src/gen/VStack.ccP | 66 -
contrib/libg++/libg++/src/gen/VStack.hP | 120 -
contrib/libg++/libg++/src/gen/Vec.ccP | 478 --
contrib/libg++/libg++/src/gen/Vec.hP | 135 -
contrib/libg++/libg++/src/gen/XPBag.ccP | 72 -
contrib/libg++/libg++/src/gen/XPBag.hP | 98 -
contrib/libg++/libg++/src/gen/XPDeque.ccP | 4 -
contrib/libg++/libg++/src/gen/XPDeque.hP | 133 -
contrib/libg++/libg++/src/gen/XPPQ.ccP | 143 -
contrib/libg++/libg++/src/gen/XPPQ.hP | 105 -
contrib/libg++/libg++/src/gen/XPQueue.ccP | 4 -
contrib/libg++/libg++/src/gen/XPQueue.hP | 114 -
contrib/libg++/libg++/src/gen/XPSet.ccP | 63 -
contrib/libg++/libg++/src/gen/XPSet.hP | 89 -
contrib/libg++/libg++/src/gen/XPStack.ccP | 4 -
contrib/libg++/libg++/src/gen/XPStack.hP | 115 -
contrib/libg++/libg++/src/gen/XPlex.ccP | 397 --
contrib/libg++/libg++/src/gen/XPlex.hP | 238 -
contrib/libg++/libg++/src/gen/defs.hP | 57 -
contrib/libg++/libg++/src/gen/intSList.hP | 33 -
contrib/libg++/libg++/src/gen/intVec.hP | 80 -
contrib/libg++/libg++/src/generic.h | 54 -
contrib/libg++/libg++/src/getpagesize.h | 27 -
contrib/libg++/libg++/src/hash.cc | 56 -
contrib/libg++/libg++/src/ioob.cc | 32 -
contrib/libg++/libg++/src/lg.cc | 32 -
contrib/libg++/libg++/src/libc.h | 1 -
contrib/libg++/libg++/src/malloc.c | 2690 --------
contrib/libg++/libg++/src/minmax.cc | 5 -
contrib/libg++/libg++/src/minmax.h | 65 -
contrib/libg++/libg++/src/osfcn.h | 17 -
contrib/libg++/libg++/src/pow.cc | 70 -
contrib/libg++/libg++/src/sqrt.cc | 43 -
contrib/libg++/libg++/src/std.h | 35 -
contrib/libg++/libg++/src/strclass.h | 5 -
contrib/libg++/libg++/src/swap.h | 3 -
contrib/libg++/libg++/src/sysent.h | 2 -
contrib/libg++/libg++/src/timer.c | 165 -
contrib/libg++/libg++/src/typemacros.h | 8 -
contrib/libg++/libg++/test-install/ChangeLog | 74 -
contrib/libg++/libg++/test-install/Foo.cc | 89 -
contrib/libg++/libg++/test-install/Foo.h | 24 -
contrib/libg++/libg++/test-install/Makefile.in | 170 -
contrib/libg++/libg++/test-install/a.cc | 10 -
contrib/libg++/libg++/test-install/bf.cc | 18 -
contrib/libg++/libg++/test-install/bm.cc | 14 -
contrib/libg++/libg++/test-install/configure.in | 25 -
contrib/libg++/libg++/test-install/ex_bar.cc | 123 -
contrib/libg++/libg++/test-install/expected.out | 15 -
contrib/libg++/libg++/test-install/foo_func.cc | 17 -
contrib/libg++/libg++/test-install/foo_main.cc | 40 -
contrib/libg++/libg++/tests/ChangeLog | 346 -
contrib/libg++/libg++/tests/Makefile.in | 22 -
contrib/libg++/libg++/tests/Makefile.sh | 174 -
contrib/libg++/libg++/tests/configure.in | 27 -
contrib/libg++/libg++/tests/depend | 161 -
contrib/libg++/libg++/tests/tBag.cc | 540 --
contrib/libg++/libg++/tests/tBag.exp | 35 -
contrib/libg++/libg++/tests/tBag.inp | 0
contrib/libg++/libg++/tests/tBitSet.cc | 220 -
contrib/libg++/libg++/tests/tBitSet.exp | 49 -
contrib/libg++/libg++/tests/tBitSet.inp | 0
contrib/libg++/libg++/tests/tBitString.cc | 327 -
contrib/libg++/libg++/tests/tBitString.exp | 79 -
contrib/libg++/libg++/tests/tBitString.inp | 0
contrib/libg++/libg++/tests/tCurses.cc | 80 -
contrib/libg++/libg++/tests/tCurses.inp | 2 -
contrib/libg++/libg++/tests/tDeque.cc | 168 -
contrib/libg++/libg++/tests/tDeque.exp | 6 -
contrib/libg++/libg++/tests/tDeque.inp | 0
contrib/libg++/libg++/tests/tFile.cc | 371 -
contrib/libg++/libg++/tests/tFile.exp | 49 -
contrib/libg++/libg++/tests/tFile.inp | 4 -
contrib/libg++/libg++/tests/tFix.cc | 101 -
contrib/libg++/libg++/tests/tFix.exp | 70 -
contrib/libg++/libg++/tests/tFix.inp | 0
contrib/libg++/libg++/tests/tFix16.cc | 110 -
contrib/libg++/libg++/tests/tFix16.exp | 64 -
contrib/libg++/libg++/tests/tFix16.inp | 0
contrib/libg++/libg++/tests/tFix24.cc | 113 -
contrib/libg++/libg++/tests/tFix24.exp | 61 -
contrib/libg++/libg++/tests/tFix24.inp | 0
contrib/libg++/libg++/tests/tGetOpt.cc | 65 -
contrib/libg++/libg++/tests/tGetOpt.exp | 11 -
contrib/libg++/libg++/tests/tGetOpt.inp | 0
contrib/libg++/libg++/tests/tInteger.cc | 437 --
contrib/libg++/libg++/tests/tInteger.exp | 48 -
contrib/libg++/libg++/tests/tInteger.inp | 3 -
contrib/libg++/libg++/tests/tLList.cc | 236 -
contrib/libg++/libg++/tests/tLList.exp | 49 -
contrib/libg++/libg++/tests/tLList.inp | 0
contrib/libg++/libg++/tests/tList.cc | 129 -
contrib/libg++/libg++/tests/tList.exp | 39 -
contrib/libg++/libg++/tests/tList.inp | 0
contrib/libg++/libg++/tests/tMap.cc | 339 -
contrib/libg++/libg++/tests/tMap.exp | 25 -
contrib/libg++/libg++/tests/tMap.inp | 0
contrib/libg++/libg++/tests/tObstack.cc | 80 -
contrib/libg++/libg++/tests/tObstack.exp | 32 -
contrib/libg++/libg++/tests/tObstack.inp | 5 -
contrib/libg++/libg++/tests/tPQ.cc | 275 -
contrib/libg++/libg++/tests/tPQ.exp | 15 -
contrib/libg++/libg++/tests/tPQ.inp | 0
contrib/libg++/libg++/tests/tPlex.cc | 719 --
contrib/libg++/libg++/tests/tPlex.exp | 10 -
contrib/libg++/libg++/tests/tPlex.inp | 0
contrib/libg++/libg++/tests/tQueue.cc | 209 -
contrib/libg++/libg++/tests/tQueue.exp | 15 -
contrib/libg++/libg++/tests/tQueue.inp | 0
contrib/libg++/libg++/tests/tRandom.cc | 103 -
contrib/libg++/libg++/tests/tRandom.exp | 85 -
contrib/libg++/libg++/tests/tRandom.inp | 0
contrib/libg++/libg++/tests/tRational.cc | 194 -
contrib/libg++/libg++/tests/tRational.exp | 41 -
contrib/libg++/libg++/tests/tRational.inp | 1 -
contrib/libg++/libg++/tests/tSet.cc | 744 --
contrib/libg++/libg++/tests/tSet.exp | 50 -
contrib/libg++/libg++/tests/tSet.inp | 0
contrib/libg++/libg++/tests/tStack.cc | 188 -
contrib/libg++/libg++/tests/tStack.exp | 8 -
contrib/libg++/libg++/tests/tStack.inp | 0
contrib/libg++/libg++/tests/tString.cc | 416 --
contrib/libg++/libg++/tests/tString.exp | 50 -
contrib/libg++/libg++/tests/tString.inp | 1 -
contrib/libg++/libg++/tests/tVec.cc | 96 -
contrib/libg++/libg++/tests/tVec.exp | 33 -
contrib/libg++/libg++/tests/tVec.inp | 0
contrib/libg++/libg++/tests/test_h.cc | 102 -
contrib/libg++/libg++/tests/tiLList.cc | 271 -
contrib/libg++/libg++/tests/tiLList.exp | 54 -
contrib/libg++/libiberty/ChangeLog | 1872 -----
contrib/libg++/libiberty/insque.c | 50 -
contrib/libg++/libiberty/strerror.c | 829 ---
contrib/libg++/libio/ChangeLog | 1799 -----
contrib/libg++/libio/Makefile.in | 124 -
contrib/libg++/libio/NEWS | 51 -
contrib/libg++/libio/PlotFile.cc | 157 -
contrib/libg++/libio/PlotFile.h | 89 -
contrib/libg++/libio/README | 30 -
contrib/libg++/libio/SFile.cc | 82 -
contrib/libg++/libio/SFile.h | 55 -
contrib/libg++/libio/builtinbuf.cc | 78 -
contrib/libg++/libio/builtinbuf.h | 68 -
contrib/libg++/libio/cleanup.c | 17 -
contrib/libg++/libio/depend | 327 -
contrib/libg++/libio/editbuf.cc | 717 --
contrib/libg++/libio/editbuf.h | 185 -
contrib/libg++/libio/filebuf.cc | 206 -
contrib/libg++/libio/filedoalloc.c | 102 -
contrib/libg++/libio/fileops.c | 755 --
contrib/libg++/libio/floatconv.c | 2350 -------
contrib/libg++/libio/floatio.h | 51 -
contrib/libg++/libio/fstream.cc | 110 -
contrib/libg++/libio/fstream.h | 92 -
contrib/libg++/libio/gen-params | 692 --
contrib/libg++/libio/genops.c | 852 ---
contrib/libg++/libio/indstream.cc | 121 -
contrib/libg++/libio/indstream.h | 77 -
contrib/libg++/libio/ioassign.cc | 49 -
contrib/libg++/libio/ioextend.cc | 132 -
contrib/libg++/libio/iofclose.c | 47 -
contrib/libg++/libio/iofdopen.c | 121 -
contrib/libg++/libio/iofflush.c | 38 -
contrib/libg++/libio/iofgetpos.c | 46 -
contrib/libg++/libio/iofgets.c | 40 -
contrib/libg++/libio/iofopen.c | 49 -
contrib/libg++/libio/iofprintf.c | 48 -
contrib/libg++/libio/iofputs.c | 37 -
contrib/libg++/libio/iofread.c | 38 -
contrib/libg++/libio/iofscanf.c | 48 -
contrib/libg++/libio/iofsetpos.c | 43 -
contrib/libg++/libio/ioftell.c | 45 -
contrib/libg++/libio/iofwrite.c | 44 -
contrib/libg++/libio/iogetdelim.c | 99 -
contrib/libg++/libio/iogetline.c | 74 -
contrib/libg++/libio/iogets.c | 47 -
contrib/libg++/libio/ioignore.c | 46 -
contrib/libg++/libio/iolibio.h | 53 -
contrib/libg++/libio/iomanip.cc | 90 -
contrib/libg++/libio/iomanip.h | 165 -
contrib/libg++/libio/iopadn.c | 65 -
contrib/libg++/libio/ioperror.c | 22 -
contrib/libg++/libio/iopopen.c | 222 -
contrib/libg++/libio/ioprims.c | 72 -
contrib/libg++/libio/ioprintf.c | 47 -
contrib/libg++/libio/ioputs.c | 38 -
contrib/libg++/libio/ioscanf.c | 47 -
contrib/libg++/libio/ioseekoff.c | 43 -
contrib/libg++/libio/ioseekpos.c | 39 -
contrib/libg++/libio/iosetbuffer.c | 36 -
contrib/libg++/libio/iosetvbuf.c | 78 -
contrib/libg++/libio/iosprintf.c | 47 -
contrib/libg++/libio/iosscanf.c | 47 -
contrib/libg++/libio/iostdio.h | 114 -
contrib/libg++/libio/iostream.cc | 821 ---
contrib/libg++/libio/iostream.h | 254 -
contrib/libg++/libio/iostream.texi | 1971 ------
contrib/libg++/libio/iostreamP.h | 26 -
contrib/libg++/libio/iostrerror.c | 12 -
contrib/libg++/libio/ioungetc.c | 35 -
contrib/libg++/libio/iovfprintf.c | 881 ---
contrib/libg++/libio/iovfscanf.c | 787 ---
contrib/libg++/libio/iovsprintf.c | 40 -
contrib/libg++/libio/iovsscanf.c | 37 -
contrib/libg++/libio/isgetline.cc | 139 -
contrib/libg++/libio/isgetsb.cc | 59 -
contrib/libg++/libio/isscan.cc | 45 -
contrib/libg++/libio/istream.h | 25 -
contrib/libg++/libio/libio.h | 255 -
contrib/libg++/libio/libioP.h | 494 --
contrib/libg++/libio/osform.cc | 54 -
contrib/libg++/libio/ostream.h | 25 -
contrib/libg++/libio/outfloat.c | 204 -
contrib/libg++/libio/parsestream.cc | 317 -
contrib/libg++/libio/parsestream.h | 156 -
contrib/libg++/libio/pfstream.cc | 92 -
contrib/libg++/libio/pfstream.h | 59 -
contrib/libg++/libio/procbuf.cc | 55 -
contrib/libg++/libio/procbuf.h | 50 -
contrib/libg++/libio/sbform.cc | 40 -
contrib/libg++/libio/sbgetline.cc | 31 -
contrib/libg++/libio/sbscan.cc | 45 -
contrib/libg++/libio/stdfiles.c | 44 -
contrib/libg++/libio/stdiostream.cc | 159 -
contrib/libg++/libio/stdiostream.h | 79 -
contrib/libg++/libio/stdstrbufs.cc | 115 -
contrib/libg++/libio/stdstreams.cc | 153 -
contrib/libg++/libio/stream.cc | 170 -
contrib/libg++/libio/stream.h | 59 -
contrib/libg++/libio/streambuf.cc | 343 -
contrib/libg++/libio/streambuf.h | 475 --
contrib/libg++/libio/strfile.h | 52 -
contrib/libg++/libio/strops.c | 290 -
contrib/libg++/libio/strstream.cc | 116 -
contrib/libg++/libio/strstream.h | 113 -
contrib/libg++/libio/tests/ChangeLog | 111 -
contrib/libg++/libio/tests/Makefile.in | 195 -
contrib/libg++/libio/tests/configure.in | 21 -
contrib/libg++/libio/tests/hounddog.cc | 85 -
contrib/libg++/libio/tests/hounddog.exp | 7 -
contrib/libg++/libio/tests/hounddog.inp | 7 -
contrib/libg++/libio/tests/putbackdog.cc | 97 -
contrib/libg++/libio/tests/tFile.cc | 550 --
contrib/libg++/libio/tests/tFile.exp | 75 -
contrib/libg++/libio/tests/tFile.inp | 5 -
contrib/libg++/libio/tests/tfformat.c | 4145 -----------
contrib/libg++/libio/tests/tiformat.c | 5093 --------------
contrib/libg++/libio/tests/tiomanip.cc | 35 -
contrib/libg++/libio/tests/tiomanip.exp | 4 -
contrib/libg++/libio/tests/tiomisc.cc | 236 -
contrib/libg++/libio/tests/tiomisc.exp | 11 -
contrib/libg++/libio/tests/tstdiomisc.c | 43 -
contrib/libg++/libio/tests/tstdiomisc.exp | 8 -
contrib/libg++/librx/ChangeLog | 302 -
contrib/libg++/librx/DOC | 179 -
contrib/libg++/librx/rx.c | 7193 --------------------
contrib/libg++/librx/rx.h | 3732 ----------
contrib/libg++/libstdc++/ChangeLog | 620 --
contrib/libg++/libstdc++/Makefile.in | 310 -
contrib/libg++/libstdc++/algorithm | 7 -
contrib/libg++/libstdc++/cassert | 6 -
contrib/libg++/libstdc++/cctype | 6 -
contrib/libg++/libstdc++/cerrno | 6 -
contrib/libg++/libstdc++/cfloat | 6 -
contrib/libg++/libstdc++/cinst.cc | 151 -
contrib/libg++/libstdc++/ciso646 | 6 -
contrib/libg++/libstdc++/climits | 6 -
contrib/libg++/libstdc++/clocale | 6 -
contrib/libg++/libstdc++/cmath | 6 -
contrib/libg++/libstdc++/cmathi.cc | 7 -
contrib/libg++/libstdc++/complex | 6 -
contrib/libg++/libstdc++/complex.h | 6 -
contrib/libg++/libstdc++/csetjmp | 6 -
contrib/libg++/libstdc++/csignal | 6 -
contrib/libg++/libstdc++/cstdarg | 6 -
contrib/libg++/libstdc++/cstddef | 6 -
contrib/libg++/libstdc++/cstdio | 6 -
contrib/libg++/libstdc++/cstdlib | 6 -
contrib/libg++/libstdc++/cstdlibi.cc | 7 -
contrib/libg++/libstdc++/cstring | 6 -
contrib/libg++/libstdc++/cstringi.cc | 7 -
contrib/libg++/libstdc++/ctime | 6 -
contrib/libg++/libstdc++/cwchar | 6 -
contrib/libg++/libstdc++/cwctype | 6 -
contrib/libg++/libstdc++/deque | 7 -
contrib/libg++/libstdc++/exception | 6 -
contrib/libg++/libstdc++/exceptioni.cc | 78 -
contrib/libg++/libstdc++/functional | 7 -
contrib/libg++/libstdc++/iterator | 7 -
contrib/libg++/libstdc++/list | 7 -
contrib/libg++/libstdc++/map | 7 -
contrib/libg++/libstdc++/memory | 7 -
contrib/libg++/libstdc++/new | 6 -
contrib/libg++/libstdc++/new.h | 7 -
contrib/libg++/libstdc++/newi.cc | 7 -
contrib/libg++/libstdc++/numeric | 7 -
contrib/libg++/libstdc++/queue | 7 -
contrib/libg++/libstdc++/set | 7 -
contrib/libg++/libstdc++/sinst.cc | 147 -
contrib/libg++/libstdc++/stack | 7 -
contrib/libg++/libstdc++/std/bastring.cc | 489 --
contrib/libg++/libstdc++/std/bastring.h | 574 --
contrib/libg++/libstdc++/std/cassert.h | 7 -
contrib/libg++/libstdc++/std/cctype.h | 7 -
contrib/libg++/libstdc++/std/cerrno.h | 7 -
contrib/libg++/libstdc++/std/cfloat.h | 7 -
contrib/libg++/libstdc++/std/cinst.h | 112 -
contrib/libg++/libstdc++/std/ciso646.h | 7 -
contrib/libg++/libstdc++/std/climits.h | 7 -
contrib/libg++/libstdc++/std/clocale.h | 7 -
contrib/libg++/libstdc++/std/cmath.h | 76 -
contrib/libg++/libstdc++/std/complex.h | 18 -
contrib/libg++/libstdc++/std/complext.cc | 273 -
contrib/libg++/libstdc++/std/complext.h | 317 -
contrib/libg++/libstdc++/std/csetjmp.h | 8 -
contrib/libg++/libstdc++/std/csignal.h | 7 -
contrib/libg++/libstdc++/std/cstdarg.h | 7 -
contrib/libg++/libstdc++/std/cstddef.h | 7 -
contrib/libg++/libstdc++/std/cstdio.h | 7 -
contrib/libg++/libstdc++/std/cstdlib.h | 23 -
contrib/libg++/libstdc++/std/cstring.h | 71 -
contrib/libg++/libstdc++/std/ctime.h | 7 -
contrib/libg++/libstdc++/std/cwchar.h | 7 -
contrib/libg++/libstdc++/std/cwctype.h | 7 -
contrib/libg++/libstdc++/std/dcomplex.h | 89 -
contrib/libg++/libstdc++/std/exception.h | 39 -
contrib/libg++/libstdc++/std/fcomplex.h | 85 -
contrib/libg++/libstdc++/std/ldcomplex.h | 93 -
contrib/libg++/libstdc++/std/new.h | 34 -
contrib/libg++/libstdc++/std/sinst.h | 73 -
contrib/libg++/libstdc++/std/stddef.h | 25 -
contrib/libg++/libstdc++/std/stdexcept.h | 126 -
contrib/libg++/libstdc++/std/straits.h | 161 -
contrib/libg++/libstdc++/std/string.h | 13 -
contrib/libg++/libstdc++/std/typeinfo.h | 245 -
contrib/libg++/libstdc++/stddef | 6 -
contrib/libg++/libstdc++/stddefi.cc | 7 -
contrib/libg++/libstdc++/stdexcept | 6 -
contrib/libg++/libstdc++/stdexcepti.cc | 8 -
contrib/libg++/libstdc++/stl.h | 15 -
contrib/libg++/libstdc++/stl/ChangeLog | 86 -
contrib/libg++/libstdc++/stl/Makefile.in | 12 -
contrib/libg++/libstdc++/stl/README | 86 -
contrib/libg++/libstdc++/stl/algo.h | 2386 -------
contrib/libg++/libstdc++/stl/algobase.h | 232 -
contrib/libg++/libstdc++/stl/bool.h | 20 -
contrib/libg++/libstdc++/stl/bvector.h | 421 --
contrib/libg++/libstdc++/stl/configure.in | 37 -
contrib/libg++/libstdc++/stl/defalloc.h | 176 -
contrib/libg++/libstdc++/stl/deque.h | 684 --
contrib/libg++/libstdc++/stl/faralloc.h | 120 -
contrib/libg++/libstdc++/stl/fdeque.h | 39 -
contrib/libg++/libstdc++/stl/flist.h | 39 -
contrib/libg++/libstdc++/stl/fmap.h | 44 -
contrib/libg++/libstdc++/stl/fmultmap.h | 44 -
contrib/libg++/libstdc++/stl/fmultset.h | 44 -
contrib/libg++/libstdc++/stl/fset.h | 44 -
contrib/libg++/libstdc++/stl/function.h | 282 -
contrib/libg++/libstdc++/stl/hdeque.h | 39 -
contrib/libg++/libstdc++/stl/heap.h | 193 -
contrib/libg++/libstdc++/stl/hlist.h | 39 -
contrib/libg++/libstdc++/stl/hmap.h | 44 -
contrib/libg++/libstdc++/stl/hmultmap.h | 44 -
contrib/libg++/libstdc++/stl/hmultset.h | 44 -
contrib/libg++/libstdc++/stl/hset.h | 44 -
contrib/libg++/libstdc++/stl/hugalloc.h | 38 -
contrib/libg++/libstdc++/stl/hvector.h | 39 -
contrib/libg++/libstdc++/stl/iterator.h | 395 --
contrib/libg++/libstdc++/stl/lbvector.h | 39 -
contrib/libg++/libstdc++/stl/ldeque.h | 39 -
contrib/libg++/libstdc++/stl/list.h | 531 --
contrib/libg++/libstdc++/stl/llist.h | 39 -
contrib/libg++/libstdc++/stl/lmap.h | 44 -
contrib/libg++/libstdc++/stl/lmultmap.h | 44 -
contrib/libg++/libstdc++/stl/lmultset.h | 44 -
contrib/libg++/libstdc++/stl/lngalloc.h | 54 -
contrib/libg++/libstdc++/stl/lset.h | 44 -
contrib/libg++/libstdc++/stl/map.h | 150 -
contrib/libg++/libstdc++/stl/multimap.h | 142 -
contrib/libg++/libstdc++/stl/multiset.h | 129 -
contrib/libg++/libstdc++/stl/neralloc.h | 38 -
contrib/libg++/libstdc++/stl/nmap.h | 44 -
contrib/libg++/libstdc++/stl/nmultmap.h | 44 -
contrib/libg++/libstdc++/stl/nmultset.h | 44 -
contrib/libg++/libstdc++/stl/nset.h | 44 -
contrib/libg++/libstdc++/stl/pair.h | 46 -
contrib/libg++/libstdc++/stl/projectn.h | 33 -
contrib/libg++/libstdc++/stl/random.cc | 60 -
contrib/libg++/libstdc++/stl/set.h | 132 -
contrib/libg++/libstdc++/stl/stack.h | 120 -
contrib/libg++/libstdc++/stl/tempbuf.cc | 18 -
contrib/libg++/libstdc++/stl/tempbuf.h | 55 -
contrib/libg++/libstdc++/stl/tree.cc | 3 -
contrib/libg++/libstdc++/stl/tree.h | 1246 ----
contrib/libg++/libstdc++/stl/vector.h | 355 -
contrib/libg++/libstdc++/string | 6 -
contrib/libg++/libstdc++/tests/ChangeLog | 52 -
contrib/libg++/libstdc++/tests/Makefile.in | 35 -
contrib/libg++/libstdc++/tests/configure.in | 49 -
contrib/libg++/libstdc++/tests/tcomplex.cc | 143 -
contrib/libg++/libstdc++/tests/tcomplex.exp | 37 -
contrib/libg++/libstdc++/tests/tcomplex.inp | 1 -
contrib/libg++/libstdc++/tests/tlist.cc | 162 -
contrib/libg++/libstdc++/tests/tlist.exp | 44 -
contrib/libg++/libstdc++/tests/tmap.cc | 66 -
contrib/libg++/libstdc++/tests/tmap.exp | 7 -
contrib/libg++/libstdc++/tests/tstring.cc | 189 -
contrib/libg++/libstdc++/tests/tstring.exp | 20 -
contrib/libg++/libstdc++/tests/tstring.inp | 1 -
contrib/libg++/libstdc++/tests/tvector.cc | 20 -
contrib/libg++/libstdc++/tests/tvector.exp | 4 -
contrib/libg++/libstdc++/typeinfo | 6 -
contrib/libg++/libstdc++/typeinfoi.cc | 131 -
contrib/libg++/libstdc++/utility | 8 -
contrib/libg++/libstdc++/vector | 7 -
contrib/libio/ChangeLog | 2807 --------
contrib/libio/Makefile.in | 137 -
contrib/libio/NEWS | 57 -
contrib/libio/PlotFile.cc | 157 -
contrib/libio/PlotFile.h | 89 -
contrib/libio/README | 30 -
contrib/libio/SFile.cc | 82 -
contrib/libio/SFile.h | 55 -
contrib/libio/builtinbuf.cc | 78 -
contrib/libio/builtinbuf.h | 68 -
contrib/libio/cleanup.c | 17 -
contrib/libio/config.shared | 499 --
contrib/libio/config/hpux.mt | 3 -
contrib/libio/config/isc.mt | 4 -
contrib/libio/config/linux.mt | 25 -
contrib/libio/config/linuxaxp1-libc-lock.h | 112 -
contrib/libio/config/linuxaxp1-stdio-lock.h | 36 -
contrib/libio/config/linuxaxp1.mt | 10 -
contrib/libio/config/linuxlibc1.mt | 26 -
contrib/libio/config/mn10200.mt | 3 -
contrib/libio/config/mtsafe.mt | 2 -
contrib/libio/config/netware.mt | 16 -
contrib/libio/configure.in | 199 -
contrib/libio/dbz/Makefile.in | 218 -
contrib/libio/dbz/README | 25 -
contrib/libio/dbz/altbytes | 7 -
contrib/libio/dbz/byteflip.c | 38 -
contrib/libio/dbz/case.c | 129 -
contrib/libio/dbz/case.h | 12 -
contrib/libio/dbz/configure.in | 17 -
contrib/libio/dbz/dbz.1 | 221 -
contrib/libio/dbz/dbz.3z | 547 --
contrib/libio/dbz/dbz.c | 1768 -----
contrib/libio/dbz/dbz.h | 32 -
contrib/libio/dbz/dbzmain.c | 519 --
contrib/libio/dbz/fake.c | 144 -
contrib/libio/dbz/firstlast25 | 50 -
contrib/libio/dbz/getmap | 6 -
contrib/libio/dbz/random.c | 31 -
contrib/libio/dbz/revbytes | 7 -
contrib/libio/dbz/stdio.h | 1 -
contrib/libio/depend | 379 --
contrib/libio/editbuf.cc | 717 --
contrib/libio/editbuf.h | 185 -
contrib/libio/filebuf.cc | 223 -
contrib/libio/filedoalloc.c | 107 -
contrib/libio/fileops.c | 811 ---
contrib/libio/floatconv.c | 2375 -------
contrib/libio/floatio.h | 51 -
contrib/libio/fstream.cc | 110 -
contrib/libio/fstream.h | 92 -
contrib/libio/gen-params | 739 --
contrib/libio/genops.c | 946 ---
contrib/libio/include/empty.h | 37 -
contrib/libio/indstream.cc | 121 -
contrib/libio/indstream.h | 77 -
contrib/libio/ioassign.cc | 49 -
contrib/libio/ioextend.cc | 132 -
contrib/libio/iofclose.c | 60 -
contrib/libio/iofdopen.c | 134 -
contrib/libio/iofeof.c | 45 -
contrib/libio/ioferror.c | 45 -
contrib/libio/iofflush.c | 49 -
contrib/libio/iofflush_u.c | 40 -
contrib/libio/iofgetpos.c | 55 -
contrib/libio/iofgets.c | 56 -
contrib/libio/iofopen.c | 64 -
contrib/libio/iofprintf.c | 51 -
contrib/libio/iofputs.c | 49 -
contrib/libio/iofread.c | 49 -
contrib/libio/iofscanf.c | 48 -
contrib/libio/iofsetpos.c | 56 -
contrib/libio/ioftell.c | 53 -
contrib/libio/iofwrite.c | 54 -
contrib/libio/iogetc.c | 50 -
contrib/libio/iogetdelim.c | 125 -
contrib/libio/iogetline.c | 112 -
contrib/libio/iogets.c | 71 -
contrib/libio/ioignore.c | 47 -
contrib/libio/iolibio.h | 67 -
contrib/libio/iomanip.cc | 90 -
contrib/libio/iomanip.h | 180 -
contrib/libio/iopadn.c | 70 -
contrib/libio/ioperror.c | 22 -
contrib/libio/iopopen.c | 248 -
contrib/libio/ioprims.c | 80 -
contrib/libio/ioprintf.c | 47 -
contrib/libio/ioputc.c | 44 -
contrib/libio/ioputs.c | 49 -
contrib/libio/ioscanf.c | 47 -
contrib/libio/ioseekoff.c | 54 -
contrib/libio/ioseekpos.c | 48 -
contrib/libio/iosetbuffer.c | 46 -
contrib/libio/iosetvbuf.c | 100 -
contrib/libio/iosprintf.c | 50 -
contrib/libio/iosscanf.c | 47 -
contrib/libio/iostdio.h | 114 -
contrib/libio/iostream.cc | 1049 ---
contrib/libio/iostream.h | 273 -
contrib/libio/iostream.texi | 1971 ------
contrib/libio/iostreamP.h | 26 -
contrib/libio/iostrerror.c | 12 -
contrib/libio/ioungetc.c | 46 -
contrib/libio/iovfprintf.c | 890 ---
contrib/libio/iovfscanf.c | 790 ---
contrib/libio/iovsprintf.c | 60 -
contrib/libio/iovsscanf.c | 59 -
contrib/libio/isgetline.cc | 153 -
contrib/libio/isgetsb.cc | 63 -
contrib/libio/isscan.cc | 55 -
contrib/libio/istream.h | 25 -
contrib/libio/libio.h | 365 -
contrib/libio/libioP.h | 648 --
contrib/libio/osform.cc | 66 -
contrib/libio/ostream.h | 25 -
contrib/libio/outfloat.c | 211 -
contrib/libio/parsestream.cc | 317 -
contrib/libio/parsestream.h | 156 -
contrib/libio/peekc.c | 42 -
contrib/libio/pfstream.cc | 92 -
contrib/libio/pfstream.h | 59 -
contrib/libio/procbuf.cc | 54 -
contrib/libio/procbuf.h | 50 -
contrib/libio/sbform.cc | 40 -
contrib/libio/sbgetline.cc | 31 -
contrib/libio/sbscan.cc | 45 -
contrib/libio/stdfiles.c | 51 -
contrib/libio/stdio/ChangeLog | 153 -
contrib/libio/stdio/Makefile.in | 35 -
contrib/libio/stdio/clearerr.c | 30 -
contrib/libio/stdio/clearerr_u.c | 28 -
contrib/libio/stdio/configure.in | 49 -
contrib/libio/stdio/fdopen.c | 9 -
contrib/libio/stdio/feof.c | 43 -
contrib/libio/stdio/feof_u.c | 37 -
contrib/libio/stdio/ferror.c | 43 -
contrib/libio/stdio/ferror_u.c | 37 -
contrib/libio/stdio/fgetc.c | 40 -
contrib/libio/stdio/fileno.c | 49 -
contrib/libio/stdio/fputc.c | 41 -
contrib/libio/stdio/fputc_u.c | 38 -
contrib/libio/stdio/freopen.c | 44 -
contrib/libio/stdio/fseek.c | 42 -
contrib/libio/stdio/getc.c | 48 -
contrib/libio/stdio/getc_u.c | 37 -
contrib/libio/stdio/getchar.c | 40 -
contrib/libio/stdio/getchar_u.c | 35 -
contrib/libio/stdio/getline.c | 13 -
contrib/libio/stdio/getw.c | 13 -
contrib/libio/stdio/obprintf.c | 168 -
contrib/libio/stdio/popen.c | 23 -
contrib/libio/stdio/putc.c | 42 -
contrib/libio/stdio/putc_u.c | 31 -
contrib/libio/stdio/putchar.c | 35 -
contrib/libio/stdio/putchar_u.c | 30 -
contrib/libio/stdio/putw.c | 15 -
contrib/libio/stdio/rewind.c | 38 -
contrib/libio/stdio/setbuf.c | 35 -
contrib/libio/stdio/setfileno.c | 17 -
contrib/libio/stdio/setlinebuf.c | 36 -
contrib/libio/stdio/snprintf.c | 51 -
contrib/libio/stdio/stdio.h | 219 -
contrib/libio/stdio/vasprintf.c | 72 -
contrib/libio/stdio/vfprintf.c | 35 -
contrib/libio/stdio/vfscanf.c | 36 -
contrib/libio/stdio/vprintf.c | 33 -
contrib/libio/stdio/vscanf.c | 41 -
contrib/libio/stdio/vsnprintf.c | 136 -
contrib/libio/stdiostream.cc | 159 -
contrib/libio/stdiostream.h | 79 -
contrib/libio/stdstrbufs.cc | 126 -
contrib/libio/stdstreams.cc | 153 -
contrib/libio/stream.cc | 170 -
contrib/libio/stream.h | 59 -
contrib/libio/streambuf.cc | 364 -
contrib/libio/streambuf.h | 490 --
contrib/libio/strfile.h | 71 -
contrib/libio/strops.c | 303 -
contrib/libio/strstream.cc | 116 -
contrib/libio/strstream.h | 113 -
contrib/libio/tests/ChangeLog | 166 -
contrib/libio/tests/Makefile.in | 196 -
contrib/libio/tests/configure.in | 36 -
contrib/libio/tests/hounddog.cc | 85 -
contrib/libio/tests/hounddog.exp | 7 -
contrib/libio/tests/hounddog.inp | 7 -
contrib/libio/tests/putbackdog.cc | 97 -
contrib/libio/tests/tFile.cc | 558 --
contrib/libio/tests/tFile.exp | 75 -
contrib/libio/tests/tFile.inp | 5 -
contrib/libio/tests/tfformat.c | 4181 ------------
contrib/libio/tests/tiformat.c | 5112 --------------
contrib/libio/tests/tiomanip.cc | 35 -
contrib/libio/tests/tiomanip.exp | 4 -
contrib/libio/tests/tiomisc.cc | 236 -
contrib/libio/tests/tiomisc.exp | 11 -
contrib/libio/tests/tstdiomisc.c | 43 -
contrib/libio/tests/tstdiomisc.exp | 8 -
contrib/libio/testsuite/ChangeLog | 99 -
contrib/libio/testsuite/Makefile.in | 90 -
contrib/libio/testsuite/config/default.exp | 1 -
contrib/libio/testsuite/configure.in | 22 -
contrib/libio/testsuite/lib/libio.exp | 167 -
contrib/libio/testsuite/libio.tests/hounddog.exp | 3 -
contrib/libio/testsuite/libio.tests/putbackdog.exp | 3 -
contrib/libio/testsuite/libio.tests/tFile.exp | 3 -
contrib/libio/testsuite/libio.tests/tfformat.exp | 1 -
contrib/libio/testsuite/libio.tests/tiformat.exp | 1 -
contrib/libio/testsuite/libio.tests/tiomanip.exp | 1 -
contrib/libio/testsuite/libio.tests/tiomisc.exp | 1 -
contrib/libio/testsuite/libio.tests/tstdiomisc.exp | 1 -
contrib/libobjc/objc-features.texi | 392 --
contrib/libstdc++/FREEBSD-upgrade | 18 -
contrib/libstdc++/NEWS | 9 -
contrib/libstdc++/cassert | 7 -
contrib/libstdc++/cctype | 7 -
contrib/libstdc++/cerrno | 7 -
contrib/libstdc++/cfloat | 7 -
contrib/libstdc++/cinst.cc | 154 -
contrib/libstdc++/ciso646 | 7 -
contrib/libstdc++/climits | 7 -
contrib/libstdc++/clocale | 7 -
contrib/libstdc++/cmath | 76 -
contrib/libstdc++/cmathi.cc | 7 -
contrib/libstdc++/complex | 18 -
contrib/libstdc++/complex.h | 6 -
contrib/libstdc++/config/aix.ml | 9 -
.../config/cpu/sparc/sparc32/bits/atomicity.h | 88 -
.../config/cpu/sparc/sparc64/bits/atomicity.h | 70 -
contrib/libstdc++/config/dec-osf.ml | 6 -
contrib/libstdc++/config/delta.mt | 2 -
contrib/libstdc++/config/elf.ml | 8 -
contrib/libstdc++/config/elfshlibm.ml | 6 -
contrib/libstdc++/config/freebsd.ml | 6 -
contrib/libstdc++/config/gnu.ml | 6 -
contrib/libstdc++/config/hpux.ml | 6 -
contrib/libstdc++/config/irix5.ml | 6 -
contrib/libstdc++/config/linux.ml | 11 -
contrib/libstdc++/config/linux.mt | 2 -
contrib/libstdc++/config/openbsd.ml | 7 -
contrib/libstdc++/config/openbsd.mt | 3 -
contrib/libstdc++/config/posix.mt | 1 -
contrib/libstdc++/config/sol2pth.mt | 1 -
contrib/libstdc++/config/sol2shm.ml | 6 -
contrib/libstdc++/config/sol2solth.mt | 1 -
contrib/libstdc++/config/sunos4.ml | 9 -
contrib/libstdc++/config/x86-interix.ml | 9 -
contrib/libstdc++/csetjmp | 8 -
contrib/libstdc++/csignal | 7 -
contrib/libstdc++/cstdarg | 7 -
contrib/libstdc++/cstddef | 7 -
contrib/libstdc++/cstdio | 7 -
contrib/libstdc++/cstdlib | 23 -
contrib/libstdc++/cstdlibi.cc | 7 -
contrib/libstdc++/cstring | 96 -
contrib/libstdc++/cstringi.cc | 7 -
contrib/libstdc++/ctime | 7 -
contrib/libstdc++/cwchar | 7 -
contrib/libstdc++/cwctype | 7 -
contrib/libstdc++/fstream | 7 -
contrib/libstdc++/iomanip | 7 -
contrib/libstdc++/iosfwd | 15 -
contrib/libstdc++/iostream | 7 -
contrib/libstdc++/libio/ChangeLog | 2774 --------
contrib/libstdc++/libio/Makefile.am | 67 -
contrib/libstdc++/libio/Makefile.in | 426 --
contrib/libstdc++/libio/_G_config.h | 136 -
contrib/libstdc++/libio/filedoalloc.c | 101 -
contrib/libstdc++/libio/fileops.c | 1049 ---
contrib/libstdc++/libio/genops.c | 1123 ---
contrib/libstdc++/libio/iofclose.c | 97 -
contrib/libstdc++/libio/iofopen.c | 78 -
contrib/libstdc++/libio/iofwide.c | 476 --
contrib/libstdc++/libio/iolibio.h | 82 -
contrib/libstdc++/libio/libio.h | 511 --
contrib/libstdc++/libio/libioP.h | 821 ---
contrib/libstdc++/libio/stdfiles.c | 71 -
contrib/libstdc++/libio/stdio.c | 43 -
contrib/libstdc++/libio/wfiledoalloc.c | 108 -
contrib/libstdc++/libio/wfileops.c | 754 --
contrib/libstdc++/libio/wgenops.c | 756 --
contrib/libstdc++/sinst.cc | 135 -
contrib/libstdc++/src/cmath.cc | 47 -
contrib/libstdc++/sstream | 343 -
contrib/libstdc++/std/bastring.cc | 524 --
contrib/libstdc++/std/bastring.h | 657 --
contrib/libstdc++/std/complext.cc | 273 -
contrib/libstdc++/std/complext.h | 400 --
contrib/libstdc++/std/dcomplex.h | 91 -
contrib/libstdc++/std/fcomplex.h | 87 -
contrib/libstdc++/std/gslice.h | 111 -
contrib/libstdc++/std/gslice_array.h | 170 -
contrib/libstdc++/std/indirect_array.h | 157 -
contrib/libstdc++/std/ldcomplex.h | 95 -
contrib/libstdc++/std/mask_array.h | 154 -
contrib/libstdc++/std/slice.h | 76 -
contrib/libstdc++/std/slice_array.h | 156 -
contrib/libstdc++/std/std_valarray.h | 728 --
contrib/libstdc++/std/straits.h | 161 -
contrib/libstdc++/std/valarray_array.h | 346 -
contrib/libstdc++/std/valarray_array.tcc | 130 -
contrib/libstdc++/std/valarray_meta.h | 1046 ---
contrib/libstdc++/stdexcept | 97 -
contrib/libstdc++/stdexcepti.cc | 21 -
contrib/libstdc++/stl.h | 15 -
contrib/libstdc++/stl/ChangeLog | 381 --
contrib/libstdc++/stl/README | 13 -
contrib/libstdc++/stl/algo.h | 114 -
contrib/libstdc++/stl/algobase.h | 71 -
contrib/libstdc++/stl/algorithm | 40 -
contrib/libstdc++/stl/alloc.h | 46 -
contrib/libstdc++/stl/bitset | 1066 ---
contrib/libstdc++/stl/bvector.h | 51 -
contrib/libstdc++/stl/defalloc.h | 87 -
contrib/libstdc++/stl/deque | 40 -
contrib/libstdc++/stl/deque.h | 42 -
contrib/libstdc++/stl/function.h | 118 -
contrib/libstdc++/stl/functional | 26 -
contrib/libstdc++/stl/hash_map | 40 -
contrib/libstdc++/stl/hash_map.h | 49 -
contrib/libstdc++/stl/hash_set | 40 -
contrib/libstdc++/stl/hash_set.h | 44 -
contrib/libstdc++/stl/hashtable.h | 48 -
contrib/libstdc++/stl/heap.h | 46 -
contrib/libstdc++/stl/iterator | 44 -
contrib/libstdc++/stl/iterator.h | 104 -
contrib/libstdc++/stl/list | 40 -
contrib/libstdc++/stl/list.h | 42 -
contrib/libstdc++/stl/map | 40 -
contrib/libstdc++/stl/map.h | 41 -
contrib/libstdc++/stl/memory | 108 -
contrib/libstdc++/stl/multimap.h | 41 -
contrib/libstdc++/stl/multiset.h | 41 -
contrib/libstdc++/stl/numeric | 42 -
contrib/libstdc++/stl/pair.h | 51 -
contrib/libstdc++/stl/pthread_alloc | 479 --
contrib/libstdc++/stl/pthread_alloc.h | 31 -
contrib/libstdc++/stl/queue | 45 -
contrib/libstdc++/stl/rope | 32 -
contrib/libstdc++/stl/rope.h | 34 -
contrib/libstdc++/stl/ropeimpl.h | 1550 -----
contrib/libstdc++/stl/set | 40 -
contrib/libstdc++/stl/set.h | 41 -
contrib/libstdc++/stl/slist | 28 -
contrib/libstdc++/stl/slist.h | 30 -
contrib/libstdc++/stl/stack | 41 -
contrib/libstdc++/stl/stack.h | 46 -
contrib/libstdc++/stl/stl_algo.h | 2894 --------
contrib/libstdc++/stl/stl_algobase.h | 526 --
contrib/libstdc++/stl/stl_alloc.h | 1057 ---
contrib/libstdc++/stl/stl_bvector.h | 838 ---
contrib/libstdc++/stl/stl_config.h | 356 -
contrib/libstdc++/stl/stl_construct.h | 90 -
contrib/libstdc++/stl/stl_deque.h | 1698 -----
contrib/libstdc++/stl/stl_function.h | 700 --
contrib/libstdc++/stl/stl_hash_fun.h | 93 -
contrib/libstdc++/stl/stl_hash_map.h | 416 --
contrib/libstdc++/stl/stl_hash_set.h | 401 --
contrib/libstdc++/stl/stl_hashtable.h | 1039 ---
contrib/libstdc++/stl/stl_heap.h | 281 -
contrib/libstdc++/stl/stl_iterator.h | 915 ---
contrib/libstdc++/stl/stl_list.h | 840 ---
contrib/libstdc++/stl/stl_map.h | 242 -
contrib/libstdc++/stl/stl_multimap.h | 232 -
contrib/libstdc++/stl/stl_multiset.h | 224 -
contrib/libstdc++/stl/stl_numeric.h | 239 -
contrib/libstdc++/stl/stl_pair.h | 77 -
contrib/libstdc++/stl/stl_queue.h | 202 -
contrib/libstdc++/stl/stl_raw_storage_iter.h | 81 -
contrib/libstdc++/stl/stl_relops.h | 62 -
contrib/libstdc++/stl/stl_rope.h | 2541 -------
contrib/libstdc++/stl/stl_set.h | 216 -
contrib/libstdc++/stl/stl_slist.h | 945 ---
contrib/libstdc++/stl/stl_stack.h | 111 -
contrib/libstdc++/stl/stl_tempbuf.h | 156 -
contrib/libstdc++/stl/stl_tree.h | 1333 ----
contrib/libstdc++/stl/stl_uninitialized.h | 279 -
contrib/libstdc++/stl/stl_vector.h | 823 ---
contrib/libstdc++/stl/tempbuf.h | 61 -
contrib/libstdc++/stl/tree.h | 46 -
contrib/libstdc++/stl/type_traits.h | 373 -
contrib/libstdc++/stl/utility | 38 -
contrib/libstdc++/stl/vector | 41 -
contrib/libstdc++/stl/vector.h | 42 -
contrib/libstdc++/stlinst.cc | 10 -
contrib/libstdc++/string | 13 -
contrib/libstdc++/strstream | 7 -
contrib/libstdc++/tests/ChangeLog | 132 -
contrib/libstdc++/tests/Makefile.in | 35 -
contrib/libstdc++/tests/configure.in | 65 -
contrib/libstdc++/tests/tcomplex.cc | 151 -
contrib/libstdc++/tests/tcomplex.exp | 37 -
contrib/libstdc++/tests/tcomplex.inp | 1 -
contrib/libstdc++/tests/tlist.cc | 151 -
contrib/libstdc++/tests/tlist.exp | 44 -
contrib/libstdc++/tests/tmap.cc | 59 -
contrib/libstdc++/tests/tmap.exp | 7 -
contrib/libstdc++/tests/tstring.cc | 249 -
contrib/libstdc++/tests/tstring.exp | 22 -
contrib/libstdc++/tests/tstring.inp | 1 -
contrib/libstdc++/tests/tvector.cc | 20 -
contrib/libstdc++/tests/tvector.exp | 4 -
contrib/libstdc++/testsuite/ChangeLog | 94 -
contrib/libstdc++/testsuite/Makefile.in | 67 -
contrib/libstdc++/testsuite/config/default.exp | 1 -
contrib/libstdc++/testsuite/configure.in | 24 -
contrib/libstdc++/testsuite/lib/libstdc++.exp | 179 -
.../libstdc++/testsuite/libstdc++.tests/test.exp | 34 -
contrib/libstdc++/testsuite_flags.in | 61 -
contrib/libstdc++/valarray | 8 -
contrib/libstdc++/valarray.cc | 50 -
1067 files changed, 231490 deletions(-)
delete mode 100644 contrib/gcc/cccp.1
delete mode 100644 contrib/gcc/config/alpha/crtbegin.asm
delete mode 100644 contrib/gcc/config/alpha/crtend.asm
delete mode 100644 contrib/gcc/config/alpha/gdb-osf12.h
delete mode 100644 contrib/gcc/config/alpha/gdb-osf2.h
delete mode 100644 contrib/gcc/config/alpha/gdb.h
delete mode 100644 contrib/gcc/config/alpha/osf2.h
delete mode 100644 contrib/gcc/config/i386/freebsd-elf.h
delete mode 100644 contrib/gcc/config/i386/freebsd.h.fixed
delete mode 100644 contrib/gcc/config/i386/x-freebsd
delete mode 100644 contrib/gcc/cp/cfns.h
delete mode 100644 contrib/gcc/cp/g++.c
delete mode 100644 contrib/gcc/cp/reno.texi
delete mode 100644 contrib/gcc/cpp.1
delete mode 100644 contrib/gcc/doc/install-old.texi
delete mode 100644 contrib/gcc/doc/install.texi
delete mode 100755 contrib/gcc/doc/install.texi2html
delete mode 100644 contrib/gcc/f/g77.1
delete mode 100644 contrib/gcc/gcc.1
delete mode 100644 contrib/gcc/objc/sendmsg.c
delete mode 100644 contrib/libf2c/ChangeLog.egcs
delete mode 100644 contrib/libf2c/libI77/rawio.h
delete mode 100644 contrib/libg++/COPYING
delete mode 100644 contrib/libg++/COPYING.LIB
delete mode 100644 contrib/libg++/include/ChangeLog
delete mode 100644 contrib/libg++/include/ansidecl.h
delete mode 100644 contrib/libg++/include/demangle.h
delete mode 100644 contrib/libg++/include/floatformat.h
delete mode 100644 contrib/libg++/include/getopt.h
delete mode 100644 contrib/libg++/include/libiberty.h
delete mode 100644 contrib/libg++/include/obstack.h
delete mode 100644 contrib/libg++/libg++/ChangeLog
delete mode 100644 contrib/libg++/libg++/Makefile.in
delete mode 100644 contrib/libg++/libg++/NEWS
delete mode 100644 contrib/libg++/libg++/README
delete mode 100644 contrib/libg++/libg++/README.SHLIB
delete mode 100644 contrib/libg++/libg++/TODO
delete mode 100644 contrib/libg++/libg++/g++FAQ.texi
delete mode 100644 contrib/libg++/libg++/genclass/ChangeLog
delete mode 100644 contrib/libg++/libg++/genclass/Makefile.in
delete mode 100644 contrib/libg++/libg++/genclass/configure.in
delete mode 100644 contrib/libg++/libg++/genclass/expected.out
delete mode 100755 contrib/libg++/libg++/genclass/genclass.sh
delete mode 100755 contrib/libg++/libg++/genclass/gentest.sh
delete mode 100644 contrib/libg++/libg++/libg++.texi
delete mode 100644 contrib/libg++/libg++/src/ACG.cc
delete mode 100644 contrib/libg++/libg++/src/ACG.h
delete mode 100644 contrib/libg++/libg++/src/AllocRing.cc
delete mode 100644 contrib/libg++/libg++/src/AllocRing.h
delete mode 100644 contrib/libg++/libg++/src/Binomial.cc
delete mode 100644 contrib/libg++/libg++/src/Binomial.h
delete mode 100644 contrib/libg++/libg++/src/BitSet.cc
delete mode 100644 contrib/libg++/libg++/src/BitSet.h
delete mode 100644 contrib/libg++/libg++/src/BitString.cc
delete mode 100644 contrib/libg++/libg++/src/BitString.h
delete mode 100644 contrib/libg++/libg++/src/ChangeLog
delete mode 100644 contrib/libg++/libg++/src/Complex.h
delete mode 100644 contrib/libg++/libg++/src/CursesW.cc
delete mode 100644 contrib/libg++/libg++/src/CursesW.h
delete mode 100644 contrib/libg++/libg++/src/DLList.cc
delete mode 100644 contrib/libg++/libg++/src/DLList.h
delete mode 100644 contrib/libg++/libg++/src/DiscUnif.cc
delete mode 100644 contrib/libg++/libg++/src/DiscUnif.h
delete mode 100644 contrib/libg++/libg++/src/Erlang.cc
delete mode 100644 contrib/libg++/libg++/src/Erlang.h
delete mode 100644 contrib/libg++/libg++/src/Fix.cc
delete mode 100644 contrib/libg++/libg++/src/Fix.h
delete mode 100644 contrib/libg++/libg++/src/Fix16.cc
delete mode 100644 contrib/libg++/libg++/src/Fix16.h
delete mode 100644 contrib/libg++/libg++/src/Fix24.cc
delete mode 100644 contrib/libg++/libg++/src/Fix24.h
delete mode 100644 contrib/libg++/libg++/src/Geom.cc
delete mode 100644 contrib/libg++/libg++/src/Geom.h
delete mode 100644 contrib/libg++/libg++/src/GetOpt.cc
delete mode 100644 contrib/libg++/libg++/src/GetOpt.h
delete mode 100644 contrib/libg++/libg++/src/HypGeom.cc
delete mode 100644 contrib/libg++/libg++/src/HypGeom.h
delete mode 100644 contrib/libg++/libg++/src/Incremental.h
delete mode 100644 contrib/libg++/libg++/src/Intdouble.cc
delete mode 100644 contrib/libg++/libg++/src/Integer.cc
delete mode 100644 contrib/libg++/libg++/src/Integer.h
delete mode 100644 contrib/libg++/libg++/src/Integer.hP
delete mode 100644 contrib/libg++/libg++/src/LogNorm.cc
delete mode 100644 contrib/libg++/libg++/src/LogNorm.h
delete mode 100644 contrib/libg++/libg++/src/MLCG.cc
delete mode 100644 contrib/libg++/libg++/src/MLCG.h
delete mode 100644 contrib/libg++/libg++/src/Makefile.in
delete mode 100644 contrib/libg++/libg++/src/NegExp.cc
delete mode 100644 contrib/libg++/libg++/src/NegExp.h
delete mode 100644 contrib/libg++/libg++/src/Normal.cc
delete mode 100644 contrib/libg++/libg++/src/Normal.h
delete mode 100644 contrib/libg++/libg++/src/Obstack.cc
delete mode 100644 contrib/libg++/libg++/src/Obstack.h
delete mode 100644 contrib/libg++/libg++/src/Pix.h
delete mode 100644 contrib/libg++/libg++/src/Poisson.cc
delete mode 100644 contrib/libg++/libg++/src/Poisson.h
delete mode 100644 contrib/libg++/libg++/src/RNG.cc
delete mode 100644 contrib/libg++/libg++/src/RNG.h
delete mode 100644 contrib/libg++/libg++/src/Random.cc
delete mode 100644 contrib/libg++/libg++/src/Random.h
delete mode 100644 contrib/libg++/libg++/src/Rational.cc
delete mode 100644 contrib/libg++/libg++/src/Rational.h
delete mode 100644 contrib/libg++/libg++/src/Regex.cc
delete mode 100644 contrib/libg++/libg++/src/Regex.h
delete mode 100644 contrib/libg++/libg++/src/RndInt.cc
delete mode 100644 contrib/libg++/libg++/src/RndInt.h
delete mode 100644 contrib/libg++/libg++/src/SLList.cc
delete mode 100644 contrib/libg++/libg++/src/SLList.h
delete mode 100644 contrib/libg++/libg++/src/Sample.cc
delete mode 100644 contrib/libg++/libg++/src/SmplHist.cc
delete mode 100644 contrib/libg++/libg++/src/SmplHist.h
delete mode 100644 contrib/libg++/libg++/src/SmplStat.cc
delete mode 100644 contrib/libg++/libg++/src/SmplStat.h
delete mode 100644 contrib/libg++/libg++/src/String.cc
delete mode 100644 contrib/libg++/libg++/src/String.h
delete mode 100644 contrib/libg++/libg++/src/Uniform.cc
delete mode 100644 contrib/libg++/libg++/src/Uniform.h
delete mode 100644 contrib/libg++/libg++/src/Weibull.cc
delete mode 100644 contrib/libg++/libg++/src/Weibull.h
delete mode 100644 contrib/libg++/libg++/src/bitand.c
delete mode 100644 contrib/libg++/libg++/src/bitany.c
delete mode 100644 contrib/libg++/libg++/src/bitblt.c
delete mode 100644 contrib/libg++/libg++/src/bitclear.c
delete mode 100644 contrib/libg++/libg++/src/bitcopy.c
delete mode 100644 contrib/libg++/libg++/src/bitcount.c
delete mode 100644 contrib/libg++/libg++/src/bitdo1.h
delete mode 100644 contrib/libg++/libg++/src/bitdo2.h
delete mode 100644 contrib/libg++/libg++/src/bitinvert.c
delete mode 100644 contrib/libg++/libg++/src/bitlcomp.c
delete mode 100644 contrib/libg++/libg++/src/bitprims.h
delete mode 100644 contrib/libg++/libg++/src/bitset1.c
delete mode 100644 contrib/libg++/libg++/src/bitxor.c
delete mode 100644 contrib/libg++/libg++/src/bool.h
delete mode 100644 contrib/libg++/libg++/src/builtin.cc
delete mode 100644 contrib/libg++/libg++/src/builtin.h
delete mode 100644 contrib/libg++/libg++/src/compare.cc
delete mode 100644 contrib/libg++/libg++/src/compare.h
delete mode 100644 contrib/libg++/libg++/src/configure.in
delete mode 100644 contrib/libg++/libg++/src/depend
delete mode 100644 contrib/libg++/libg++/src/dtoa.cc
delete mode 100644 contrib/libg++/libg++/src/error.cc
delete mode 100644 contrib/libg++/libg++/src/fmtq.cc
delete mode 100644 contrib/libg++/libg++/src/gcd.cc
delete mode 100644 contrib/libg++/libg++/src/gen/AVLMap.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/AVLMap.hP
delete mode 100644 contrib/libg++/libg++/src/gen/AVLSet.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/AVLSet.hP
delete mode 100644 contrib/libg++/libg++/src/gen/AVec.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/AVec.hP
delete mode 100644 contrib/libg++/libg++/src/gen/BSTSet.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/BSTSet.hP
delete mode 100644 contrib/libg++/libg++/src/gen/Bag.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/Bag.hP
delete mode 100644 contrib/libg++/libg++/src/gen/CHBag.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/CHBag.hP
delete mode 100644 contrib/libg++/libg++/src/gen/CHMap.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/CHMap.hP
delete mode 100644 contrib/libg++/libg++/src/gen/CHNode.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/CHNode.hP
delete mode 100644 contrib/libg++/libg++/src/gen/CHSet.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/CHSet.hP
delete mode 100644 contrib/libg++/libg++/src/gen/DLDeque.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/DLDeque.hP
delete mode 100644 contrib/libg++/libg++/src/gen/DLList.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/DLList.hP
delete mode 100644 contrib/libg++/libg++/src/gen/Deque.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/Deque.hP
delete mode 100644 contrib/libg++/libg++/src/gen/FPQueue.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/FPQueue.hP
delete mode 100644 contrib/libg++/libg++/src/gen/FPStack.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/FPStack.hP
delete mode 100644 contrib/libg++/libg++/src/gen/FPlex.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/FPlex.hP
delete mode 100644 contrib/libg++/libg++/src/gen/List.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/List.hP
delete mode 100644 contrib/libg++/libg++/src/gen/MPlex.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/MPlex.hP
delete mode 100644 contrib/libg++/libg++/src/gen/Map.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/Map.hP
delete mode 100644 contrib/libg++/libg++/src/gen/OSLBag.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/OSLBag.hP
delete mode 100644 contrib/libg++/libg++/src/gen/OSLSet.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/OSLSet.hP
delete mode 100644 contrib/libg++/libg++/src/gen/OXPBag.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/OXPBag.hP
delete mode 100644 contrib/libg++/libg++/src/gen/OXPSet.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/OXPSet.hP
delete mode 100644 contrib/libg++/libg++/src/gen/PHPQ.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/PHPQ.hP
delete mode 100644 contrib/libg++/libg++/src/gen/PQ.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/PQ.hP
delete mode 100644 contrib/libg++/libg++/src/gen/PSList.hP
delete mode 100644 contrib/libg++/libg++/src/gen/PVec.hP
delete mode 100644 contrib/libg++/libg++/src/gen/Plex.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/Plex.hP
delete mode 100644 contrib/libg++/libg++/src/gen/Queue.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/Queue.hP
delete mode 100644 contrib/libg++/libg++/src/gen/RAVLMap.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/RAVLMap.hP
delete mode 100644 contrib/libg++/libg++/src/gen/RPlex.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/RPlex.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SLBag.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SLBag.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SLList.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SLList.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SLQueue.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SLQueue.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SLSet.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SLSet.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SLStack.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SLStack.hP
delete mode 100644 contrib/libg++/libg++/src/gen/Set.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/Set.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SkipBag.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SkipBag.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SkipMap.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SkipMap.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SkipSet.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SkipSet.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SplayBag.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SplayBag.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SplayMap.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SplayMap.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SplayNode.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SplayNode.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SplayPQ.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SplayPQ.hP
delete mode 100644 contrib/libg++/libg++/src/gen/SplaySet.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/SplaySet.hP
delete mode 100644 contrib/libg++/libg++/src/gen/Stack.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/Stack.hP
delete mode 100644 contrib/libg++/libg++/src/gen/VHBag.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/VHBag.hP
delete mode 100644 contrib/libg++/libg++/src/gen/VHMap.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/VHMap.hP
delete mode 100644 contrib/libg++/libg++/src/gen/VHSet.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/VHSet.hP
delete mode 100644 contrib/libg++/libg++/src/gen/VOHSet.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/VOHSet.hP
delete mode 100644 contrib/libg++/libg++/src/gen/VQueue.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/VQueue.hP
delete mode 100644 contrib/libg++/libg++/src/gen/VStack.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/VStack.hP
delete mode 100644 contrib/libg++/libg++/src/gen/Vec.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/Vec.hP
delete mode 100644 contrib/libg++/libg++/src/gen/XPBag.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/XPBag.hP
delete mode 100644 contrib/libg++/libg++/src/gen/XPDeque.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/XPDeque.hP
delete mode 100644 contrib/libg++/libg++/src/gen/XPPQ.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/XPPQ.hP
delete mode 100644 contrib/libg++/libg++/src/gen/XPQueue.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/XPQueue.hP
delete mode 100644 contrib/libg++/libg++/src/gen/XPSet.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/XPSet.hP
delete mode 100644 contrib/libg++/libg++/src/gen/XPStack.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/XPStack.hP
delete mode 100644 contrib/libg++/libg++/src/gen/XPlex.ccP
delete mode 100644 contrib/libg++/libg++/src/gen/XPlex.hP
delete mode 100644 contrib/libg++/libg++/src/gen/defs.hP
delete mode 100644 contrib/libg++/libg++/src/gen/intSList.hP
delete mode 100644 contrib/libg++/libg++/src/gen/intVec.hP
delete mode 100644 contrib/libg++/libg++/src/generic.h
delete mode 100644 contrib/libg++/libg++/src/getpagesize.h
delete mode 100644 contrib/libg++/libg++/src/hash.cc
delete mode 100644 contrib/libg++/libg++/src/ioob.cc
delete mode 100644 contrib/libg++/libg++/src/lg.cc
delete mode 100644 contrib/libg++/libg++/src/libc.h
delete mode 100644 contrib/libg++/libg++/src/malloc.c
delete mode 100644 contrib/libg++/libg++/src/minmax.cc
delete mode 100644 contrib/libg++/libg++/src/minmax.h
delete mode 100644 contrib/libg++/libg++/src/osfcn.h
delete mode 100644 contrib/libg++/libg++/src/pow.cc
delete mode 100644 contrib/libg++/libg++/src/sqrt.cc
delete mode 100644 contrib/libg++/libg++/src/std.h
delete mode 100644 contrib/libg++/libg++/src/strclass.h
delete mode 100644 contrib/libg++/libg++/src/swap.h
delete mode 100644 contrib/libg++/libg++/src/sysent.h
delete mode 100644 contrib/libg++/libg++/src/timer.c
delete mode 100644 contrib/libg++/libg++/src/typemacros.h
delete mode 100644 contrib/libg++/libg++/test-install/ChangeLog
delete mode 100644 contrib/libg++/libg++/test-install/Foo.cc
delete mode 100644 contrib/libg++/libg++/test-install/Foo.h
delete mode 100644 contrib/libg++/libg++/test-install/Makefile.in
delete mode 100644 contrib/libg++/libg++/test-install/a.cc
delete mode 100644 contrib/libg++/libg++/test-install/bf.cc
delete mode 100644 contrib/libg++/libg++/test-install/bm.cc
delete mode 100644 contrib/libg++/libg++/test-install/configure.in
delete mode 100644 contrib/libg++/libg++/test-install/ex_bar.cc
delete mode 100644 contrib/libg++/libg++/test-install/expected.out
delete mode 100644 contrib/libg++/libg++/test-install/foo_func.cc
delete mode 100644 contrib/libg++/libg++/test-install/foo_main.cc
delete mode 100644 contrib/libg++/libg++/tests/ChangeLog
delete mode 100644 contrib/libg++/libg++/tests/Makefile.in
delete mode 100755 contrib/libg++/libg++/tests/Makefile.sh
delete mode 100644 contrib/libg++/libg++/tests/configure.in
delete mode 100644 contrib/libg++/libg++/tests/depend
delete mode 100644 contrib/libg++/libg++/tests/tBag.cc
delete mode 100644 contrib/libg++/libg++/tests/tBag.exp
delete mode 100644 contrib/libg++/libg++/tests/tBag.inp
delete mode 100644 contrib/libg++/libg++/tests/tBitSet.cc
delete mode 100644 contrib/libg++/libg++/tests/tBitSet.exp
delete mode 100644 contrib/libg++/libg++/tests/tBitSet.inp
delete mode 100644 contrib/libg++/libg++/tests/tBitString.cc
delete mode 100644 contrib/libg++/libg++/tests/tBitString.exp
delete mode 100644 contrib/libg++/libg++/tests/tBitString.inp
delete mode 100644 contrib/libg++/libg++/tests/tCurses.cc
delete mode 100644 contrib/libg++/libg++/tests/tCurses.inp
delete mode 100644 contrib/libg++/libg++/tests/tDeque.cc
delete mode 100644 contrib/libg++/libg++/tests/tDeque.exp
delete mode 100644 contrib/libg++/libg++/tests/tDeque.inp
delete mode 100644 contrib/libg++/libg++/tests/tFile.cc
delete mode 100644 contrib/libg++/libg++/tests/tFile.exp
delete mode 100644 contrib/libg++/libg++/tests/tFile.inp
delete mode 100644 contrib/libg++/libg++/tests/tFix.cc
delete mode 100644 contrib/libg++/libg++/tests/tFix.exp
delete mode 100644 contrib/libg++/libg++/tests/tFix.inp
delete mode 100644 contrib/libg++/libg++/tests/tFix16.cc
delete mode 100644 contrib/libg++/libg++/tests/tFix16.exp
delete mode 100644 contrib/libg++/libg++/tests/tFix16.inp
delete mode 100644 contrib/libg++/libg++/tests/tFix24.cc
delete mode 100644 contrib/libg++/libg++/tests/tFix24.exp
delete mode 100644 contrib/libg++/libg++/tests/tFix24.inp
delete mode 100644 contrib/libg++/libg++/tests/tGetOpt.cc
delete mode 100644 contrib/libg++/libg++/tests/tGetOpt.exp
delete mode 100644 contrib/libg++/libg++/tests/tGetOpt.inp
delete mode 100644 contrib/libg++/libg++/tests/tInteger.cc
delete mode 100644 contrib/libg++/libg++/tests/tInteger.exp
delete mode 100644 contrib/libg++/libg++/tests/tInteger.inp
delete mode 100644 contrib/libg++/libg++/tests/tLList.cc
delete mode 100644 contrib/libg++/libg++/tests/tLList.exp
delete mode 100644 contrib/libg++/libg++/tests/tLList.inp
delete mode 100644 contrib/libg++/libg++/tests/tList.cc
delete mode 100644 contrib/libg++/libg++/tests/tList.exp
delete mode 100644 contrib/libg++/libg++/tests/tList.inp
delete mode 100644 contrib/libg++/libg++/tests/tMap.cc
delete mode 100644 contrib/libg++/libg++/tests/tMap.exp
delete mode 100644 contrib/libg++/libg++/tests/tMap.inp
delete mode 100644 contrib/libg++/libg++/tests/tObstack.cc
delete mode 100644 contrib/libg++/libg++/tests/tObstack.exp
delete mode 100644 contrib/libg++/libg++/tests/tObstack.inp
delete mode 100644 contrib/libg++/libg++/tests/tPQ.cc
delete mode 100644 contrib/libg++/libg++/tests/tPQ.exp
delete mode 100644 contrib/libg++/libg++/tests/tPQ.inp
delete mode 100644 contrib/libg++/libg++/tests/tPlex.cc
delete mode 100644 contrib/libg++/libg++/tests/tPlex.exp
delete mode 100644 contrib/libg++/libg++/tests/tPlex.inp
delete mode 100644 contrib/libg++/libg++/tests/tQueue.cc
delete mode 100644 contrib/libg++/libg++/tests/tQueue.exp
delete mode 100644 contrib/libg++/libg++/tests/tQueue.inp
delete mode 100644 contrib/libg++/libg++/tests/tRandom.cc
delete mode 100644 contrib/libg++/libg++/tests/tRandom.exp
delete mode 100644 contrib/libg++/libg++/tests/tRandom.inp
delete mode 100644 contrib/libg++/libg++/tests/tRational.cc
delete mode 100644 contrib/libg++/libg++/tests/tRational.exp
delete mode 100644 contrib/libg++/libg++/tests/tRational.inp
delete mode 100644 contrib/libg++/libg++/tests/tSet.cc
delete mode 100644 contrib/libg++/libg++/tests/tSet.exp
delete mode 100644 contrib/libg++/libg++/tests/tSet.inp
delete mode 100644 contrib/libg++/libg++/tests/tStack.cc
delete mode 100644 contrib/libg++/libg++/tests/tStack.exp
delete mode 100644 contrib/libg++/libg++/tests/tStack.inp
delete mode 100644 contrib/libg++/libg++/tests/tString.cc
delete mode 100644 contrib/libg++/libg++/tests/tString.exp
delete mode 100644 contrib/libg++/libg++/tests/tString.inp
delete mode 100644 contrib/libg++/libg++/tests/tVec.cc
delete mode 100644 contrib/libg++/libg++/tests/tVec.exp
delete mode 100644 contrib/libg++/libg++/tests/tVec.inp
delete mode 100644 contrib/libg++/libg++/tests/test_h.cc
delete mode 100644 contrib/libg++/libg++/tests/tiLList.cc
delete mode 100644 contrib/libg++/libg++/tests/tiLList.exp
delete mode 100644 contrib/libg++/libiberty/ChangeLog
delete mode 100644 contrib/libg++/libiberty/insque.c
delete mode 100644 contrib/libg++/libiberty/strerror.c
delete mode 100644 contrib/libg++/libio/ChangeLog
delete mode 100644 contrib/libg++/libio/Makefile.in
delete mode 100644 contrib/libg++/libio/NEWS
delete mode 100644 contrib/libg++/libio/PlotFile.cc
delete mode 100644 contrib/libg++/libio/PlotFile.h
delete mode 100644 contrib/libg++/libio/README
delete mode 100644 contrib/libg++/libio/SFile.cc
delete mode 100644 contrib/libg++/libio/SFile.h
delete mode 100644 contrib/libg++/libio/builtinbuf.cc
delete mode 100644 contrib/libg++/libio/builtinbuf.h
delete mode 100644 contrib/libg++/libio/cleanup.c
delete mode 100644 contrib/libg++/libio/depend
delete mode 100644 contrib/libg++/libio/editbuf.cc
delete mode 100644 contrib/libg++/libio/editbuf.h
delete mode 100644 contrib/libg++/libio/filebuf.cc
delete mode 100644 contrib/libg++/libio/filedoalloc.c
delete mode 100644 contrib/libg++/libio/fileops.c
delete mode 100644 contrib/libg++/libio/floatconv.c
delete mode 100644 contrib/libg++/libio/floatio.h
delete mode 100644 contrib/libg++/libio/fstream.cc
delete mode 100644 contrib/libg++/libio/fstream.h
delete mode 100755 contrib/libg++/libio/gen-params
delete mode 100644 contrib/libg++/libio/genops.c
delete mode 100644 contrib/libg++/libio/indstream.cc
delete mode 100644 contrib/libg++/libio/indstream.h
delete mode 100644 contrib/libg++/libio/ioassign.cc
delete mode 100644 contrib/libg++/libio/ioextend.cc
delete mode 100644 contrib/libg++/libio/iofclose.c
delete mode 100644 contrib/libg++/libio/iofdopen.c
delete mode 100644 contrib/libg++/libio/iofflush.c
delete mode 100644 contrib/libg++/libio/iofgetpos.c
delete mode 100644 contrib/libg++/libio/iofgets.c
delete mode 100644 contrib/libg++/libio/iofopen.c
delete mode 100644 contrib/libg++/libio/iofprintf.c
delete mode 100644 contrib/libg++/libio/iofputs.c
delete mode 100644 contrib/libg++/libio/iofread.c
delete mode 100644 contrib/libg++/libio/iofscanf.c
delete mode 100644 contrib/libg++/libio/iofsetpos.c
delete mode 100644 contrib/libg++/libio/ioftell.c
delete mode 100644 contrib/libg++/libio/iofwrite.c
delete mode 100644 contrib/libg++/libio/iogetdelim.c
delete mode 100644 contrib/libg++/libio/iogetline.c
delete mode 100644 contrib/libg++/libio/iogets.c
delete mode 100644 contrib/libg++/libio/ioignore.c
delete mode 100644 contrib/libg++/libio/iolibio.h
delete mode 100644 contrib/libg++/libio/iomanip.cc
delete mode 100644 contrib/libg++/libio/iomanip.h
delete mode 100644 contrib/libg++/libio/iopadn.c
delete mode 100644 contrib/libg++/libio/ioperror.c
delete mode 100644 contrib/libg++/libio/iopopen.c
delete mode 100644 contrib/libg++/libio/ioprims.c
delete mode 100644 contrib/libg++/libio/ioprintf.c
delete mode 100644 contrib/libg++/libio/ioputs.c
delete mode 100644 contrib/libg++/libio/ioscanf.c
delete mode 100644 contrib/libg++/libio/ioseekoff.c
delete mode 100644 contrib/libg++/libio/ioseekpos.c
delete mode 100644 contrib/libg++/libio/iosetbuffer.c
delete mode 100644 contrib/libg++/libio/iosetvbuf.c
delete mode 100644 contrib/libg++/libio/iosprintf.c
delete mode 100644 contrib/libg++/libio/iosscanf.c
delete mode 100644 contrib/libg++/libio/iostdio.h
delete mode 100644 contrib/libg++/libio/iostream.cc
delete mode 100644 contrib/libg++/libio/iostream.h
delete mode 100644 contrib/libg++/libio/iostream.texi
delete mode 100644 contrib/libg++/libio/iostreamP.h
delete mode 100644 contrib/libg++/libio/iostrerror.c
delete mode 100644 contrib/libg++/libio/ioungetc.c
delete mode 100644 contrib/libg++/libio/iovfprintf.c
delete mode 100644 contrib/libg++/libio/iovfscanf.c
delete mode 100644 contrib/libg++/libio/iovsprintf.c
delete mode 100644 contrib/libg++/libio/iovsscanf.c
delete mode 100644 contrib/libg++/libio/isgetline.cc
delete mode 100644 contrib/libg++/libio/isgetsb.cc
delete mode 100644 contrib/libg++/libio/isscan.cc
delete mode 100644 contrib/libg++/libio/istream.h
delete mode 100644 contrib/libg++/libio/libio.h
delete mode 100644 contrib/libg++/libio/libioP.h
delete mode 100644 contrib/libg++/libio/osform.cc
delete mode 100644 contrib/libg++/libio/ostream.h
delete mode 100644 contrib/libg++/libio/outfloat.c
delete mode 100644 contrib/libg++/libio/parsestream.cc
delete mode 100644 contrib/libg++/libio/parsestream.h
delete mode 100644 contrib/libg++/libio/pfstream.cc
delete mode 100644 contrib/libg++/libio/pfstream.h
delete mode 100644 contrib/libg++/libio/procbuf.cc
delete mode 100644 contrib/libg++/libio/procbuf.h
delete mode 100644 contrib/libg++/libio/sbform.cc
delete mode 100644 contrib/libg++/libio/sbgetline.cc
delete mode 100644 contrib/libg++/libio/sbscan.cc
delete mode 100644 contrib/libg++/libio/stdfiles.c
delete mode 100644 contrib/libg++/libio/stdiostream.cc
delete mode 100644 contrib/libg++/libio/stdiostream.h
delete mode 100644 contrib/libg++/libio/stdstrbufs.cc
delete mode 100644 contrib/libg++/libio/stdstreams.cc
delete mode 100644 contrib/libg++/libio/stream.cc
delete mode 100644 contrib/libg++/libio/stream.h
delete mode 100644 contrib/libg++/libio/streambuf.cc
delete mode 100644 contrib/libg++/libio/streambuf.h
delete mode 100644 contrib/libg++/libio/strfile.h
delete mode 100644 contrib/libg++/libio/strops.c
delete mode 100644 contrib/libg++/libio/strstream.cc
delete mode 100644 contrib/libg++/libio/strstream.h
delete mode 100644 contrib/libg++/libio/tests/ChangeLog
delete mode 100644 contrib/libg++/libio/tests/Makefile.in
delete mode 100644 contrib/libg++/libio/tests/configure.in
delete mode 100644 contrib/libg++/libio/tests/hounddog.cc
delete mode 100644 contrib/libg++/libio/tests/hounddog.exp
delete mode 100644 contrib/libg++/libio/tests/hounddog.inp
delete mode 100644 contrib/libg++/libio/tests/putbackdog.cc
delete mode 100644 contrib/libg++/libio/tests/tFile.cc
delete mode 100644 contrib/libg++/libio/tests/tFile.exp
delete mode 100644 contrib/libg++/libio/tests/tFile.inp
delete mode 100644 contrib/libg++/libio/tests/tfformat.c
delete mode 100644 contrib/libg++/libio/tests/tiformat.c
delete mode 100644 contrib/libg++/libio/tests/tiomanip.cc
delete mode 100644 contrib/libg++/libio/tests/tiomanip.exp
delete mode 100644 contrib/libg++/libio/tests/tiomisc.cc
delete mode 100644 contrib/libg++/libio/tests/tiomisc.exp
delete mode 100644 contrib/libg++/libio/tests/tstdiomisc.c
delete mode 100644 contrib/libg++/libio/tests/tstdiomisc.exp
delete mode 100644 contrib/libg++/librx/ChangeLog
delete mode 100644 contrib/libg++/librx/DOC
delete mode 100644 contrib/libg++/librx/rx.c
delete mode 100644 contrib/libg++/librx/rx.h
delete mode 100644 contrib/libg++/libstdc++/ChangeLog
delete mode 100644 contrib/libg++/libstdc++/Makefile.in
delete mode 100644 contrib/libg++/libstdc++/algorithm
delete mode 100644 contrib/libg++/libstdc++/cassert
delete mode 100644 contrib/libg++/libstdc++/cctype
delete mode 100644 contrib/libg++/libstdc++/cerrno
delete mode 100644 contrib/libg++/libstdc++/cfloat
delete mode 100644 contrib/libg++/libstdc++/cinst.cc
delete mode 100644 contrib/libg++/libstdc++/ciso646
delete mode 100644 contrib/libg++/libstdc++/climits
delete mode 100644 contrib/libg++/libstdc++/clocale
delete mode 100644 contrib/libg++/libstdc++/cmath
delete mode 100644 contrib/libg++/libstdc++/cmathi.cc
delete mode 100644 contrib/libg++/libstdc++/complex
delete mode 100644 contrib/libg++/libstdc++/complex.h
delete mode 100644 contrib/libg++/libstdc++/csetjmp
delete mode 100644 contrib/libg++/libstdc++/csignal
delete mode 100644 contrib/libg++/libstdc++/cstdarg
delete mode 100644 contrib/libg++/libstdc++/cstddef
delete mode 100644 contrib/libg++/libstdc++/cstdio
delete mode 100644 contrib/libg++/libstdc++/cstdlib
delete mode 100644 contrib/libg++/libstdc++/cstdlibi.cc
delete mode 100644 contrib/libg++/libstdc++/cstring
delete mode 100644 contrib/libg++/libstdc++/cstringi.cc
delete mode 100644 contrib/libg++/libstdc++/ctime
delete mode 100644 contrib/libg++/libstdc++/cwchar
delete mode 100644 contrib/libg++/libstdc++/cwctype
delete mode 100644 contrib/libg++/libstdc++/deque
delete mode 100644 contrib/libg++/libstdc++/exception
delete mode 100644 contrib/libg++/libstdc++/exceptioni.cc
delete mode 100644 contrib/libg++/libstdc++/functional
delete mode 100644 contrib/libg++/libstdc++/iterator
delete mode 100644 contrib/libg++/libstdc++/list
delete mode 100644 contrib/libg++/libstdc++/map
delete mode 100644 contrib/libg++/libstdc++/memory
delete mode 100644 contrib/libg++/libstdc++/new
delete mode 100644 contrib/libg++/libstdc++/new.h
delete mode 100644 contrib/libg++/libstdc++/newi.cc
delete mode 100644 contrib/libg++/libstdc++/numeric
delete mode 100644 contrib/libg++/libstdc++/queue
delete mode 100644 contrib/libg++/libstdc++/set
delete mode 100644 contrib/libg++/libstdc++/sinst.cc
delete mode 100644 contrib/libg++/libstdc++/stack
delete mode 100644 contrib/libg++/libstdc++/std/bastring.cc
delete mode 100644 contrib/libg++/libstdc++/std/bastring.h
delete mode 100644 contrib/libg++/libstdc++/std/cassert.h
delete mode 100644 contrib/libg++/libstdc++/std/cctype.h
delete mode 100644 contrib/libg++/libstdc++/std/cerrno.h
delete mode 100644 contrib/libg++/libstdc++/std/cfloat.h
delete mode 100644 contrib/libg++/libstdc++/std/cinst.h
delete mode 100644 contrib/libg++/libstdc++/std/ciso646.h
delete mode 100644 contrib/libg++/libstdc++/std/climits.h
delete mode 100644 contrib/libg++/libstdc++/std/clocale.h
delete mode 100644 contrib/libg++/libstdc++/std/cmath.h
delete mode 100644 contrib/libg++/libstdc++/std/complex.h
delete mode 100644 contrib/libg++/libstdc++/std/complext.cc
delete mode 100644 contrib/libg++/libstdc++/std/complext.h
delete mode 100644 contrib/libg++/libstdc++/std/csetjmp.h
delete mode 100644 contrib/libg++/libstdc++/std/csignal.h
delete mode 100644 contrib/libg++/libstdc++/std/cstdarg.h
delete mode 100644 contrib/libg++/libstdc++/std/cstddef.h
delete mode 100644 contrib/libg++/libstdc++/std/cstdio.h
delete mode 100644 contrib/libg++/libstdc++/std/cstdlib.h
delete mode 100644 contrib/libg++/libstdc++/std/cstring.h
delete mode 100644 contrib/libg++/libstdc++/std/ctime.h
delete mode 100644 contrib/libg++/libstdc++/std/cwchar.h
delete mode 100644 contrib/libg++/libstdc++/std/cwctype.h
delete mode 100644 contrib/libg++/libstdc++/std/dcomplex.h
delete mode 100644 contrib/libg++/libstdc++/std/exception.h
delete mode 100644 contrib/libg++/libstdc++/std/fcomplex.h
delete mode 100644 contrib/libg++/libstdc++/std/ldcomplex.h
delete mode 100644 contrib/libg++/libstdc++/std/new.h
delete mode 100644 contrib/libg++/libstdc++/std/sinst.h
delete mode 100644 contrib/libg++/libstdc++/std/stddef.h
delete mode 100644 contrib/libg++/libstdc++/std/stdexcept.h
delete mode 100644 contrib/libg++/libstdc++/std/straits.h
delete mode 100644 contrib/libg++/libstdc++/std/string.h
delete mode 100644 contrib/libg++/libstdc++/std/typeinfo.h
delete mode 100644 contrib/libg++/libstdc++/stddef
delete mode 100644 contrib/libg++/libstdc++/stddefi.cc
delete mode 100644 contrib/libg++/libstdc++/stdexcept
delete mode 100644 contrib/libg++/libstdc++/stdexcepti.cc
delete mode 100644 contrib/libg++/libstdc++/stl.h
delete mode 100644 contrib/libg++/libstdc++/stl/ChangeLog
delete mode 100644 contrib/libg++/libstdc++/stl/Makefile.in
delete mode 100644 contrib/libg++/libstdc++/stl/README
delete mode 100644 contrib/libg++/libstdc++/stl/algo.h
delete mode 100644 contrib/libg++/libstdc++/stl/algobase.h
delete mode 100644 contrib/libg++/libstdc++/stl/bool.h
delete mode 100644 contrib/libg++/libstdc++/stl/bvector.h
delete mode 100644 contrib/libg++/libstdc++/stl/configure.in
delete mode 100644 contrib/libg++/libstdc++/stl/defalloc.h
delete mode 100644 contrib/libg++/libstdc++/stl/deque.h
delete mode 100644 contrib/libg++/libstdc++/stl/faralloc.h
delete mode 100644 contrib/libg++/libstdc++/stl/fdeque.h
delete mode 100644 contrib/libg++/libstdc++/stl/flist.h
delete mode 100644 contrib/libg++/libstdc++/stl/fmap.h
delete mode 100644 contrib/libg++/libstdc++/stl/fmultmap.h
delete mode 100644 contrib/libg++/libstdc++/stl/fmultset.h
delete mode 100644 contrib/libg++/libstdc++/stl/fset.h
delete mode 100644 contrib/libg++/libstdc++/stl/function.h
delete mode 100644 contrib/libg++/libstdc++/stl/hdeque.h
delete mode 100644 contrib/libg++/libstdc++/stl/heap.h
delete mode 100644 contrib/libg++/libstdc++/stl/hlist.h
delete mode 100644 contrib/libg++/libstdc++/stl/hmap.h
delete mode 100644 contrib/libg++/libstdc++/stl/hmultmap.h
delete mode 100644 contrib/libg++/libstdc++/stl/hmultset.h
delete mode 100644 contrib/libg++/libstdc++/stl/hset.h
delete mode 100644 contrib/libg++/libstdc++/stl/hugalloc.h
delete mode 100644 contrib/libg++/libstdc++/stl/hvector.h
delete mode 100644 contrib/libg++/libstdc++/stl/iterator.h
delete mode 100644 contrib/libg++/libstdc++/stl/lbvector.h
delete mode 100644 contrib/libg++/libstdc++/stl/ldeque.h
delete mode 100644 contrib/libg++/libstdc++/stl/list.h
delete mode 100644 contrib/libg++/libstdc++/stl/llist.h
delete mode 100644 contrib/libg++/libstdc++/stl/lmap.h
delete mode 100644 contrib/libg++/libstdc++/stl/lmultmap.h
delete mode 100644 contrib/libg++/libstdc++/stl/lmultset.h
delete mode 100644 contrib/libg++/libstdc++/stl/lngalloc.h
delete mode 100644 contrib/libg++/libstdc++/stl/lset.h
delete mode 100644 contrib/libg++/libstdc++/stl/map.h
delete mode 100644 contrib/libg++/libstdc++/stl/multimap.h
delete mode 100644 contrib/libg++/libstdc++/stl/multiset.h
delete mode 100644 contrib/libg++/libstdc++/stl/neralloc.h
delete mode 100644 contrib/libg++/libstdc++/stl/nmap.h
delete mode 100644 contrib/libg++/libstdc++/stl/nmultmap.h
delete mode 100644 contrib/libg++/libstdc++/stl/nmultset.h
delete mode 100644 contrib/libg++/libstdc++/stl/nset.h
delete mode 100644 contrib/libg++/libstdc++/stl/pair.h
delete mode 100644 contrib/libg++/libstdc++/stl/projectn.h
delete mode 100644 contrib/libg++/libstdc++/stl/random.cc
delete mode 100644 contrib/libg++/libstdc++/stl/set.h
delete mode 100644 contrib/libg++/libstdc++/stl/stack.h
delete mode 100644 contrib/libg++/libstdc++/stl/tempbuf.cc
delete mode 100644 contrib/libg++/libstdc++/stl/tempbuf.h
delete mode 100644 contrib/libg++/libstdc++/stl/tree.cc
delete mode 100644 contrib/libg++/libstdc++/stl/tree.h
delete mode 100644 contrib/libg++/libstdc++/stl/vector.h
delete mode 100644 contrib/libg++/libstdc++/string
delete mode 100644 contrib/libg++/libstdc++/tests/ChangeLog
delete mode 100644 contrib/libg++/libstdc++/tests/Makefile.in
delete mode 100644 contrib/libg++/libstdc++/tests/configure.in
delete mode 100644 contrib/libg++/libstdc++/tests/tcomplex.cc
delete mode 100644 contrib/libg++/libstdc++/tests/tcomplex.exp
delete mode 100644 contrib/libg++/libstdc++/tests/tcomplex.inp
delete mode 100644 contrib/libg++/libstdc++/tests/tlist.cc
delete mode 100644 contrib/libg++/libstdc++/tests/tlist.exp
delete mode 100644 contrib/libg++/libstdc++/tests/tmap.cc
delete mode 100644 contrib/libg++/libstdc++/tests/tmap.exp
delete mode 100644 contrib/libg++/libstdc++/tests/tstring.cc
delete mode 100644 contrib/libg++/libstdc++/tests/tstring.exp
delete mode 100644 contrib/libg++/libstdc++/tests/tstring.inp
delete mode 100644 contrib/libg++/libstdc++/tests/tvector.cc
delete mode 100644 contrib/libg++/libstdc++/tests/tvector.exp
delete mode 100644 contrib/libg++/libstdc++/typeinfo
delete mode 100644 contrib/libg++/libstdc++/typeinfoi.cc
delete mode 100644 contrib/libg++/libstdc++/utility
delete mode 100644 contrib/libg++/libstdc++/vector
delete mode 100644 contrib/libio/ChangeLog
delete mode 100644 contrib/libio/Makefile.in
delete mode 100644 contrib/libio/NEWS
delete mode 100644 contrib/libio/PlotFile.cc
delete mode 100644 contrib/libio/PlotFile.h
delete mode 100644 contrib/libio/README
delete mode 100644 contrib/libio/SFile.cc
delete mode 100644 contrib/libio/SFile.h
delete mode 100644 contrib/libio/builtinbuf.cc
delete mode 100644 contrib/libio/builtinbuf.h
delete mode 100644 contrib/libio/cleanup.c
delete mode 100644 contrib/libio/config.shared
delete mode 100644 contrib/libio/config/hpux.mt
delete mode 100644 contrib/libio/config/isc.mt
delete mode 100644 contrib/libio/config/linux.mt
delete mode 100644 contrib/libio/config/linuxaxp1-libc-lock.h
delete mode 100644 contrib/libio/config/linuxaxp1-stdio-lock.h
delete mode 100644 contrib/libio/config/linuxaxp1.mt
delete mode 100644 contrib/libio/config/linuxlibc1.mt
delete mode 100644 contrib/libio/config/mn10200.mt
delete mode 100644 contrib/libio/config/mtsafe.mt
delete mode 100644 contrib/libio/config/netware.mt
delete mode 100644 contrib/libio/configure.in
delete mode 100644 contrib/libio/dbz/Makefile.in
delete mode 100644 contrib/libio/dbz/README
delete mode 100644 contrib/libio/dbz/altbytes
delete mode 100644 contrib/libio/dbz/byteflip.c
delete mode 100644 contrib/libio/dbz/case.c
delete mode 100644 contrib/libio/dbz/case.h
delete mode 100644 contrib/libio/dbz/configure.in
delete mode 100644 contrib/libio/dbz/dbz.1
delete mode 100644 contrib/libio/dbz/dbz.3z
delete mode 100644 contrib/libio/dbz/dbz.c
delete mode 100644 contrib/libio/dbz/dbz.h
delete mode 100644 contrib/libio/dbz/dbzmain.c
delete mode 100644 contrib/libio/dbz/fake.c
delete mode 100644 contrib/libio/dbz/firstlast25
delete mode 100755 contrib/libio/dbz/getmap
delete mode 100644 contrib/libio/dbz/random.c
delete mode 100644 contrib/libio/dbz/revbytes
delete mode 100644 contrib/libio/dbz/stdio.h
delete mode 100644 contrib/libio/depend
delete mode 100644 contrib/libio/editbuf.cc
delete mode 100644 contrib/libio/editbuf.h
delete mode 100644 contrib/libio/filebuf.cc
delete mode 100644 contrib/libio/filedoalloc.c
delete mode 100644 contrib/libio/fileops.c
delete mode 100644 contrib/libio/floatconv.c
delete mode 100644 contrib/libio/floatio.h
delete mode 100644 contrib/libio/fstream.cc
delete mode 100644 contrib/libio/fstream.h
delete mode 100755 contrib/libio/gen-params
delete mode 100644 contrib/libio/genops.c
delete mode 100644 contrib/libio/include/empty.h
delete mode 100644 contrib/libio/indstream.cc
delete mode 100644 contrib/libio/indstream.h
delete mode 100644 contrib/libio/ioassign.cc
delete mode 100644 contrib/libio/ioextend.cc
delete mode 100644 contrib/libio/iofclose.c
delete mode 100644 contrib/libio/iofdopen.c
delete mode 100644 contrib/libio/iofeof.c
delete mode 100644 contrib/libio/ioferror.c
delete mode 100644 contrib/libio/iofflush.c
delete mode 100644 contrib/libio/iofflush_u.c
delete mode 100644 contrib/libio/iofgetpos.c
delete mode 100644 contrib/libio/iofgets.c
delete mode 100644 contrib/libio/iofopen.c
delete mode 100644 contrib/libio/iofprintf.c
delete mode 100644 contrib/libio/iofputs.c
delete mode 100644 contrib/libio/iofread.c
delete mode 100644 contrib/libio/iofscanf.c
delete mode 100644 contrib/libio/iofsetpos.c
delete mode 100644 contrib/libio/ioftell.c
delete mode 100644 contrib/libio/iofwrite.c
delete mode 100644 contrib/libio/iogetc.c
delete mode 100644 contrib/libio/iogetdelim.c
delete mode 100644 contrib/libio/iogetline.c
delete mode 100644 contrib/libio/iogets.c
delete mode 100644 contrib/libio/ioignore.c
delete mode 100644 contrib/libio/iolibio.h
delete mode 100644 contrib/libio/iomanip.cc
delete mode 100644 contrib/libio/iomanip.h
delete mode 100644 contrib/libio/iopadn.c
delete mode 100644 contrib/libio/ioperror.c
delete mode 100644 contrib/libio/iopopen.c
delete mode 100644 contrib/libio/ioprims.c
delete mode 100644 contrib/libio/ioprintf.c
delete mode 100644 contrib/libio/ioputc.c
delete mode 100644 contrib/libio/ioputs.c
delete mode 100644 contrib/libio/ioscanf.c
delete mode 100644 contrib/libio/ioseekoff.c
delete mode 100644 contrib/libio/ioseekpos.c
delete mode 100644 contrib/libio/iosetbuffer.c
delete mode 100644 contrib/libio/iosetvbuf.c
delete mode 100644 contrib/libio/iosprintf.c
delete mode 100644 contrib/libio/iosscanf.c
delete mode 100644 contrib/libio/iostdio.h
delete mode 100644 contrib/libio/iostream.cc
delete mode 100644 contrib/libio/iostream.h
delete mode 100644 contrib/libio/iostream.texi
delete mode 100644 contrib/libio/iostreamP.h
delete mode 100644 contrib/libio/iostrerror.c
delete mode 100644 contrib/libio/ioungetc.c
delete mode 100644 contrib/libio/iovfprintf.c
delete mode 100644 contrib/libio/iovfscanf.c
delete mode 100644 contrib/libio/iovsprintf.c
delete mode 100644 contrib/libio/iovsscanf.c
delete mode 100644 contrib/libio/isgetline.cc
delete mode 100644 contrib/libio/isgetsb.cc
delete mode 100644 contrib/libio/isscan.cc
delete mode 100644 contrib/libio/istream.h
delete mode 100644 contrib/libio/libio.h
delete mode 100644 contrib/libio/libioP.h
delete mode 100644 contrib/libio/osform.cc
delete mode 100644 contrib/libio/ostream.h
delete mode 100644 contrib/libio/outfloat.c
delete mode 100644 contrib/libio/parsestream.cc
delete mode 100644 contrib/libio/parsestream.h
delete mode 100644 contrib/libio/peekc.c
delete mode 100644 contrib/libio/pfstream.cc
delete mode 100644 contrib/libio/pfstream.h
delete mode 100644 contrib/libio/procbuf.cc
delete mode 100644 contrib/libio/procbuf.h
delete mode 100644 contrib/libio/sbform.cc
delete mode 100644 contrib/libio/sbgetline.cc
delete mode 100644 contrib/libio/sbscan.cc
delete mode 100644 contrib/libio/stdfiles.c
delete mode 100644 contrib/libio/stdio/ChangeLog
delete mode 100644 contrib/libio/stdio/Makefile.in
delete mode 100644 contrib/libio/stdio/clearerr.c
delete mode 100644 contrib/libio/stdio/clearerr_u.c
delete mode 100644 contrib/libio/stdio/configure.in
delete mode 100644 contrib/libio/stdio/fdopen.c
delete mode 100644 contrib/libio/stdio/feof.c
delete mode 100644 contrib/libio/stdio/feof_u.c
delete mode 100644 contrib/libio/stdio/ferror.c
delete mode 100644 contrib/libio/stdio/ferror_u.c
delete mode 100644 contrib/libio/stdio/fgetc.c
delete mode 100644 contrib/libio/stdio/fileno.c
delete mode 100644 contrib/libio/stdio/fputc.c
delete mode 100644 contrib/libio/stdio/fputc_u.c
delete mode 100644 contrib/libio/stdio/freopen.c
delete mode 100644 contrib/libio/stdio/fseek.c
delete mode 100644 contrib/libio/stdio/getc.c
delete mode 100644 contrib/libio/stdio/getc_u.c
delete mode 100644 contrib/libio/stdio/getchar.c
delete mode 100644 contrib/libio/stdio/getchar_u.c
delete mode 100644 contrib/libio/stdio/getline.c
delete mode 100644 contrib/libio/stdio/getw.c
delete mode 100644 contrib/libio/stdio/obprintf.c
delete mode 100644 contrib/libio/stdio/popen.c
delete mode 100644 contrib/libio/stdio/putc.c
delete mode 100644 contrib/libio/stdio/putc_u.c
delete mode 100644 contrib/libio/stdio/putchar.c
delete mode 100644 contrib/libio/stdio/putchar_u.c
delete mode 100644 contrib/libio/stdio/putw.c
delete mode 100644 contrib/libio/stdio/rewind.c
delete mode 100644 contrib/libio/stdio/setbuf.c
delete mode 100644 contrib/libio/stdio/setfileno.c
delete mode 100644 contrib/libio/stdio/setlinebuf.c
delete mode 100644 contrib/libio/stdio/snprintf.c
delete mode 100644 contrib/libio/stdio/stdio.h
delete mode 100644 contrib/libio/stdio/vasprintf.c
delete mode 100644 contrib/libio/stdio/vfprintf.c
delete mode 100644 contrib/libio/stdio/vfscanf.c
delete mode 100644 contrib/libio/stdio/vprintf.c
delete mode 100644 contrib/libio/stdio/vscanf.c
delete mode 100644 contrib/libio/stdio/vsnprintf.c
delete mode 100644 contrib/libio/stdiostream.cc
delete mode 100644 contrib/libio/stdiostream.h
delete mode 100644 contrib/libio/stdstrbufs.cc
delete mode 100644 contrib/libio/stdstreams.cc
delete mode 100644 contrib/libio/stream.cc
delete mode 100644 contrib/libio/stream.h
delete mode 100644 contrib/libio/streambuf.cc
delete mode 100644 contrib/libio/streambuf.h
delete mode 100644 contrib/libio/strfile.h
delete mode 100644 contrib/libio/strops.c
delete mode 100644 contrib/libio/strstream.cc
delete mode 100644 contrib/libio/strstream.h
delete mode 100644 contrib/libio/tests/ChangeLog
delete mode 100644 contrib/libio/tests/Makefile.in
delete mode 100644 contrib/libio/tests/configure.in
delete mode 100644 contrib/libio/tests/hounddog.cc
delete mode 100644 contrib/libio/tests/hounddog.exp
delete mode 100644 contrib/libio/tests/hounddog.inp
delete mode 100644 contrib/libio/tests/putbackdog.cc
delete mode 100644 contrib/libio/tests/tFile.cc
delete mode 100644 contrib/libio/tests/tFile.exp
delete mode 100644 contrib/libio/tests/tFile.inp
delete mode 100644 contrib/libio/tests/tfformat.c
delete mode 100644 contrib/libio/tests/tiformat.c
delete mode 100644 contrib/libio/tests/tiomanip.cc
delete mode 100644 contrib/libio/tests/tiomanip.exp
delete mode 100644 contrib/libio/tests/tiomisc.cc
delete mode 100644 contrib/libio/tests/tiomisc.exp
delete mode 100644 contrib/libio/tests/tstdiomisc.c
delete mode 100644 contrib/libio/tests/tstdiomisc.exp
delete mode 100644 contrib/libio/testsuite/ChangeLog
delete mode 100644 contrib/libio/testsuite/Makefile.in
delete mode 100644 contrib/libio/testsuite/config/default.exp
delete mode 100644 contrib/libio/testsuite/configure.in
delete mode 100644 contrib/libio/testsuite/lib/libio.exp
delete mode 100644 contrib/libio/testsuite/libio.tests/hounddog.exp
delete mode 100644 contrib/libio/testsuite/libio.tests/putbackdog.exp
delete mode 100644 contrib/libio/testsuite/libio.tests/tFile.exp
delete mode 100644 contrib/libio/testsuite/libio.tests/tfformat.exp
delete mode 100644 contrib/libio/testsuite/libio.tests/tiformat.exp
delete mode 100644 contrib/libio/testsuite/libio.tests/tiomanip.exp
delete mode 100644 contrib/libio/testsuite/libio.tests/tiomisc.exp
delete mode 100644 contrib/libio/testsuite/libio.tests/tstdiomisc.exp
delete mode 100644 contrib/libobjc/objc-features.texi
delete mode 100644 contrib/libstdc++/FREEBSD-upgrade
delete mode 100644 contrib/libstdc++/NEWS
delete mode 100644 contrib/libstdc++/cassert
delete mode 100644 contrib/libstdc++/cctype
delete mode 100644 contrib/libstdc++/cerrno
delete mode 100644 contrib/libstdc++/cfloat
delete mode 100644 contrib/libstdc++/cinst.cc
delete mode 100644 contrib/libstdc++/ciso646
delete mode 100644 contrib/libstdc++/climits
delete mode 100644 contrib/libstdc++/clocale
delete mode 100644 contrib/libstdc++/cmath
delete mode 100644 contrib/libstdc++/cmathi.cc
delete mode 100644 contrib/libstdc++/complex
delete mode 100644 contrib/libstdc++/complex.h
delete mode 100644 contrib/libstdc++/config/aix.ml
delete mode 100644 contrib/libstdc++/config/cpu/sparc/sparc32/bits/atomicity.h
delete mode 100644 contrib/libstdc++/config/cpu/sparc/sparc64/bits/atomicity.h
delete mode 100644 contrib/libstdc++/config/dec-osf.ml
delete mode 100644 contrib/libstdc++/config/delta.mt
delete mode 100644 contrib/libstdc++/config/elf.ml
delete mode 100644 contrib/libstdc++/config/elfshlibm.ml
delete mode 100644 contrib/libstdc++/config/freebsd.ml
delete mode 100644 contrib/libstdc++/config/gnu.ml
delete mode 100644 contrib/libstdc++/config/hpux.ml
delete mode 100644 contrib/libstdc++/config/irix5.ml
delete mode 100644 contrib/libstdc++/config/linux.ml
delete mode 100644 contrib/libstdc++/config/linux.mt
delete mode 100644 contrib/libstdc++/config/openbsd.ml
delete mode 100644 contrib/libstdc++/config/openbsd.mt
delete mode 100644 contrib/libstdc++/config/posix.mt
delete mode 100644 contrib/libstdc++/config/sol2pth.mt
delete mode 100644 contrib/libstdc++/config/sol2shm.ml
delete mode 100644 contrib/libstdc++/config/sol2solth.mt
delete mode 100644 contrib/libstdc++/config/sunos4.ml
delete mode 100644 contrib/libstdc++/config/x86-interix.ml
delete mode 100644 contrib/libstdc++/csetjmp
delete mode 100644 contrib/libstdc++/csignal
delete mode 100644 contrib/libstdc++/cstdarg
delete mode 100644 contrib/libstdc++/cstddef
delete mode 100644 contrib/libstdc++/cstdio
delete mode 100644 contrib/libstdc++/cstdlib
delete mode 100644 contrib/libstdc++/cstdlibi.cc
delete mode 100644 contrib/libstdc++/cstring
delete mode 100644 contrib/libstdc++/cstringi.cc
delete mode 100644 contrib/libstdc++/ctime
delete mode 100644 contrib/libstdc++/cwchar
delete mode 100644 contrib/libstdc++/cwctype
delete mode 100644 contrib/libstdc++/fstream
delete mode 100644 contrib/libstdc++/iomanip
delete mode 100644 contrib/libstdc++/iosfwd
delete mode 100644 contrib/libstdc++/iostream
delete mode 100644 contrib/libstdc++/libio/ChangeLog
delete mode 100644 contrib/libstdc++/libio/Makefile.am
delete mode 100644 contrib/libstdc++/libio/Makefile.in
delete mode 100644 contrib/libstdc++/libio/_G_config.h
delete mode 100644 contrib/libstdc++/libio/filedoalloc.c
delete mode 100644 contrib/libstdc++/libio/fileops.c
delete mode 100644 contrib/libstdc++/libio/genops.c
delete mode 100644 contrib/libstdc++/libio/iofclose.c
delete mode 100644 contrib/libstdc++/libio/iofopen.c
delete mode 100644 contrib/libstdc++/libio/iofwide.c
delete mode 100644 contrib/libstdc++/libio/iolibio.h
delete mode 100644 contrib/libstdc++/libio/libio.h
delete mode 100644 contrib/libstdc++/libio/libioP.h
delete mode 100644 contrib/libstdc++/libio/stdfiles.c
delete mode 100644 contrib/libstdc++/libio/stdio.c
delete mode 100644 contrib/libstdc++/libio/wfiledoalloc.c
delete mode 100644 contrib/libstdc++/libio/wfileops.c
delete mode 100644 contrib/libstdc++/libio/wgenops.c
delete mode 100644 contrib/libstdc++/sinst.cc
delete mode 100644 contrib/libstdc++/src/cmath.cc
delete mode 100644 contrib/libstdc++/sstream
delete mode 100644 contrib/libstdc++/std/bastring.cc
delete mode 100644 contrib/libstdc++/std/bastring.h
delete mode 100644 contrib/libstdc++/std/complext.cc
delete mode 100644 contrib/libstdc++/std/complext.h
delete mode 100644 contrib/libstdc++/std/dcomplex.h
delete mode 100644 contrib/libstdc++/std/fcomplex.h
delete mode 100644 contrib/libstdc++/std/gslice.h
delete mode 100644 contrib/libstdc++/std/gslice_array.h
delete mode 100644 contrib/libstdc++/std/indirect_array.h
delete mode 100644 contrib/libstdc++/std/ldcomplex.h
delete mode 100644 contrib/libstdc++/std/mask_array.h
delete mode 100644 contrib/libstdc++/std/slice.h
delete mode 100644 contrib/libstdc++/std/slice_array.h
delete mode 100644 contrib/libstdc++/std/std_valarray.h
delete mode 100644 contrib/libstdc++/std/straits.h
delete mode 100644 contrib/libstdc++/std/valarray_array.h
delete mode 100644 contrib/libstdc++/std/valarray_array.tcc
delete mode 100644 contrib/libstdc++/std/valarray_meta.h
delete mode 100644 contrib/libstdc++/stdexcept
delete mode 100644 contrib/libstdc++/stdexcepti.cc
delete mode 100644 contrib/libstdc++/stl.h
delete mode 100644 contrib/libstdc++/stl/ChangeLog
delete mode 100644 contrib/libstdc++/stl/README
delete mode 100644 contrib/libstdc++/stl/algo.h
delete mode 100644 contrib/libstdc++/stl/algobase.h
delete mode 100644 contrib/libstdc++/stl/algorithm
delete mode 100644 contrib/libstdc++/stl/alloc.h
delete mode 100644 contrib/libstdc++/stl/bitset
delete mode 100644 contrib/libstdc++/stl/bvector.h
delete mode 100644 contrib/libstdc++/stl/defalloc.h
delete mode 100644 contrib/libstdc++/stl/deque
delete mode 100644 contrib/libstdc++/stl/deque.h
delete mode 100644 contrib/libstdc++/stl/function.h
delete mode 100644 contrib/libstdc++/stl/functional
delete mode 100644 contrib/libstdc++/stl/hash_map
delete mode 100644 contrib/libstdc++/stl/hash_map.h
delete mode 100644 contrib/libstdc++/stl/hash_set
delete mode 100644 contrib/libstdc++/stl/hash_set.h
delete mode 100644 contrib/libstdc++/stl/hashtable.h
delete mode 100644 contrib/libstdc++/stl/heap.h
delete mode 100644 contrib/libstdc++/stl/iterator
delete mode 100644 contrib/libstdc++/stl/iterator.h
delete mode 100644 contrib/libstdc++/stl/list
delete mode 100644 contrib/libstdc++/stl/list.h
delete mode 100644 contrib/libstdc++/stl/map
delete mode 100644 contrib/libstdc++/stl/map.h
delete mode 100644 contrib/libstdc++/stl/memory
delete mode 100644 contrib/libstdc++/stl/multimap.h
delete mode 100644 contrib/libstdc++/stl/multiset.h
delete mode 100644 contrib/libstdc++/stl/numeric
delete mode 100644 contrib/libstdc++/stl/pair.h
delete mode 100644 contrib/libstdc++/stl/pthread_alloc
delete mode 100644 contrib/libstdc++/stl/pthread_alloc.h
delete mode 100644 contrib/libstdc++/stl/queue
delete mode 100644 contrib/libstdc++/stl/rope
delete mode 100644 contrib/libstdc++/stl/rope.h
delete mode 100644 contrib/libstdc++/stl/ropeimpl.h
delete mode 100644 contrib/libstdc++/stl/set
delete mode 100644 contrib/libstdc++/stl/set.h
delete mode 100644 contrib/libstdc++/stl/slist
delete mode 100644 contrib/libstdc++/stl/slist.h
delete mode 100644 contrib/libstdc++/stl/stack
delete mode 100644 contrib/libstdc++/stl/stack.h
delete mode 100644 contrib/libstdc++/stl/stl_algo.h
delete mode 100644 contrib/libstdc++/stl/stl_algobase.h
delete mode 100644 contrib/libstdc++/stl/stl_alloc.h
delete mode 100644 contrib/libstdc++/stl/stl_bvector.h
delete mode 100644 contrib/libstdc++/stl/stl_config.h
delete mode 100644 contrib/libstdc++/stl/stl_construct.h
delete mode 100644 contrib/libstdc++/stl/stl_deque.h
delete mode 100644 contrib/libstdc++/stl/stl_function.h
delete mode 100644 contrib/libstdc++/stl/stl_hash_fun.h
delete mode 100644 contrib/libstdc++/stl/stl_hash_map.h
delete mode 100644 contrib/libstdc++/stl/stl_hash_set.h
delete mode 100644 contrib/libstdc++/stl/stl_hashtable.h
delete mode 100644 contrib/libstdc++/stl/stl_heap.h
delete mode 100644 contrib/libstdc++/stl/stl_iterator.h
delete mode 100644 contrib/libstdc++/stl/stl_list.h
delete mode 100644 contrib/libstdc++/stl/stl_map.h
delete mode 100644 contrib/libstdc++/stl/stl_multimap.h
delete mode 100644 contrib/libstdc++/stl/stl_multiset.h
delete mode 100644 contrib/libstdc++/stl/stl_numeric.h
delete mode 100644 contrib/libstdc++/stl/stl_pair.h
delete mode 100644 contrib/libstdc++/stl/stl_queue.h
delete mode 100644 contrib/libstdc++/stl/stl_raw_storage_iter.h
delete mode 100644 contrib/libstdc++/stl/stl_relops.h
delete mode 100644 contrib/libstdc++/stl/stl_rope.h
delete mode 100644 contrib/libstdc++/stl/stl_set.h
delete mode 100644 contrib/libstdc++/stl/stl_slist.h
delete mode 100644 contrib/libstdc++/stl/stl_stack.h
delete mode 100644 contrib/libstdc++/stl/stl_tempbuf.h
delete mode 100644 contrib/libstdc++/stl/stl_tree.h
delete mode 100644 contrib/libstdc++/stl/stl_uninitialized.h
delete mode 100644 contrib/libstdc++/stl/stl_vector.h
delete mode 100644 contrib/libstdc++/stl/tempbuf.h
delete mode 100644 contrib/libstdc++/stl/tree.h
delete mode 100644 contrib/libstdc++/stl/type_traits.h
delete mode 100644 contrib/libstdc++/stl/utility
delete mode 100644 contrib/libstdc++/stl/vector
delete mode 100644 contrib/libstdc++/stl/vector.h
delete mode 100644 contrib/libstdc++/stlinst.cc
delete mode 100644 contrib/libstdc++/string
delete mode 100644 contrib/libstdc++/strstream
delete mode 100644 contrib/libstdc++/tests/ChangeLog
delete mode 100644 contrib/libstdc++/tests/Makefile.in
delete mode 100644 contrib/libstdc++/tests/configure.in
delete mode 100644 contrib/libstdc++/tests/tcomplex.cc
delete mode 100644 contrib/libstdc++/tests/tcomplex.exp
delete mode 100644 contrib/libstdc++/tests/tcomplex.inp
delete mode 100644 contrib/libstdc++/tests/tlist.cc
delete mode 100644 contrib/libstdc++/tests/tlist.exp
delete mode 100644 contrib/libstdc++/tests/tmap.cc
delete mode 100644 contrib/libstdc++/tests/tmap.exp
delete mode 100644 contrib/libstdc++/tests/tstring.cc
delete mode 100644 contrib/libstdc++/tests/tstring.exp
delete mode 100644 contrib/libstdc++/tests/tstring.inp
delete mode 100644 contrib/libstdc++/tests/tvector.cc
delete mode 100644 contrib/libstdc++/tests/tvector.exp
delete mode 100644 contrib/libstdc++/testsuite/ChangeLog
delete mode 100644 contrib/libstdc++/testsuite/Makefile.in
delete mode 100644 contrib/libstdc++/testsuite/config/default.exp
delete mode 100644 contrib/libstdc++/testsuite/configure.in
delete mode 100644 contrib/libstdc++/testsuite/lib/libstdc++.exp
delete mode 100644 contrib/libstdc++/testsuite/libstdc++.tests/test.exp
delete mode 100755 contrib/libstdc++/testsuite_flags.in
delete mode 100644 contrib/libstdc++/valarray
delete mode 100644 contrib/libstdc++/valarray.cc
diff --git a/contrib/gcc/cccp.1 b/contrib/gcc/cccp.1
deleted file mode 100644
index 84eb19ede54e7..0000000000000
--- a/contrib/gcc/cccp.1
+++ /dev/null
@@ -1,674 +0,0 @@
-.\" Copyright (c) 1991, 1992, 1993 Free Software Foundation \-*-Text-*-
-.\" See section COPYING for conditions for redistribution
-.TH cpp 1 "30apr1993" "GNU Tools" "GNU Tools"
-.SH NAME
-cccp, cpp \- The GNU C-Compatible Compiler Preprocessor.
-.SH SYNOPSIS
-.hy 0
-.na
-.TP
-.B cccp
-.RB "[\|" \-$ "\|]"
-.RB "[\|" \-A \c
-.I predicate\c
-.RB [ (\c
-.I value\c
-.BR ) ]\|]
-.RB "[\|" \-C "\|]"
-.RB "[\|" \-D \c
-.I name\c
-.RB [ =\c
-.I definition\c
-\&]\|]
-.RB "[\|" \-dD "\|]"
-.RB "[\|" \-dM "\|]"
-.RB "[\|" "\-I\ "\c
-.I directory\c
-\&\|]
-.RB "[\|" \-H "\|]"
-.RB "[\|" \-I\- "\|]"
-.RB "[\|" "\-imacros\ "\c
-.I file\c
-\&\|]
-.RB "[\|" "\-include\ "\c
-.I file\c
-\&\|]
-.RB "[\|" "\-idirafter\ "\c
-.I dir\c
-\&\|]
-.RB "[\|" "\-iprefix\ "\c
-.I prefix\c
-\&\|]
-.RB "[\|" "\-iwithprefix\ "\c
-.I dir\c
-\&\|]
-.RB "[\|" \-lang\-c "\|]"
-.RB "[\|" \-lang\-c++ "\|]"
-.RB "[\|" \-lang\-objc "\|]"
-.RB "[\|" \-lang\-objc++ "\|]"
-.RB "[\|" \-lint "\|]"
-.RB "[\|" \-M\ [ \-MG "\|]]"
-.RB "[\|" \-MM\ [ \-MG "\|]]"
-.RB "[\|" \-MD\ \c
-.I file\ \c
-\&\|]
-.RB "[\|" \-MMD\ \c
-.I file\ \c
-\&\|]
-.RB "[\|" \-nostdinc "\|]"
-.RB "[\|" \-nostdinc++ "\|]"
-.RB "[\|" \-P "\|]"
-.RB "[\|" \-pedantic "\|]"
-.RB "[\|" \-pedantic\-errors "\|]"
-.RB "[\|" \-traditional "\|]"
-.RB "[\|" \-trigraphs "\|]"
-.RB "[\|" \-U \c
-.I name\c
-\&\|]
-.RB "[\|" \-undef "\|]"
-.RB "[\|" \-Wtrigraphs "\|]"
-.RB "[\|" \-Wcomment "\|]"
-.RB "[\|" \-Wall "\|]"
-.RB "[\|" \-Wtraditional "\|]"
-.br
-.RB "[\|" \c
-.I infile\c
-.RB | \- "\|]"
-.RB "[\|" \c
-.I outfile\c
-.RB | \- "\|]"
-.ad b
-.hy 1
-.SH DESCRIPTION
-The C preprocessor is a \c
-.I macro processor\c
-\& that is used automatically by
-the C compiler to transform your program before actual compilation. It is
-called a macro processor because it allows you to define \c
-.I macros\c
-\&,
-which are brief abbreviations for longer constructs.
-
-The C preprocessor provides four separate facilities that you can use as
-you see fit:
-.TP
-\(bu
-Inclusion of header files. These are files of declarations that can be
-substituted into your program.
-.TP
-\(bu
-Macro expansion. You can define \c
-.I macros\c
-\&, which are abbreviations
-for arbitrary fragments of C code, and then the C preprocessor will
-replace the macros with their definitions throughout the program.
-.TP
-\(bu
-Conditional compilation. Using special preprocessing directives, you
-can include or exclude parts of the program according to various
-conditions.
-.TP
-\(bu
-Line control. If you use a program to combine or rearrange source files into
-an intermediate file which is then compiled, you can use line control
-to inform the compiler of where each source line originally came from.
-.PP
-C preprocessors vary in some details. For a full explanation of the
-GNU C preprocessor, see the
-.B info
-file `\|\c
-.B cpp.info\c
-\&\|', or the manual
-.I The C Preprocessor\c
-\&. Both of these are built from the same documentation source file, `\|\c
-.B cpp.texinfo\c
-\&\|'. The GNU C
-preprocessor provides a superset of the features of ANSI Standard C.
-
-ANSI Standard C requires the rejection of many harmless constructs commonly
-used by today's C programs. Such incompatibility would be inconvenient for
-users, so the GNU C preprocessor is configured to accept these constructs
-by default. Strictly speaking, to get ANSI Standard C, you must use the
-options `\|\c
-.B \-trigraphs\c
-\&\|', `\|\c
-.B \-undef\c
-\&\|' and `\|\c
-.B \-pedantic\c
-\&\|', but in
-practice the consequences of having strict ANSI Standard C make it
-undesirable to do this.
-
-Most often when you use the C preprocessor you will not have to invoke it
-explicitly: the C compiler will do so automatically. However, the
-preprocessor is sometimes useful individually.
-
-When you call the preprocessor individually, either name
-(\c
-.B cpp\c
-\& or \c
-.B cccp\c
-\&) will do\(em\&they are completely synonymous.
-
-The C preprocessor expects two file names as arguments, \c
-.I infile\c
-\& and
-\c
-.I outfile\c
-\&. The preprocessor reads \c
-.I infile\c
-\& together with any other
-files it specifies with `\|\c
-.B #include\c
-\&\|'. All the output generated by the
-combined input files is written in \c
-.I outfile\c
-\&.
-
-Either \c
-.I infile\c
-\& or \c
-.I outfile\c
-\& may be `\|\c
-.B \-\c
-\&\|', which as \c
-.I infile\c
-\&
-means to read from standard input and as \c
-.I outfile\c
-\& means to write to
-standard output. Also, if \c
-.I outfile\c
-\& or both file names are omitted,
-the standard output and standard input are used for the omitted file names.
-.SH OPTIONS
-Here is a table of command options accepted by the C preprocessor.
-These options can also be given when compiling a C program; they are
-passed along automatically to the preprocessor when it is invoked by
-the compiler.
-.TP
-.B \-P
-Inhibit generation of `\|\c
-.B #\c
-\&\|'-lines with line-number information in
-the output from the preprocessor. This might be
-useful when running the preprocessor on something that is not C code
-and will be sent to a program which might be confused by the
-`\|\c
-.B #\c
-\&\|'-lines.
-.TP
-.B \-C
-Do not discard comments: pass them through to the output file.
-Comments appearing in arguments of a macro call will be copied to the
-output before the expansion of the macro call.
-.TP
-.B \-traditional
-Try to imitate the behavior of old-fashioned C, as opposed to ANSI C.
-.TP
-.B \-trigraphs
-Process ANSI standard trigraph sequences. These are three-character
-sequences, all starting with `\|\c
-.B ??\c
-\&\|', that are defined by ANSI C to
-stand for single characters. For example, `\|\c
-.B ??/\c
-\&\|' stands for
-`\|\c
-.BR "\e" "\|',"
-so `\|\c
-.B '??/n'\c
-\&\|' is a character constant for a newline.
-Strictly speaking, the GNU C preprocessor does not support all
-programs in ANSI Standard C unless `\|\c
-.B \-trigraphs\c
-\&\|' is used, but if
-you ever notice the difference it will be with relief.
-
-You don't want to know any more about trigraphs.
-.TP
-.B \-pedantic
-Issue warnings required by the ANSI C standard in certain cases such
-as when text other than a comment follows `\|\c
-.B #else\c
-\&\|' or `\|\c
-.B #endif\c
-\&\|'.
-.TP
-.B \-pedantic\-errors
-Like `\|\c
-.B \-pedantic\c
-\&\|', except that errors are produced rather than
-warnings.
-.TP
-.B \-Wtrigraphs
-Warn if any trigraphs are encountered (assuming they are enabled).
-.TP
-.B \-Wcomment
-.TP
-.B \-Wcomments
-Warn whenever a comment-start sequence `\|\c
-.B /*\c
-\&\|' appears in a comment.
-(Both forms have the same effect).
-.TP
-.B \-Wall
-Requests both `\|\c
-.B \-Wtrigraphs\c
-\&\|' and `\|\c
-.B \-Wcomment\c
-\&\|' (but not
-`\|\c
-.B \-Wtraditional\c
-\&\|').
-.TP
-.B \-Wtraditional
-Warn about certain constructs that behave differently in traditional and
-ANSI C.
-.TP
-.BI "\-I " directory\c
-\&
-Add the directory \c
-.I directory\c
-\& to the end of the list of
-directories to be searched for header files.
-This can be used to override a system header file, substituting your
-own version, since these directories are searched before the system
-header file directories. If you use more than one `\|\c
-.B \-I\c
-\&\|' option,
-the directories are scanned in left-to-right order; the standard
-system directories come after.
-.TP
-.B \-I\-
-Any directories specified with `\|\c
-.B \-I\c
-\&\|' options before the `\|\c
-.B \-I\-\c
-\&\|'
-option are searched only for the case of `\|\c
-.B #include "\c
-.I file\c
-\&"\c
-\&\|';
-they are not searched for `\|\c
-.B #include <\c
-.I file\c
-\&>\c
-\&\|'.
-
-If additional directories are specified with `\|\c
-.B \-I\c
-\&\|' options after
-the `\|\c
-.B \-I\-\c
-\&\|', these directories are searched for all `\|\c
-.B #include\c
-\&\|'
-directives.
-
-In addition, the `\|\c
-.B \-I\-\c
-\&\|' option inhibits the use of the current
-directory as the first search directory for `\|\c
-.B #include "\c
-.I file\c
-\&"\c
-\&\|'.
-Therefore, the current directory is searched only if it is requested
-explicitly with `\|\c
-.B \-I.\c
-\&\|'. Specifying both `\|\c
-.B \-I\-\c
-\&\|' and `\|\c
-.B \-I.\c
-\&\|'
-allows you to control precisely which directories are searched before
-the current one and which are searched after.
-.TP
-.B \-nostdinc
-Do not search the standard system directories for header files.
-Only the directories you have specified with `\|\c
-.B \-I\c
-\&\|' options
-(and the current directory, if appropriate) are searched.
-.TP
-.B \-nostdinc++
-Do not search for header files in the C++ specific standard
-directories, but do still search the other standard directories.
-(This option is used when building libg++.)
-.TP
-.BI "\-D " "name"\c
-\&
-Predefine \c
-.I name\c
-\& as a macro, with definition `\|\c
-.B 1\c
-\&\|'.
-.TP
-.BI "\-D " "name" = definition
-\&
-Predefine \c
-.I name\c
-\& as a macro, with definition \c
-.I definition\c
-\&.
-There are no restrictions on the contents of \c
-.I definition\c
-\&, but if
-you are invoking the preprocessor from a shell or shell-like program
-you may need to use the shell's quoting syntax to protect characters
-such as spaces that have a meaning in the shell syntax. If you use more than
-one `\|\c
-.B \-D\c
-\&\|' for the same
-.I name\c
-\&, the rightmost definition takes effect.
-.TP
-.BI "\-U " "name"\c
-\&
-Do not predefine \c
-.I name\c
-\&. If both `\|\c
-.B \-U\c
-\&\|' and `\|\c
-.B \-D\c
-\&\|' are
-specified for one name, the `\|\c
-.B \-U\c
-\&\|' beats the `\|\c
-.B \-D\c
-\&\|' and the name
-is not predefined.
-.TP
-.B \-undef
-Do not predefine any nonstandard macros.
-.TP
-.BI "\-A " "name(" value )
-Assert (in the same way as the \c
-.B #assert\c
-\& directive)
-the predicate \c
-.I name\c
-\& with tokenlist \c
-.I value\c
-\&. Remember to escape or quote the parentheses on
-shell command lines.
-
-You can use `\|\c
-.B \-A-\c
-\&\|' to disable all predefined assertions; it also
-undefines all predefined macros.
-.TP
-.B \-dM
-Instead of outputting the result of preprocessing, output a list of
-`\|\c
-.B #define\c
-\&\|' directives for all the macros defined during the
-execution of the preprocessor, including predefined macros. This gives
-you a way of finding out what is predefined in your version of the
-preprocessor; assuming you have no file `\|\c
-.B foo.h\c
-\&\|', the command
-.sp
-.br
-touch\ foo.h;\ cpp\ \-dM\ foo.h
-.br
-.sp
-will show the values of any predefined macros.
-.TP
-.B \-dD
-Like `\|\c
-.B \-dM\c
-\&\|' except in two respects: it does \c
-.I not\c
-\& include the
-predefined macros, and it outputs \c
-.I both\c
-\& the `\|\c
-.B #define\c
-\&\|'
-directives and the result of preprocessing. Both kinds of output go to
-the standard output file.
-.PP
-.TP
-.BR \-M\ [ \-MG ]
-Instead of outputting the result of preprocessing, output a rule
-suitable for \c
-.B make\c
-\& describing the dependencies of the main
-source file. The preprocessor outputs one \c
-.B make\c
-\& rule containing
-the object file name for that source file, a colon, and the names of
-all the included files. If there are many included files then the
-rule is split into several lines using `\|\c
-.B \\\\\c
-\&\|'-newline.
-
-`\|\c
-.B \-MG\c
-\&\|' says to treat missing header files as generated files and assume \c
-they live in the same directory as the source file. It must be specified \c
-in addition to `\|\c
-.B \-M\c
-\&\|'.
-
-This feature is used in automatic updating of makefiles.
-.TP
-.BR \-MM\ [ \-MG ]
-Like `\|\c
-.B \-M\c
-\&\|' but mention only the files included with `\|\c
-.B #include
-"\c
-.I file\c
-\&"\c
-\&\|'. System header files included with `\|\c
-.B #include
-<\c
-.I file\c
-\&>\c
-\&\|' are omitted.
-.TP
-.BI \-MD\ file
-Like `\|\c
-.B \-M\c
-\&\|' but the dependency information is written to `\|\c
-.I file\c
-\&\|'. This is in addition to compiling the file as
-specified\(em\&`\|\c
-.B \-MD\c
-\&\|' does not inhibit ordinary compilation the way
-`\|\c
-.B \-M\c
-\&\|' does.
-
-When invoking gcc, do not specify the `\|\c
-.I file\c
-\&\|' argument. Gcc will create file names made by replacing `\|\c
-.B .c\c
-\&\|' with `\|\c
-.B .d\c
-\&\|' at the end of the input file names.
-
-In Mach, you can use the utility \c
-.B md\c
-\& to merge multiple files
-into a single dependency file suitable for using with the `\|\c
-.B make\c
-\&\|'
-command.
-.TP
-.BI \-MMD\ file
-Like `\|\c
-.B \-MD\c
-\&\|' except mention only user header files, not system
-header files.
-.TP
-.B \-H
-Print the name of each header file used, in addition to other normal
-activities.
-.TP
-.BI "\-imacros " "file"\c
-\&
-Process \c
-.I file\c
-\& as input, discarding the resulting output, before
-processing the regular input file. Because the output generated from
-\c
-.I file\c
-\& is discarded, the only effect of `\|\c
-.B \-imacros \c
-.I file\c
-\&\c
-\&\|' is to
-make the macros defined in \c
-.I file\c
-\& available for use in the main
-input. The preprocessor evaluates any `\|\c
-.B \-D\c
-\&\|' and `\|\c
-.B \-U\c
-\&\|' options
-on the command line before processing `\|\c
-.B \-imacros \c
-.I file\c
-\&\|' \c
-\&.
-.TP
-.BI "\-include " "file"
-Process
-.I file
-as input, and include all the resulting output,
-before processing the regular input file.
-.TP
-.BI "-idirafter " "dir"\c
-\&
-Add the directory \c
-.I dir\c
-\& to the second include path. The directories
-on the second include path are searched when a header file is not found
-in any of the directories in the main include path (the one that
-`\|\c
-.B \-I\c
-\&\|' adds to).
-.TP
-.BI "-iprefix " "prefix"\c
-\&
-Specify \c
-.I prefix\c
-\& as the prefix for subsequent `\|\c
-.B \-iwithprefix\c
-\&\|'
-options.
-.TP
-.BI "-iwithprefix " "dir"\c
-\&
-Add a directory to the second include path. The directory's name is
-made by concatenating \c
-.I prefix\c
-\& and \c
-.I dir\c
-\&, where \c
-.I prefix\c
-\&
-was specified previously with `\|\c
-.B \-iprefix\c
-\&\|'.
-.TP
-.B \-lang-c
-.TP
-.B \-lang-c++
-.TP
-.B \-lang-objc
-.TP
-.B \-lang-objc++
-Specify the source language. `\|\c
-.B \-lang-c++\c
-\&\|' makes the preprocessor
-handle C++ comment syntax, and includes extra default include
-directories for C++, and `\|\c
-.B \-lang-objc\c
-\&\|' enables the Objective C
-`\|\c
-.B #import\c
-\&\|' directive. `\|\c
-.B \-lang-c\c
-\&\|' explicitly turns off both of
-these extensions, and `\|\c
-.B \-lang-objc++\c
-\&\|' enables both.
-
-These options are generated by the compiler driver \c
-.B gcc\c
-\&, but not
-passed from the `\|\c
-.B gcc\c
-\&\|' command line.
-.TP
-.B \-lint
-Look for commands to the program checker \c
-.B lint\c
-\& embedded in
-comments, and emit them preceded by `\|\c
-.B #pragma lint\c
-\&\|'. For example,
-the comment `\|\c
-.B /* NOTREACHED */\c
-\&\|' becomes `\|\c
-.B #pragma lint
-NOTREACHED\c
-\&\|'.
-
-This option is available only when you call \c
-.B cpp\c
-\& directly;
-\c
-.B gcc\c
-\& will not pass it from its command line.
-.TP
-.B \-$
-Forbid the use of `\|\c
-.B $\c
-\&\|' in identifiers. This was formerly required for strict conformance
-to the C Standard before the standard was corrected. \c
-
-This option is available only when you call \c
-.B cpp\c
-\& directly;
-.B gcc\c
-\& will not pass it from its command line.
-.SH "SEE ALSO"
-.RB "`\|" Cpp "\|'"
-entry in
-.B info\c
-\&;
-.I The C Preprocessor\c
-, Richard M. Stallman.
-.br
-.BR gcc "(" 1 ");"
-.RB "`\|" Gcc "\|'"
-entry in
-.B info\c
-\&;
-.I
-Using and Porting GNU CC (for version 2.0)\c
-, Richard M. Stallman.
-.SH COPYING
-Copyright (c) 1991, 1992, 1993 Free Software Foundation, Inc.
-.PP
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-.PP
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-.PP
-Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be included in
-translations approved by the Free Software Foundation instead of in
-the original English.
diff --git a/contrib/gcc/config/alpha/crtbegin.asm b/contrib/gcc/config/alpha/crtbegin.asm
deleted file mode 100644
index f954f1ab0d3e5..0000000000000
--- a/contrib/gcc/config/alpha/crtbegin.asm
+++ /dev/null
@@ -1,192 +0,0 @@
- # Copyright (C) 1996, 1998 Free Software Foundation, Inc.
- # Contributed by Richard Henderson (rth@tamu.edu)
- #
- # This file is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by the
- # Free Software Foundation; either version 2, or (at your option) any
- # later version.
- #
- # In addition to the permissions in the GNU General Public License, the
- # Free Software Foundation gives you unlimited permission to link the
- # compiled version of this file with other programs, and to distribute
- # those programs without any restriction coming from the use of this
- # file. (The General Public License restrictions do apply in other
- # respects; for example, they cover modification of the file, and
- # distribution when not linked into another program.)
- #
- # This file is distributed in the hope that it will be useful, but
- # WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- # General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; see the file COPYING. If not, write to
- # the Free Software Foundation, 59 Temple Place - Suite 330,
- # Boston, MA 02111-1307, USA.
- #
- # As a special exception, if you link this library with files
- # compiled with GCC to produce an executable, this does not cause
- # the resulting executable to be covered by the GNU General Public License.
- # This exception does not however invalidate any other reasons why
- # the executable file might be covered by the GNU General Public License.
-
- #
- # Heads of the constructor/destructor lists.
- #
-
- # The __*TOR_LIST__ symbols are not global because when this file is used
- # in a shared library, we do not want the symbol to fall over to the
- # application's lists.
-
-.section .ctors,"aw"
-
- .align 3
-__CTOR_LIST__:
- .quad -1
-
-.section .dtors,"aw"
-
- .align 3
-__DTOR_LIST__:
- .quad -1
-
-.section .eh_frame,"aw"
-__EH_FRAME_BEGIN__:
-
- #
- # Fragment of the ELF _fini routine that invokes our dtor cleanup.
- #
-
-.section .fini,"ax"
-
- # Since the bits of the _fini function are spread across many
- # object files, each potentially with its own GP, we must
- # assume we need to load ours. Further, our .fini section
- # can easily be more than 4MB away from our .text bits so we
- # can't use bsr.
-
- br $29,1f
-1: ldgp $29,0($29)
- jsr $26,__do_global_dtors_aux
-
- # Ideally this call would go in crtend.o, except that we can't
- # get hold of __EH_FRAME_BEGIN__ there.
-
- jsr $26,__do_frame_takedown
-
- # Must match the alignment we got from crti.o else we get
- # zero-filled holes in our _fini function and then SIGILL.
- .align 3
-
- #
- # Fragment of the ELF _init routine that sets up the frame info.
- #
-
-.section .init,"ax"
- br $29,1f
-1: ldgp $29,0($29)
- jsr $26,__do_frame_setup
- .align 3
-
- #
- # Invoke our destructors in order.
- #
-
-.data
-
- # Support recursive calls to exit.
-$ptr: .quad __DTOR_LIST__
-
-.text
-
- .align 3
- .ent __do_global_dtors_aux
-
-__do_global_dtors_aux:
- lda $30,-16($30)
- .frame $30,16,$26,0
- stq $9,8($30)
- stq $26,0($30)
- .mask 0x4000200,-16
- .prologue 0
-
- lda $9,$ptr
- br 1f
-0: stq $1,0($9)
- jsr $26,($27)
-1: ldq $1,0($9)
- ldq $27,8($1)
- addq $1,8,$1
- bne $27,0b
-
- ldq $26,0($30)
- ldq $9,8($30)
- lda $30,16($30)
- ret
-
- .end __do_global_dtors_aux
-
- #
- # Install our frame info.
- #
-
- # ??? How can we rationally keep this size correct?
-
-.section .bss
- .type $object,@object
- .align 3
-$object:
- .zero 48
- .size $object, 48
-
-.text
-
- .align 3
- .ent __do_frame_setup
-
-__do_frame_setup:
- ldgp $29,0($27)
- lda $30,-16($30)
- .frame $30,16,$26,0
- stq $26,0($30)
- .mask 0x4000000,-16
- .prologue 1
-
- lda $1,__register_frame_info
- beq $1,0f
- lda $16,__EH_FRAME_BEGIN__
- lda $17,$object
- jsr $26,__register_frame_info
- ldq $26,0($30)
-0: lda $30,16($30)
- ret
-
- .end __do_frame_setup
-
- #
- # Remove our frame info.
- #
-
- .align 3
- .ent __do_frame_takedown
-
-__do_frame_takedown:
- ldgp $29,0($27)
- lda $30,-16($30)
- .frame $30,16,$26,0
- stq $26,0($30)
- .mask 0x4000000,-16
- .prologue 1
-
- lda $1,__deregister_frame_info
- beq $1,0f
- lda $16,__EH_FRAME_BEGIN__
- jsr $26,__deregister_frame_info
- ldq $26,0($30)
-0: lda $30,16($30)
- ret
-
- .end __do_frame_takedown
-
-.weak __register_frame_info
-.weak __deregister_frame_info
diff --git a/contrib/gcc/config/alpha/crtend.asm b/contrib/gcc/config/alpha/crtend.asm
deleted file mode 100644
index 4a0cc5e9f6124..0000000000000
--- a/contrib/gcc/config/alpha/crtend.asm
+++ /dev/null
@@ -1,108 +0,0 @@
- # Copyright (C) 1996 Free Software Foundation, Inc.
- # Contributed by Richard Henderson (rth@tamu.edu)
- #
- # This file is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by the
- # Free Software Foundation; either version 2, or (at your option) any
- # later version.
- #
- # In addition to the permissions in the GNU General Public License, the
- # Free Software Foundation gives you unlimited permission to link the
- # compiled version of this file with other programs, and to distribute
- # those programs without any restriction coming from the use of this
- # file. (The General Public License restrictions do apply in other
- # respects; for example, they cover modification of the file, and
- # distribution when not linked into another program.)
- #
- # This file is distributed in the hope that it will be useful, but
- # WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- # General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; see the file COPYING. If not, write to
- # the Free Software Foundation, 59 Temple Place - Suite 330,
- # Boston, MA 02111-1307, USA.
- #
- # As a special exception, if you link this library with files
- # compiled with GCC to produce an executable, this does not cause
- # the resulting executable to be covered by the GNU General Public License.
- # This exception does not however invalidate any other reasons why
- # the executable file might be covered by the GNU General Public License.
-
- #
- # Tails of the constructor/destructor lists.
- #
-
- # The __*TOR_END__ symbols are not global because when this file is used
- # in a shared library, we do not want the symbol to fall over to the
- # application's lists.
-
-.section .ctors,"aw"
-
- .align 3
-__CTOR_END__:
- .quad 0
-
-.section .dtors,"aw"
-
- .align 3
-__DTOR_END__:
- .quad 0
-
-.section .eh_frame,"aw"
-__FRAME_END__:
- .quad 0
-
- #
- # Fragment of the ELF _init routine that invokes our ctor startup
- #
-
-.section .init,"ax"
-
- # Since the bits of the _init function are spread across many
- # object files, each potentially with its own GP, we must
- # assume we need to load ours. Further, our .init section
- # can easily be more than 4MB away from our .text bits so we
- # can't use bsr.
-
- br $29,1f
-1: ldgp $29,0($29)
- jsr $26,__do_global_ctors_aux
-
- # Must match the alignment we got from crti.o else we get
- # zero-filled holes in our _init function and thense SIGILL.
- .align 3
-
- #
- # Invoke our destructors in order.
- #
-
-.text
-
- .align 3
- .ent __do_global_ctors_aux
-
-__do_global_ctors_aux:
- ldgp $29,0($27)
- lda $30,-16($30)
- .frame $30,16,$26,0
- stq $9,8($30)
- stq $26,0($30)
- .mask 0x4000200,-16
- .prologue 1
-
- lda $9,__CTOR_END__
- br 1f
-0: jsr $26,($27)
-1: ldq $27,-8($9)
- subq $9,8,$9
- not $27,$0
- bne $0,0b
-
- ldq $26,0($30)
- ldq $9,8($30)
- lda $30,16($30)
- ret
-
- .end __do_global_ctors_aux
diff --git a/contrib/gcc/config/alpha/gdb-osf12.h b/contrib/gcc/config/alpha/gdb-osf12.h
deleted file mode 100644
index 98c2897140177..0000000000000
--- a/contrib/gcc/config/alpha/gdb-osf12.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Definitions of target machine for GNU compiler, for DEC Alpha, using
- encapsulated stabs and OSF V1.2.
- Copyright (C) 1994 Free Software Foundation, Inc.
- Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-#include "alpha/osf12.h"
-
-#undef PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
diff --git a/contrib/gcc/config/alpha/gdb-osf2.h b/contrib/gcc/config/alpha/gdb-osf2.h
deleted file mode 100644
index 5ddb7981b34d7..0000000000000
--- a/contrib/gcc/config/alpha/gdb-osf2.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Definitions of target machine for GNU compiler, for DEC Alpha, using
- encapsulated stabs.
- Copyright (C) 1992, 1993 Free Software Foundation, Inc.
- Contributed by Peter Schauer (pes@regent.e-technik.tu-muenchen.de).
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-#include "alpha/osf2.h"
-
-#undef PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
diff --git a/contrib/gcc/config/alpha/gdb.h b/contrib/gcc/config/alpha/gdb.h
deleted file mode 100644
index ecdbe40a9a45c..0000000000000
--- a/contrib/gcc/config/alpha/gdb.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Definitions of target machine for GNU compiler, for DEC Alpha, using
- encapsulated stabs.
- Copyright (C) 1992, 1993 Free Software Foundation, Inc.
- Contributed by Peter Schauer (pes@regent.e-technik.tu-muenchen.de).
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-#include "alpha/alpha.h"
-
-#undef PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
diff --git a/contrib/gcc/config/alpha/osf2.h b/contrib/gcc/config/alpha/osf2.h
deleted file mode 100644
index 169af5a01c970..0000000000000
--- a/contrib/gcc/config/alpha/osf2.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Definitions of target machine for GNU compiler, for DEC Alpha.
- Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
- Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-
-#include "alpha/alpha.h"
-
-/* In OSF 2.0, the size of wchar_t was changed from short unsigned
- to unsigned int. */
-
-#undef WCHAR_TYPE
-#define WCHAR_TYPE "unsigned int"
-
-#undef WCHAR_TYPE_SIZE
-#define WCHAR_TYPE_SIZE 32
diff --git a/contrib/gcc/config/i386/freebsd-elf.h b/contrib/gcc/config/i386/freebsd-elf.h
deleted file mode 100644
index e97d4ca07bb26..0000000000000
--- a/contrib/gcc/config/i386/freebsd-elf.h
+++ /dev/null
@@ -1,257 +0,0 @@
-/* Definitions for Intel 386 running FreeBSD with ELF format
- Copyright (C) 1996 Free Software Foundation, Inc.
- Contributed by Eric Youngdale.
- Modified for stabs-in-ELF by H.J. Lu.
- Adapted from GNU/Linux version by John Polstra.
- Continued development by David O'Brien
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-#undef TARGET_VERSION
-#define TARGET_VERSION fprintf (stderr, " (i386 FreeBSD/ELF)");
-
-/* The svr4 ABI for the i386 says that records and unions are returned
- in memory. */
-/* On FreeBSD, we do not. */
-#undef DEFAULT_PCC_STRUCT_RETURN
-#define DEFAULT_PCC_STRUCT_RETURN 0
-
-/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using
- libraries compiled with the native cc, so undef it. */
-#undef NO_DOLLAR_IN_LABEL
-
-/* Use more efficient ``thunks'' to implement C++ vtables. */
-#undef DEFAULT_VTABLE_THUNKS
-#define DEFAULT_VTABLE_THUNKS 1
-
-/* Override the default comment-starter of "/". */
-#undef ASM_COMMENT_START
-#define ASM_COMMENT_START "#"
-
-#undef ASM_APP_ON
-#define ASM_APP_ON "#APP\n"
-
-#undef ASM_APP_OFF
-#define ASM_APP_OFF "#NO_APP\n"
-
-#undef SET_ASM_OP
-#define SET_ASM_OP ".set"
-
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
-
-/* Use stabs instead of DWARF debug format. */
-#undef PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
-
-/* Copy this from the svr4 specifications... */
-/* Define the register numbers to be used in Dwarf debugging information.
- The SVR4 reference port C compiler uses the following register numbers
- in its Dwarf output code:
- 0 for %eax (gnu regno = 0)
- 1 for %ecx (gnu regno = 2)
- 2 for %edx (gnu regno = 1)
- 3 for %ebx (gnu regno = 3)
- 4 for %esp (gnu regno = 7)
- 5 for %ebp (gnu regno = 6)
- 6 for %esi (gnu regno = 4)
- 7 for %edi (gnu regno = 5)
- The following three DWARF register numbers are never generated by
- the SVR4 C compiler or by the GNU compilers, but SDB on x86/svr4
- believes these numbers have these meanings.
- 8 for %eip (no gnu equivalent)
- 9 for %eflags (no gnu equivalent)
- 10 for %trapno (no gnu equivalent)
- It is not at all clear how we should number the FP stack registers
- for the x86 architecture. If the version of SDB on x86/svr4 were
- a bit less brain dead with respect to floating-point then we would
- have a precedent to follow with respect to DWARF register numbers
- for x86 FP registers, but the SDB on x86/svr4 is so completely
- broken with respect to FP registers that it is hardly worth thinking
- of it as something to strive for compatibility with.
- The version of x86/svr4 SDB I have at the moment does (partially)
- seem to believe that DWARF register number 11 is associated with
- the x86 register %st(0), but that's about all. Higher DWARF
- register numbers don't seem to be associated with anything in
- particular, and even for DWARF regno 11, SDB only seems to under-
- stand that it should say that a variable lives in %st(0) (when
- asked via an `=' command) if we said it was in DWARF regno 11,
- but SDB still prints garbage when asked for the value of the
- variable in question (via a `/' command).
- (Also note that the labels SDB prints for various FP stack regs
- when doing an `x' command are all wrong.)
- Note that these problems generally don't affect the native SVR4
- C compiler because it doesn't allow the use of -O with -g and
- because when it is *not* optimizing, it allocates a memory
- location for each floating-point variable, and the memory
- location is what gets described in the DWARF AT_location
- attribute for the variable in question.
- Regardless of the severe mental illness of the x86/svr4 SDB, we
- do something sensible here and we use the following DWARF
- register numbers. Note that these are all stack-top-relative
- numbers.
- 11 for %st(0) (gnu regno = 8)
- 12 for %st(1) (gnu regno = 9)
- 13 for %st(2) (gnu regno = 10)
- 14 for %st(3) (gnu regno = 11)
- 15 for %st(4) (gnu regno = 12)
- 16 for %st(5) (gnu regno = 13)
- 17 for %st(6) (gnu regno = 14)
- 18 for %st(7) (gnu regno = 15)
-*/
-#undef DBX_REGISTER_NUMBER
-#define DBX_REGISTER_NUMBER(n) \
-((n) == 0 ? 0 \
- : (n) == 1 ? 2 \
- : (n) == 2 ? 1 \
- : (n) == 3 ? 3 \
- : (n) == 4 ? 6 \
- : (n) == 5 ? 7 \
- : (n) == 6 ? 5 \
- : (n) == 7 ? 4 \
- : ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
- : (-1))
-
-/* Tell final.c that we don't need a label passed to mcount. */
-
-#undef FUNCTION_PROFILER
-#define FUNCTION_PROFILER(FILE, LABELNO) \
-{ \
- if (flag_pic) \
- fprintf (FILE, "\tcall *.mcount@GOT(%%ebx)\n"); \
- else \
- fprintf (FILE, "\tcall .mcount\n"); \
-}
-
-#undef SIZE_TYPE
-#define SIZE_TYPE "unsigned int"
-
-#undef PTRDIFF_TYPE
-#define PTRDIFF_TYPE "int"
-
-#undef WCHAR_TYPE
-#define WCHAR_TYPE "int"
-
-#undef WCHAR_UNSIGNED
-#define WCHAR_UNSIGNED 0
-
-#undef WCHAR_TYPE_SIZE
-#define WCHAR_TYPE_SIZE BITS_PER_WORD
-
-#undef CPP_PREDEFINES
-#define CPP_PREDEFINES "-Di386 -Dunix -D__ELF__ -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
-
-#undef CPP_SPEC
-#define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
-
-/* This defines which switch letters take arguments. On FreeBSD, most of
- the normal cases (defined in gcc.c) apply, and we also have -h* and
- -z* options (for the linker) (comming from svr4).
- We also have -R (alias --rpath), no -z, --soname (-h), --assert etc. */
-
-#undef SWITCH_TAKES_ARG
-#define SWITCH_TAKES_ARG(CHAR) \
- (DEFAULT_SWITCH_TAKES_ARG (CHAR) \
- || (CHAR) == 'h' \
- || (CHAR) == 'z' \
- || (CHAR) == 'R')
-
-/* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add
- the magical crtbegin.o file (see crtstuff.c) which provides part
- of the support for getting C++ file-scope static object constructed
- before entering `main'. */
-
-#undef STARTFILE_SPEC
-#define STARTFILE_SPEC \
- "%{!shared: \
- %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
- %{!p:%{profile:gcrt1.o%s} \
- %{!profile:crt1.o%s}}}} \
- crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
-
-/* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on
- the magical crtend.o file (see crtstuff.c) which provides part of
- the support for getting C++ file-scope static object constructed
- before entering `main', followed by a normal "finalizer" file,
- `crtn.o'. */
-
-#undef ENDFILE_SPEC
-#define ENDFILE_SPEC \
- "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
-
-/* Provide a LIB_SPEC appropriate for FreeBSD. Just select the appropriate
- libc, depending on whether we're doing profiling or need threads support.
- (simular to the default, except no -lg, and no -p. */
-
-#undef LIB_SPEC
-#define LIB_SPEC "%{!shared: \
- %{!pg:%{!pthread:%{!kthread:-lc} \
- %{kthread:-lpthread -lc}} \
- %{pthread:-lc_r}} \
- %{pg:%{!pthread:%{!kthread:-lc_p} \
- %{kthread:-lpthread_p -lc_p}} \
- %{pthread:-lc_r_p}}}"
-
-/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
- for the special GCC options -static and -shared, which allow us to
- link things in one of these three modes by applying the appropriate
- combinations of options at link-time. We like to support here for
- as many of the other GNU linker options as possible. But I don't
- have the time to search for those flags. I am sure how to add
- support for -soname shared_object_name. H.J.
-
- I took out %{v:%{!V:-V}}. It is too much :-(. They can use
- -Wl,-V.
-
- When the -shared link option is used a final link is not being
- done. */
-
-#undef LINK_SPEC
-#define LINK_SPEC "-m elf_i386 \
- %{Wl,*:%*} \
- %{v:-V} \
- %{assert*} %{R*} %{rpath*} %{defsym*} \
- %{shared:-Bshareable %{h*} %{soname*}} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
- %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \
- %{static:-Bstatic}} \
- %{symbolic:-Bsymbolic}"
-
-/* A C statement to output to the stdio stream FILE an assembler
- command to advance the location counter to a multiple of 1<
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-#undef TARGET_VERSION
-#define TARGET_VERSION fprintf (stderr, " (i386 FreeBSD/ELF)");
-
-/* The svr4 ABI for the i386 says that records and unions are returned
- in memory. */
-/* On FreeBSD, we do not. */
-#undef DEFAULT_PCC_STRUCT_RETURN
-#define DEFAULT_PCC_STRUCT_RETURN 0
-
-/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using
- libraries compiled with the native cc, so undef it. */
-#undef NO_DOLLAR_IN_LABEL
-
-/* Use more efficient ``thunks'' to implement C++ vtables. */
-#undef DEFAULT_VTABLE_THUNKS
-#define DEFAULT_VTABLE_THUNKS 1
-
-/* Override the default comment-starter of "/". */
-#undef ASM_COMMENT_START
-#define ASM_COMMENT_START "#"
-
-#undef ASM_APP_ON
-#define ASM_APP_ON "#APP\n"
-
-#undef ASM_APP_OFF
-#define ASM_APP_OFF "#NO_APP\n"
-
-#undef SET_ASM_OP
-#define SET_ASM_OP ".set"
-
-/* This is how to output an element of a case-vector that is relative.
- This is only used for PIC code. See comments by the `casesi' insn in
- i386.md for an explanation of the expression this outputs. */
-#undef ASM_OUTPUT_ADDR_DIFF_ELT
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
-
-/* Indicate that jump tables go in the text section. This is
- necessary when compiling PIC code. */
-#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
-
-/* Use stabs instead of DWARF debug format. */
-#undef PREFERRED_DEBUGGING_TYPE
-#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
-
-/* Copy this from the svr4 specifications... */
-/* Define the register numbers to be used in Dwarf debugging information.
- The SVR4 reference port C compiler uses the following register numbers
- in its Dwarf output code:
- 0 for %eax (gnu regno = 0)
- 1 for %ecx (gnu regno = 2)
- 2 for %edx (gnu regno = 1)
- 3 for %ebx (gnu regno = 3)
- 4 for %esp (gnu regno = 7)
- 5 for %ebp (gnu regno = 6)
- 6 for %esi (gnu regno = 4)
- 7 for %edi (gnu regno = 5)
- The following three DWARF register numbers are never generated by
- the SVR4 C compiler or by the GNU compilers, but SDB on x86/svr4
- believes these numbers have these meanings.
- 8 for %eip (no gnu equivalent)
- 9 for %eflags (no gnu equivalent)
- 10 for %trapno (no gnu equivalent)
- It is not at all clear how we should number the FP stack registers
- for the x86 architecture. If the version of SDB on x86/svr4 were
- a bit less brain dead with respect to floating-point then we would
- have a precedent to follow with respect to DWARF register numbers
- for x86 FP registers, but the SDB on x86/svr4 is so completely
- broken with respect to FP registers that it is hardly worth thinking
- of it as something to strive for compatibility with.
- The version of x86/svr4 SDB I have at the moment does (partially)
- seem to believe that DWARF register number 11 is associated with
- the x86 register %st(0), but that's about all. Higher DWARF
- register numbers don't seem to be associated with anything in
- particular, and even for DWARF regno 11, SDB only seems to under-
- stand that it should say that a variable lives in %st(0) (when
- asked via an `=' command) if we said it was in DWARF regno 11,
- but SDB still prints garbage when asked for the value of the
- variable in question (via a `/' command).
- (Also note that the labels SDB prints for various FP stack regs
- when doing an `x' command are all wrong.)
- Note that these problems generally don't affect the native SVR4
- C compiler because it doesn't allow the use of -O with -g and
- because when it is *not* optimizing, it allocates a memory
- location for each floating-point variable, and the memory
- location is what gets described in the DWARF AT_location
- attribute for the variable in question.
- Regardless of the severe mental illness of the x86/svr4 SDB, we
- do something sensible here and we use the following DWARF
- register numbers. Note that these are all stack-top-relative
- numbers.
- 11 for %st(0) (gnu regno = 8)
- 12 for %st(1) (gnu regno = 9)
- 13 for %st(2) (gnu regno = 10)
- 14 for %st(3) (gnu regno = 11)
- 15 for %st(4) (gnu regno = 12)
- 16 for %st(5) (gnu regno = 13)
- 17 for %st(6) (gnu regno = 14)
- 18 for %st(7) (gnu regno = 15)
-*/
-#undef DBX_REGISTER_NUMBER
-#define DBX_REGISTER_NUMBER(n) \
-((n) == 0 ? 0 \
- : (n) == 1 ? 2 \
- : (n) == 2 ? 1 \
- : (n) == 3 ? 3 \
- : (n) == 4 ? 6 \
- : (n) == 5 ? 7 \
- : (n) == 6 ? 5 \
- : (n) == 7 ? 4 \
- : ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
- : (-1))
-
-/* Tell final.c that we don't need a label passed to mcount. */
-
-#undef FUNCTION_PROFILER
-#define FUNCTION_PROFILER(FILE, LABELNO) \
-{ \
- if (flag_pic) \
- fprintf (FILE, "\tcall *.mcount@GOT(%%ebx)\n"); \
- else \
- fprintf (FILE, "\tcall .mcount\n"); \
-}
-
-#undef SIZE_TYPE
-#define SIZE_TYPE "unsigned int"
-
-#undef PTRDIFF_TYPE
-#define PTRDIFF_TYPE "int"
-
-#undef WCHAR_TYPE
-#define WCHAR_TYPE "int"
-
-#undef WCHAR_UNSIGNED
-#define WCHAR_UNSIGNED 0
-
-#undef WCHAR_TYPE_SIZE
-#define WCHAR_TYPE_SIZE BITS_PER_WORD
-
-#undef CPP_PREDEFINES
-#define CPP_PREDEFINES "-Di386 -Dunix -D__ELF__ -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
-
-#undef CPP_SPEC
-#define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
-
-/* This defines which switch letters take arguments. On FreeBSD, most of
- the normal cases (defined in gcc.c) apply, and we also have -h* and
- -z* options (for the linker) (comming from svr4).
- We also have -R (alias --rpath), no -z, --soname (-h), --assert etc. */
-
-#undef SWITCH_TAKES_ARG
-#define SWITCH_TAKES_ARG(CHAR) \
- (DEFAULT_SWITCH_TAKES_ARG (CHAR) \
- || (CHAR) == 'h' \
- || (CHAR) == 'z' \
- || (CHAR) == 'R')
-
-/* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add
- the magical crtbegin.o file (see crtstuff.c) which provides part
- of the support for getting C++ file-scope static object constructed
- before entering `main'. */
-
-#undef STARTFILE_SPEC
-#define STARTFILE_SPEC \
- "%{!shared: \
- %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
- %{!p:%{profile:gcrt1.o%s} \
- %{!profile:crt1.o%s}}}} \
- crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
-
-/* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on
- the magical crtend.o file (see crtstuff.c) which provides part of
- the support for getting C++ file-scope static object constructed
- before entering `main', followed by a normal "finalizer" file,
- `crtn.o'. */
-
-#undef ENDFILE_SPEC
-#define ENDFILE_SPEC \
- "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
-
-/* Provide a LIB_SPEC appropriate for FreeBSD. Just select the appropriate
- libc, depending on whether we're doing profiling or need threads support.
- (simular to the default, except no -lg, and no -p. */
-
-#undef LIB_SPEC
-#define LIB_SPEC "%{!shared: \
- %{!pg:%{!pthread:%{!kthread:-lc} \
- %{kthread:-lpthread -lc}} \
- %{pthread:-lc_r}} \
- %{pg:%{!pthread:%{!kthread:-lc_p} \
- %{kthread:-lpthread_p -lc_p}} \
- %{pthread:-lc_r_p}}}"
-
-/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
- for the special GCC options -static and -shared, which allow us to
- link things in one of these three modes by applying the appropriate
- combinations of options at link-time. We like to support here for
- as many of the other GNU linker options as possible. But I don't
- have the time to search for those flags. I am sure how to add
- support for -soname shared_object_name. H.J.
-
- I took out %{v:%{!V:-V}}. It is too much :-(. They can use
- -Wl,-V.
-
- When the -shared link option is used a final link is not being
- done. */
-
-#undef LINK_SPEC
-#define LINK_SPEC "-m elf_i386 \
- %{Wl,*:%*} \
- %{v:-V} \
- %{assert*} %{R*} %{rpath*} %{defsym*} \
- %{shared:-Bshareable %{h*} %{soname*}} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
- %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \
- %{static:-Bstatic}} \
- %{symbolic:-Bsymbolic}"
-
-/* A C statement to output to the stdio stream FILE an assembler
- command to advance the location counter to a multiple of 1<= MIN_WORD_LENGTH)
- {
- register int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= 0)
- {
- register int index = lookup[key];
-
- if (index >= 0)
- {
- register const char *s = wordlist[index];
-
- if (*str == *s && !strcmp (str + 1, s + 1))
- return s;
- }
- else if (index < -TOTAL_KEYWORDS)
- {
- register int offset = - 1 - TOTAL_KEYWORDS - index;
- register const char * const *wordptr = &wordlist[TOTAL_KEYWORDS + lookup[offset]];
- register const char * const *wordendptr = wordptr + -lookup[offset + 1];
-
- while (wordptr < wordendptr)
- {
- register const char *s = *wordptr;
-
- if (*str == *s && !strcmp (str + 1, s + 1))
- return s;
- wordptr++;
- }
- }
- }
- }
- return 0;
-}
diff --git a/contrib/gcc/cp/g++.c b/contrib/gcc/cp/g++.c
deleted file mode 100644
index f694898fa966a..0000000000000
--- a/contrib/gcc/cp/g++.c
+++ /dev/null
@@ -1,582 +0,0 @@
-/* G++ preliminary semantic processing for the compiler driver.
- Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
- Contributed by Brendan Kehoe (brendan@cygnus.com).
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING. If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-/* This program is a wrapper to the main `gcc' driver. For GNU C++,
- we need to do two special things: a) append `-lg++' in situations
- where it's appropriate, to link in libg++, and b) add `-xc++'..`-xnone'
- around file arguments named `foo.c' or `foo.i'. So, we do all of
- this semantic processing then just exec gcc with the new argument
- list.
-
- We used to do all of this in a small shell script, but many users
- found the performance of this as a shell script to be unacceptable.
- In situations where your PATH has a lot of NFS-mounted directories,
- using a script that runs sed and other things would be a nasty
- performance hit. With this program, we never search the PATH at all. */
-
-#include "config.h"
-#ifdef __STDC__
-#include
-#else
-#include
-#endif
-#include
-#include
-#if !defined(_WIN32)
-#include /* May get R_OK, etc. on some systems. */
-#else
-#include
-#endif
-#include
-
-/* Defined to the name of the compiler; if using a cross compiler, the
- Makefile should compile this file with the proper name
- (e.g., "i386-aout-gcc"). */
-#ifndef GCC_NAME
-#define GCC_NAME "gcc"
-#endif
-
-/* This bit is set if we saw a `-xfoo' language specification. */
-#define LANGSPEC (1<<1)
-/* This bit is set if they did `-lm' or `-lmath'. */
-#define MATHLIB (1<<2)
-
-#ifndef MATH_LIBRARY
-#define MATH_LIBRARY "-lm"
-#endif
-
-/* On MSDOS, write temp files in current dir
- because there's no place else we can expect to use. */
-#ifdef __MSDOS__
-#ifndef P_tmpdir
-#define P_tmpdir "."
-#endif
-#ifndef R_OK
-#define R_OK 4
-#define W_OK 2
-#define X_OK 1
-#endif
-#endif
-
-#ifndef VPROTO
-#ifdef __STDC__
-#define PVPROTO(ARGS) ARGS
-#define VPROTO(ARGS) ARGS
-#define VA_START(va_list,var) va_start(va_list,var)
-#else
-#define PVPROTO(ARGS) ()
-#define VPROTO(ARGS) (va_alist) va_dcl
-#define VA_START(va_list,var) va_start(va_list)
-#endif
-#endif
-
-#ifndef errno
-extern int errno;
-#endif
-
-extern int sys_nerr;
-#ifndef HAVE_STRERROR
-#if defined(bsd4_4)
-extern const char *const sys_errlist[];
-#else
-extern char *sys_errlist[];
-#endif
-#else
-extern char *strerror();
-#endif
-
-/* Name with which this program was invoked. */
-static char *programname;
-
-char *
-my_strerror(e)
- int e;
-{
-
-#ifdef HAVE_STRERROR
- return strerror(e);
-
-#else
-
- static char buffer[30];
- if (!e)
- return "";
-
- if (e > 0 && e < sys_nerr)
- return sys_errlist[e];
-
- sprintf (buffer, "Unknown error %d", e);
- return buffer;
-#endif
-}
-
-#ifdef HAVE_VPRINTF
-/* Output an error message and exit */
-
-static void
-fatal VPROTO((char *format, ...))
-{
-#ifndef __STDC__
- char *format;
-#endif
- va_list ap;
-
- VA_START (ap, format);
-
-#ifndef __STDC__
- format = va_arg (ap, char*);
-#endif
-
- fprintf (stderr, "%s: ", programname);
- vfprintf (stderr, format, ap);
- va_end (ap);
- fprintf (stderr, "\n");
-#if 0
- /* XXX Not needed for g++ driver. */
- delete_temp_files ();
-#endif
- exit (1);
-}
-
-static void
-error VPROTO((char *format, ...))
-{
-#ifndef __STDC__
- char *format;
-#endif
- va_list ap;
-
- VA_START (ap, format);
-
-#ifndef __STDC__
- format = va_arg (ap, char*);
-#endif
-
- fprintf (stderr, "%s: ", programname);
- vfprintf (stderr, format, ap);
- va_end (ap);
-
- fprintf (stderr, "\n");
-}
-
-#else /* not HAVE_VPRINTF */
-
-static void
-error (msg, arg1, arg2)
- char *msg, *arg1, *arg2;
-{
- fprintf (stderr, "%s: ", programname);
- fprintf (stderr, msg, arg1, arg2);
- fprintf (stderr, "\n");
-}
-
-static void
-fatal (msg, arg1, arg2)
- char *msg, *arg1, *arg2;
-{
- error (msg, arg1, arg2);
-#if 0
- /* XXX Not needed for g++ driver. */
- delete_temp_files ();
-#endif
- exit (1);
-}
-
-#endif /* not HAVE_VPRINTF */
-
-/* More 'friendly' abort that prints the line and file.
- config.h can #define abort fancy_abort if you like that sort of thing. */
-
-void
-fancy_abort ()
-{
- fatal ("Internal g++ abort.");
-}
-
-char *
-xmalloc (size)
- unsigned size;
-{
- register char *value = (char *) malloc (size);
- if (value == 0)
- fatal ("virtual memory exhausted");
- return value;
-}
-
-/* Return a newly-allocated string whose contents concatenate those
- of s1, s2, s3. */
-static char *
-concat (s1, s2, s3)
- char *s1, *s2, *s3;
-{
- int len1 = strlen (s1), len2 = strlen (s2), len3 = strlen (s3);
- char *result = xmalloc (len1 + len2 + len3 + 1);
-
- strcpy (result, s1);
- strcpy (result + len1, s2);
- strcpy (result + len1 + len2, s3);
- *(result + len1 + len2 + len3) = 0;
-
- return result;
-}
-
-static void
-pfatal_with_name (name)
- char *name;
-{
- fatal (concat ("%s: ", my_strerror (errno), ""), name);
-}
-
-#ifdef __MSDOS__
-/* This is the common prefix we use to make temp file names. */
-char *temp_filename;
-
-/* Length of the prefix. */
-int temp_filename_length;
-
-/* Compute a string to use as the base of all temporary file names. */
-static char *
-choose_temp_base_try (try, base)
-char *try;
-char *base;
-{
- char *rv;
- if (base)
- rv = base;
- else if (try == (char *)0)
- rv = 0;
- else if (access (try, R_OK | W_OK) != 0)
- rv = 0;
- else
- rv = try;
- return rv;
-}
-
-static void
-choose_temp_base ()
-{
- char *base = 0;
- int len;
-
- base = choose_temp_base_try (getenv ("TMPDIR"), base);
- base = choose_temp_base_try (getenv ("TMP"), base);
- base = choose_temp_base_try (getenv ("TEMP"), base);
-
-#ifdef P_tmpdir
- base = choose_temp_base_try (P_tmpdir, base);
-#endif
-
- base = choose_temp_base_try ("/usr/tmp", base);
- base = choose_temp_base_try ("/tmp", base);
-
- /* If all else fails, use the current directory! */
- if (base == (char *)0)
- base = "./";
-
- len = strlen (base);
- temp_filename = xmalloc (len + sizeof("/ccXXXXXX"));
- strcpy (temp_filename, base);
- if (len > 0 && temp_filename[len-1] != '/')
- temp_filename[len++] = '/';
- strcpy (temp_filename + len, "ccXXXXXX");
-
- mktemp (temp_filename);
- temp_filename_length = strlen (temp_filename);
- if (temp_filename_length == 0)
- abort ();
-}
-
-static void
-perror_exec (name)
- char *name;
-{
- char *s;
-
- if (errno < sys_nerr)
- s = concat ("installation problem, cannot exec %s: ",
- my_strerror( errno ), "");
- else
- s = "installation problem, cannot exec %s";
- error (s, name);
-}
-
-/* This is almost exactly what's in gcc.c:pexecute for MSDOS. */
-void
-run_dos (program, argv)
- char *program;
- char *argv[];
-{
- char *scmd, *rf;
- FILE *argfile;
- int i;
-
- choose_temp_base (); /* not in gcc.c */
-
- scmd = (char *) malloc (strlen (program) + strlen (temp_filename) + 10);
- rf = scmd + strlen (program) + 6;
- sprintf (scmd, "%s.exe @%s.gp", program, temp_filename);
-
- argfile = fopen (rf, "w");
- if (argfile == 0)
- pfatal_with_name (rf);
-
- for (i=1; argv[i]; i++)
- {
- char *cp;
- for (cp = argv[i]; *cp; cp++)
- {
- if (*cp == '"' || *cp == '\'' || *cp == '\\' || isspace (*cp))
- fputc ('\\', argfile);
- fputc (*cp, argfile);
- }
- fputc ('\n', argfile);
- }
- fclose (argfile);
-
- i = system (scmd);
-
- remove (rf);
-
- if (i == -1)
- perror_exec (program);
-}
-#endif /* __MSDOS__ */
-
-int
-main (argc, argv)
- int argc;
- char **argv;
-{
- register int i, j = 0;
- register char *p;
- int verbose = 0;
-
- /* This will be 0 if we encounter a situation where we should not
- link in libstdc++, or 2 if we should link in libg++ as well. */
- int library = 1;
-
- /* Used to track options that take arguments, so we don't go wrapping
- those with -xc++/-xnone. */
- char *quote = NULL;
-
- /* The new argument list will be contained in this. */
- char **arglist;
-
- /* The name of the compiler we will want to run---by default, it
- will be the definition of `GCC_NAME', e.g., `gcc'. */
- char *gcc = GCC_NAME;
-
- /* Non-zero if we saw a `-xfoo' language specification on the
- command line. Used to avoid adding our own -xc++ if the user
- already gave a language for the file. */
- int saw_speclang = 0;
-
- /* Non-zero if we saw `-lm' or `-lmath' on the command line. */
- char *saw_math = 0;
-
- /* The number of arguments being added to what's in argv, other than
- libraries. We use this to track the number of times we've inserted
- -xc++/-xnone. */
- int added = 0;
-
- /* An array used to flag each argument that needs a bit set for
- LANGSPEC or MATHLIB. */
- int *args;
-
- p = argv[0] + strlen (argv[0]);
-
- /* If we're called as g++ (or i386-aout-g++), link in libg++ as well. */
-
- if (strcmp (p - 3, "g++") == 0)
- {
- library = 2;
- }
-
- while (p != argv[0] && p[-1] != '/')
- --p;
- programname = p;
-
- if (argc == 1)
- fatal ("No input files specified.\n");
-
-#ifndef __MSDOS__
- /* We do a little magic to find out where the main gcc executable
- is. If they ran us as /usr/local/bin/g++, then we will look
- for /usr/local/bin/gcc; similarly, if they just ran us as `g++',
- we'll just look for `gcc'. */
- if (p != argv[0])
- {
- *--p = '\0';
- gcc = (char *) malloc ((strlen (argv[0]) + 1 + strlen (GCC_NAME) + 1)
- * sizeof (char));
- sprintf (gcc, "%s/%s", argv[0], GCC_NAME);
- }
-#endif
-
- args = (int *) malloc (argc * sizeof (int));
- bzero ((char *) args, argc * sizeof (int));
-
- for (i = 1; i < argc; i++)
- {
- /* If the previous option took an argument, we swallow it here. */
- if (quote)
- {
- quote = NULL;
- continue;
- }
-
- if (argv[i][0] == '\0' || argv[i][1] == '\0')
- continue;
-
- if (argv[i][0] == '-')
- {
- if (library != 0 && strcmp (argv[i], "-nostdlib") == 0)
- {
- library = 0;
- }
- else if (strcmp (argv[i], "-lm") == 0
- || strcmp (argv[i], "-lmath") == 0)
- args[i] |= MATHLIB;
- else if (strcmp (argv[i], "-v") == 0)
- {
- verbose = 1;
- if (argc == 2)
- {
- /* If they only gave us `-v', don't try to link
- in libg++. */
- library = 0;
- }
- }
- else if (strncmp (argv[i], "-x", 2) == 0)
- saw_speclang = 1;
- else if (((argv[i][2] == '\0'
- && (char *)strchr ("bBVDUoeTuIYmLiA", argv[i][1]) != NULL)
- || strcmp (argv[i], "-Tdata") == 0))
- quote = argv[i];
- else if (library != 0 && ((argv[i][2] == '\0'
- && (char *) strchr ("cSEM", argv[i][1]) != NULL)
- || strcmp (argv[i], "-MM") == 0))
- {
- /* Don't specify libraries if we won't link, since that would
- cause a warning. */
- library = 0;
- }
- else
- /* Pass other options through. */
- continue;
- }
- else
- {
- int len;
-
- if (saw_speclang)
- {
- saw_speclang = 0;
- continue;
- }
-
- /* If the filename ends in .c or .i, put options around it.
- But not if a specified -x option is currently active. */
- len = strlen (argv[i]);
- if (len > 2
- && (argv[i][len - 1] == 'c' || argv[i][len - 1] == 'i')
- && argv[i][len - 2] == '.')
- {
- args[i] |= LANGSPEC;
- added += 2;
- }
- }
- }
-
- if (quote)
- fatal ("argument to `%s' missing\n", quote);
-
- if (added || library)
- {
- arglist = (char **) malloc ((argc + added + 4) * sizeof (char *));
-
- for (i = 1, j = 1; i < argc; i++, j++)
- {
- arglist[j] = argv[i];
-
- /* Make sure -lg++ is before the math library, since libg++
- itself uses those math routines. */
- if (!saw_math && (args[i] & MATHLIB) && library)
- {
- --j;
- saw_math = argv[i];
- }
-
- /* Wrap foo.c and foo.i files in a language specification to
- force the gcc compiler driver to run cc1plus on them. */
- if (args[i] & LANGSPEC)
- {
- int len = strlen (argv[i]);
- if (argv[i][len - 1] == 'i')
- arglist[j++] = "-xc++-cpp-output";
- else
- arglist[j++] = "-xc++";
- arglist[j++] = argv[i];
- arglist[j] = "-xnone";
- }
- }
-
- /* Add `-lg++' if we haven't already done so. */
- if (library == 2)
- arglist[j++] = "-lg++";
- if (library)
- arglist[j++] = "-lstdc++";
- if (saw_math)
- arglist[j++] = saw_math;
- else if (library)
- arglist[j++] = MATH_LIBRARY;
-
- arglist[j] = NULL;
- }
- else
- /* No need to copy 'em all. */
- arglist = argv;
-
- arglist[0] = gcc;
-
- if (verbose)
- {
- if (j == 0)
- j = argc;
-
- for (i = 0; i < j; i++)
- fprintf (stderr, " %s", arglist[i]);
- fprintf (stderr, "\n");
- }
-#if !defined(OS2) && !defined (_WIN32)
-#ifdef __MSDOS__
- run_dos (gcc, arglist);
-#else /* !__MSDOS__ */
- if (execvp (gcc, arglist) < 0)
- pfatal_with_name (gcc);
-#endif /* __MSDOS__ */
-#else /* OS2 or _WIN32 */
- if (spawnvp (1, gcc, arglist) < 0)
- pfatal_with_name (gcc);
-#endif
-
- return 0;
-}
diff --git a/contrib/gcc/cp/reno.texi b/contrib/gcc/cp/reno.texi
deleted file mode 100644
index 59c3448a0399b..0000000000000
--- a/contrib/gcc/cp/reno.texi
+++ /dev/null
@@ -1,752 +0,0 @@
-\input texinfo @c -*- Texinfo -*-
-@setfilename reno-1.info
-
-@ifinfo
-@format
-START-INFO-DIR-ENTRY
-* Reno 1: (reno-1). The GNU C++ Renovation Project, Phase 1.
-END-INFO-DIR-ENTRY
-@end format
-@end ifinfo
-
-@ifinfo
-Copyright @copyright{} 1992, 1993, 1994 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries a copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ifinfo
-
-@setchapternewpage odd
-@settitle GNU C++ Renovation Project
-@c @smallbook
-
-@titlepage
-@finalout
-@title GNU C++ Renovation Project
-@subtitle Phase 1.3
-@author Brendan Kehoe, Jason Merrill,
-@author Mike Stump, Michael Tiemann
-@page
-
-Edited March, 1994 by Roland Pesch (@code{pesch@@cygnus.com})
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1992, 1993, 1994 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-@ignore
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end titlepage
-
-@ifinfo
-@node Top
-@top @sc{gnu} C++ Renovation Project
-
-This file describes the goals of the @sc{gnu} C++ Renovation Project,
-and its accomplishments to date (as of Phase 1.3).
-
-It also discusses the remaining divergences from @sc{gnu} C++, and how the
-name encoding in @sc{gnu} C++ differs from the sample encoding in
-@cite{The Annotated C++ Reference Manual}.
-@c This is not a good place to introduce the acronym ARM because it's
-@c info-only.
-
-@menu
-* Introduction:: What is the GNU C++ Renovation Project?
-* Changes:: Summary of changes since previous GNU C++ releases.
-* Plans:: Plans for Reno-2.
-* Templates:: The template implementation.
-* ANSI:: GNU C++ conformance to ANSI C++.
-* Encoding:: Name encoding in GNU C++.
-@end menu
-
-@end ifinfo
-
-@node Introduction
-@chapter Introduction
-
-As you may remember, @sc{gnu} C++ was the first native-code C++
-compiler available under Unix (December 1987). In November 1988, it was
-judged superior to the AT&T compiler in a Unix World review. In 1990 it
-won a Sun Observer ``Best-Of'' award. But now, with new requirements
-coming out of the @sc{ansi} C++ committee and a growing backlog of bugs, it's
-clear that @sc{gnu} C++ needs an overhaul.
-
-The C++ language has been under development since 1982. It has
-evolved significantly since its original incarnation (C with Classes),
-addressing many commercial needs and incorporating many lessons
-learned as more and more people started using ``object-oriented''
-programming techniques. In 1989, the first X3J16 committee meeting
-was held in Washington DC; in the interest of users, C++ was going to
-be standardized.
-
-As C++ has become more popular, more demands have been placed on its
-compilers. Some compilers are up to the demands, others are not.
-@sc{gnu} C++ was used to prototype several features which have since
-been incorporated into the standard, most notably exception handling.
-While @sc{gnu} C++ has been an excellent experimental vehicle, it did
-not have the resources that AT&T, Borland, or Microsoft have at their
-disposal.
-
-We believe that @sc{gnu} C++ is an important compiler, providing users with
-many of the features that have made @sc{gnu} C so popular: fast compilation,
-good error messages, innovative features, and full sources that may be
-freely redistributed. The purpose of this overhaul, dubbed the @var{@sc{gnu}
-C++ Renovation Project}, is to take advantage of the functionality that
-@sc{gnu} C++ offers today, to strengthen its base technology, and put it in a
-position to remain---as other @sc{gnu} software currently is---the technical
-leader in the field.
-
-This release represents the latest phase of work in strengthening the
-compiler on a variety of points. It includes many months of
-work concentrated on fixing many of the more egregious bugs that
-presented themselves in the compiler recently.
-@ignore
-@c FIXME-- update?
-Nearly 85% of all bugs reported in the period of February to September
-of 1992 were fixed as part of the work in the first phase.
-@end ignore
-In the coming months, we hope to continue expanding and enhancing the
-quality and dependability of the industry's only freely redistributable
-C++ compiler.
-
-@node Changes
-@chapter Changes in Behavior in @sc{gnu} C++
-
-The @sc{gnu} C++ compiler continues to improve and change. A major goal
-of our work has been to continue to bring the compiler into compliance
-with the draft @sc{ansi} C++ standard, and with @cite{The Annotated C++
-Reference Manual} (the @sc{arm}). This section outlines most of the
-user-noticeable changes that might be encountered during the normal
-course of use.
-
-@menu
-* Summary of Phase 1.3::
-* Major changes::
-* New features::
-* Enhancements and bug fixes::
-* Problems with debugging::
-@end menu
-
-@node Summary of Phase 1.3
-@section Summary of Changes in Phase 1.3
-
-The bulk of this note discusses the cumulative effects of the @sc{gnu} C++
-Renovation Project to date. The work during its most recent phase (1.3)
-had these major effects:
-
-@itemize @bullet
-@item The standard compiler driver @code{g++} is now the faster compiled
-version, rather than a shell script.
-
-@item Nested types work much better; notably, nesting is no longer
-restricted to nine levels.
-
-@item Better @sc{arm} conformance on member access control.
-
-@item The compiler now always generates default assignment operators
-(@samp{operator =}), copy constructors (@samp{X::X(X&)}), and default
-constructors (@samp{X::X()}) whenever they are required.
-
-@item The new draft @sc{ansi} standard keyword @code{mutable} is supported.
-
-@item @samp{-fansi-overloading} is the default, to comply better with
-the @sc{arm} (at some cost in compatibility to earlier versions of @sc{gnu} C++).
-
-@item More informative error messages.
-
-@item System include files are automatically treated as if they were
-wrapped in @samp{extern "C" @{ @}}.
-
-@item The new option @samp{-falt-external-templates} provides alternate
-template instantiation semantics.
-
-@item Operator declarations are now checked more strictly.
-
-@item You can now use template type arguments in the template parameter list.
-
-@item You can call the destructor for any type.
-
-@item The compiler source code is better organized.
-
-@item You can specify where to instantiate template definitions explicitly.
-@end itemize
-
-Much of the work in Phase 1.3 went to elimination of known bugs, as well
-as the major items above.
-
-During the span of Phase 1.3, there were also two changes associated
-with the compiler that, while not specifically part of the C++
-Renovation project, may be of interest:
-
-@itemize @bullet
-@item @code{gcov}, a code coverage tool for @sc{gnu cc}, is now available
-from Cygnus Support. (@code{gcov} is free software, but the @sc{fsf} has not
-yet accepted it.) @xref{Gcov,, @code{gcov}: a Test Coverage Program,
-gcc.info, Using GNU CC}, for more information (in Cygnus releases of
-that manual).
-
-@item @sc{gnu} C++ now supports @dfn{signatures}, a language extension to
-provide more flexibility in abstract type definitions. @xref{C++
-Signatures,, Type Abstraction using Signatures, gcc.info, Using GNU CC}.
-@end itemize
-
-@node Major changes
-@section Major Changes
-
-This release includes four wholesale rewrites of certain areas of
-compiler functionality:
-
-@enumerate 1
-@item Argument matching. @sc{gnu} C++ is more compliant with the rules
-described in Chapter 13, ``Overloading'', of the @sc{arm}. This behavior is
-the default, though you can specify it explicitly with
-@samp{-fansi-overloading}. For compatibility with earlier releases of
-@sc{gnu} C++, specify @samp{-fno-ansi-overloading}; this makes the compiler
-behave as it used to with respect to argument matching and name overloading.
-
-@item Default constructors/destructors. Section 12.8 of the @sc{arm}, ``Copying
-Class Objects'', and Section 12.1, ``Constructors'', state that a
-compiler must declare such default functions if the user does not
-specify them. @sc{gnu} C++ now declares, and generates when necessary,
-the defaults for constructors and destructors you might omit. In
-particular, assignment operators (@samp{operator =}) behave the same way
-whether you define them, or whether the compiler generates them by
-default; taking the address of the default @samp{operator =} is now
-guaranteed to work. Default copy constructors (@samp{X::X(X&)}) now
-function correctly, rather than calling the copy assignment operator for
-the base class. Finally, constructors (@samp{X::X()}), as well as
-assignment operators and copy constructors, are now available whenever
-they are required.
-
-@c XXX This may be taken out eventually...
-@item Binary incompatibility. There are no new binary incompatibilities
-in Phase 1.3, but Phase 1.2 introduced two binary incompatibilities with
-earlier releases. First, the functionality of @samp{operator
-new} and @samp{operator delete} changed. Name encoding
-(``mangling'') of virtual table names changed as well. Libraries
-built with versions of the compiler earlier than Phase 1.2 must be
-compiled with the new compiler. (This includes the Cygnus Q2
-progressive release and the FSF 2.4.5 release.)
-
-@item New @code{g++} driver.
-A new binary @code{g++} compiler driver replaces the shell script.
-The new driver executes faster.
-@end enumerate
-
-@node New features
-@section New features
-
-@itemize @bullet
-@item
-The compiler warns when a class contains only private constructors
-or destructors, and has no friends. At the request of some of our
-customers, we have added a new option, @samp{-Wctor-dtor-privacy} (on by
-default), and its negation, @samp{-Wno-ctor-dtor-privacy}, to control
-the emission of this warning. If, for example, you are working towards
-making your code compile warning-free, you can use @w{@samp{-Wall
--Wno-ctor-dtor-privacy}} to find the most common warnings.
-
-@item
-There is now a mechanism which controls exactly when templates are
-expanded, so that you can reduce memory usage and program size and also
-instantiate them exactly once. You can control this mechanism with the
-option @samp{-fexternal-templates} and its corresponding negation
-@samp{-fno-external-templates}. Without this feature, space consumed by
-template instantiations can grow unacceptably in large-scale projects
-with many different source files. The default is
-@samp{-fno-external-templates}.
-
-You do not need to use the @samp{-fexternal-templates} option when
-compiling a file that does not define and instantiate templates used in
-other files, even if those files @emph{are} compiled with
-@samp{-fexternal-templates}. The only side effect is an increase in
-object size for each file that was compiled without
-@samp{-fexternal-templates}.
-
-When your code is compiled with @samp{-fexternal-templates}, all
-template instantiations are external; this requires that the templates
-be under the control of @samp{#pragma interface} and @samp{#pragma
-implementation}. All instantiations that will be needed should be in
-the implementation file; you can do this with a @code{typedef} that
-references the instantiation needed. Conversely, when you compile using
-the option @samp{-fno-external-templates}, all template instantiations are
-explicitly internal.
-
-@samp{-fexternal-templates} also allows you to finally separate class
-template function definitions from their declarations, thus speeding up
-compilation times for every file that includes the template declaration.
-Now you can have tens or even hundreds of lines in template
-declarations, and thousands or tens of thousands of lines in template
-definitions, with the definitions only going through the compiler once
-instead of once for each source file. It is important to note that you
-must remember to externally instantiate @emph{all} templates that are
-used from template declarations in interface files. If you forget to do
-this, unresolved externals will occur.
-
-In the example below, the object file generated (@file{example.o}) will
-contain the global instantiation for @samp{Stack}. If other types
-of @samp{Stack} are needed, they can be added to @file{example.cc} or
-placed in a new file, in the same spirit as @file{example.cc}.
-
-@code{foo.h}:
-@smallexample
-@group
-#pragma interface "foo.h"
-template
-class Stack @{
- static int statc;
- static T statc2;
- Stack() @{ @}
- virtual ~Stack() @{ @}
- int bar();
-@};
-@end group
-@end smallexample
-
-@code{example.cc}:
-@smallexample
-@group
-#pragma implementation "foo.h"
-#include "foo.h"
-
-typedef Stack t;
-int Stack::statc;
-int Stack::statc2;
-int Stack::bar() @{ @}
-@end group
-@end smallexample
-
-Note that using @samp{-fexternal-templates} does not reduce memory usage
-from completely different instantiations (@samp{Stack} vs.
-@samp{Stack}), but only collapses different occurrences
-of @samp{Stack} so that only one @samp{Stack} is generated.
-
-@samp{-falt-external-templates} selects a slight variation in the
-semantics described above (incidentally, you need not specify both
-options; @samp{-falt-external-templates} implies
-@samp{-fexternal-templates}).
-
-With @samp{-fexternal-templates}, the compiler emits a definition in the
-implementation file that includes the header definition, @emph{even if}
-instantiation is triggered from a @emph{different} implementation file
-(e.g. with a template that uses another template).
-
-With @samp{-falt-external-templates}, the definition always goes in the
-implementation file that triggers instantiation.
-
-For instance, with these two header files---
-
-@example
-@exdent @file{a.h}:
-#pragma interface
-template class A @{ @dots{} @};
-
-@exdent @file{b.h}:
-#pragma interface
-class B @{ @dots{} @};
-void f (A);
-@end example
-
-Under @samp{-fexternal-templates}, the definition of @samp{A} ends up
-in the implementation file that includes @file{a.h}. Under
-@samp{-falt-external-templates}, the same definition ends up in the
-implementation file that includes @file{b.h}.
-
-@item
-You can control explicitly where a template is instantiated, without
-having to @emph{use} the template to get an instantiation.
-
-To instantiate a class template explicitly, write @samp{template
-class @var{name}}, where @var{paramvals} is a list of values
-for the template parameters. For example, you might write
-
-@example
-template class A
-@end example
-
-Similarly, to instantiate a function template explicitly, write
-@samp{template @var{fnsign}} where @var{fnsign} is the particular
-function signature you need. For example, you might write
-
-@example
-template void foo (int, int)
-@end example
-
-This syntax for explicit template instantiation agrees with recent
-extensions to the draft @sc{ansi} standard.
-
-@item
-The compiler's actions on @sc{ansi}-related warnings and errors have
-been further enhanced. The @samp{-pedantic-errors} option produces
-error messages in a number of new situations: using @code{return} in a
-non-@code{void} function (one returning a value); declaring a local
-variable that shadows a parameter (e.g., the function takes an argument
-@samp{a}, and has a local variable @samp{a}); and use of the @samp{asm}
-keyword. Finally, the compiler by default now issues a warning when
-converting from an @code{int} to an enumerated type. This is likely to
-cause many new warnings in code that hadn't triggered them before. For
-example, when you compile this code,
-
-@smallexample
-@group
-enum boolean @{ false, true @};
-void
-f ()
-@{
- boolean x;
-
- x = 1; //@i{assigning an @code{int} to an @code{enum} now triggers a warning}
-@}
-@end group
-@end smallexample
-
-@noindent
-you should see the warning ``@code{anachronistic conversion from integer
-type to enumeral type `boolean'}''. Instead of assigning the value 1,
-assign the original enumerated value @samp{true}.
-@end itemize
-
-@node Enhancements and bug fixes
-@section Enhancements and bug fixes
-
-@itemize @bullet
-@cindex nested types in template parameters
-@item
-You can now use nested types in a template parameter list, even if the nested
-type is defined within the same class that attempts to use the template.
-For example, given a template @code{list}, the following now works:
-
-@smallexample
-struct glyph @{
- @dots{}
- struct stroke @{ @dots{} @};
- list l;
- @dots{}
-@}
-@end smallexample
-
-@cindex function pointers vs template parameters
-@item
-Function pointers now work in template parameter lists. For
-example, you might want to instantiate a parameterized @code{list} class
-in terms of a pointer to a function like this:
-
-@smallexample
-list fnlist;
-@end smallexample
-
-@item
-@c FIXME! Really no limit? Jason said "deeper than 9" now OK...
-Nested types are now handled correctly. In particular, there is no
-longer a limit to how deeply you can nest type definitions.
-
-@item
-@sc{gnu} C++ now conforms to the specifications in Chapter 11 of the
-@sc{arm}, ``Member Access Control''.
-
-@item
-The @sc{ansi} C++ committee has introduced a new keyword @code{mutable}.
-@sc{gnu} C++ supports it. Use @code{mutable} to specify that some
-particular members of a @code{const} class are @emph{not} constant. For
-example, you can use this to include a cache in a data structure that
-otherwise represents a read-only database.
-
-@item
-Error messages now explicitly specify the declaration, type, or
-expression that contains an error.
-
-@item
-To avoid copying and editing all system include files during @sc{gnu}
-C++ installation, the compiler now automatically recognizes system
-include files as C language definitions, as if they were wrapped in
-@samp{extern "C" @{ @dots{} @}}.
-
-@item
-The compiler checks operator declarations more strictly. For example,
-you may no longer declare an @samp{operator +} with three arguments.
-
-@item
-You can now use template type arguments in the same template
-parameter list where the type argument is specified (as well as in the
-template body). For example, you may write
-
-@example
-template class A @{ @dots{} @};
-@end example
-
-@item
-Destructors are now available for all types, even built-in ones; for
-example, you can call @samp{int::~int}. (Destructors for types like
-@code{int} do not actually do anything, but their existence provides a
-level of generality that permits smooth template expansion in more
-cases.)
-
-@item
-Enumerated types declared inside a class are now handled correctly.
-
-@item
-An argument list for a function may not use an initializer list for its default
-value. For example, @w{@samp{void foo ( T x = @{ 1, 2 @} )}} is not permitted.
-
-@item
-A significant amount of work went into improving the ability of the
-compiler to act accurately on multiple inheritance and virtual
-functions. Virtual function dispatch has been enhanced as well.
-
-@item
-The warning concerning a virtual inheritance environment with a
-non-virtual destructor has been disabled, since it is not clear that
-such a warning is warranted.
-
-@item
-Until exception handling is fully implemented in the Reno-2 release, use
-of the identifiers @samp{catch}, @samp{throw}, or @samp{try} results
-in the warning:
-
-@smallexample
-t.C:1: warning: `catch', `throw', and `try'
- are all C++ reserved words
-@end smallexample
-
-@item
-When giving a warning or error concerning initialization of a member in a
-class, the compiler gives the name of the member if it has one.
-
-@item
-Detecting friendship between classes is more accurately checked.
-
-@item
-The syntaxes of @w{@samp{#pragma implementation "file.h"}} and
-@samp{#pragma interface} are now more strictly controlled. The compiler
-notices (and warns) when any text follows @file{file.h} in the
-implementation pragma, or follows the word @samp{interface}. Any such
-text is otherwise ignored.
-
-@item
-Trying to declare a template on a variable or type is now considered an
-error, not an unimplemented feature.
-
-@item
-When an error occurs involving a template, the compiler attempts to
-tell you at which point of instantiation the error occurred, in
-addition to noting the line in the template declaration which had the
-actual error.
-
-@item
-The symbol names for function templates in the resulting assembly file
-are now encoded according to the arguments, rather than just being
-emitted as, for example, two definitions of a function @samp{foo}.
-
-@item
-Template member functions that are declared @code{static} no longer
-receive a @code{this} pointer.
-
-@item
-Case labels are no longer allowed to have commas to make up their
-expressions.
-
-@item
-Warnings concerning the shift count of a left or right shift now tell
-you if it was a @samp{left} or @samp{right} shift.
-
-@item
-The compiler now warns when a decimal constant is so large that it
-becomes @code{unsigned}.
-
-@item
-Union initializers which are raw constructors are now handled properly.
-
-@item
-The compiler no longer gives incorrect errors when initializing a
-union with an empty initializer list.
-
-@item
-Anonymous unions are now correctly used when nested inside a class.
-
-@item
-Anonymous unions declared as static class members are now handled
-properly.
-
-@item
-The compiler now notices when a field in a class is declared both as
-a type and a non-type.
-
-@item
-The compiler now warns when a user-defined function shadows a
-built-in function, rather than emitting an error.
-
-@item
-A conflict between two function declarations now produces an error
-regardless of their language context.
-
-@item
-Duplicate definitions of variables with @samp{extern "C"} linkage are no
-longer considered in error. (Note in C++ linkage---the default---you may
-not have more than one definition of a variable.)
-
-@item
-Referencing a label that is not defined in any function is now an error.
-
-@item
-The syntax for pointers to methods has been improved; there are still
-some minor bugs, but a number of cases should now be accepted by the
-compiler.
-
-@item
-In error messages, arguments are now numbered starting at 1, instead of
-0. Therefore, in the function @samp{void foo (int a, int b)}, the
-argument @samp{a} is argument 1, and @samp{b} is argument 2. There is
-no longer an argument 0.
-
-@item
-The tag for an enumerator, rather than its value, used as a default
-argument is now shown in all error messages. For example, @w{@samp{void
-foo (enum x (= true))}} is shown instead of @w{@samp{void foo (enum x (=
-1))}}.
-
-@item
-The @samp{__asm__} keyword is now accepted by the C++ front-end.
-
-@item
-Expressions of the form @samp{foo->~Class()} are now handled properly.
-
-@item
-The compiler now gives better warnings for situations which result in
-integer overflows (e.g., in storage sizes, enumerators, unary
-expressions, etc).
-
-@item
-@code{unsigned} bitfields are now promoted to @code{signed int} if the
-field isn't as wide as an @code{int}.
-
-@item
-Declaration and usage of prefix and postfix @samp{operator ++} and
-@samp{operator --} are now handled correctly. For example,
-
-@smallexample
-@group
-class foo
-@{
-public:
- operator ++ ();
- operator ++ (int);
- operator -- ();
- operator -- (int);
-@};
-
-void
-f (foo *f)
-@{
- f++; // @i{call @code{f->operator++(int)}}
- ++f; // @i{call @code{f->operator++()}}
- f--; // @i{call @code{f->operator++(int)}}
- --f; // @i{call @code{f->operator++()}}
-@}
-@end group
-@end smallexample
-
-@item
-In accordance with @sc{arm} section 10.1.1, ambiguities and dominance are now
-handled properly. The rules described in section 10.1.1 are now fully
-implemented.
-
-@end itemize
-
-@node Problems with debugging
-@section Problems with debugging
-
-Two problems remain with regard to debugging:
-
-@itemize @bullet
-@item
-Debugging of anonymous structures on the IBM RS/6000 host is incorrect.
-
-@item
-Symbol table size is overly large due to redundant symbol information;
-this can make @code{gdb} coredump under certain circumstances. This
-problem is not host-specific.
-@end itemize
-
-@node Plans
-@chapter Plans for Reno-2
-
-The overall goal for the second phase of the @sc{gnu} C++ Renovation
-Project is to bring @sc{gnu} C++ to a new level of reliability, quality,
-and competitiveness. As particular elements of this strategy, we intend
-to:
-
-@enumerate 0
-@item
-Fully implement @sc{ansi} exception handling.
-
-@item
-With the exception handling, add Runtime Type Identification
-(@sc{rtti}), if the @sc{ansi} committee adopts it into the standard.
-
-@item
-Bring the compiler into closer compliance with the @sc{arm} and the draft
-@sc{ansi} standard, and document what points in the @sc{arm} we do not yet comply,
-or agree, with.
-
-@item
-Add further support for the @sc{dwarf} debugging format.
-
-@item
-Finish the work to make the compiler compliant with @sc{arm} Section 12.6.2,
-initializing base classes in declaration order, rather than in the order
-that you specify them in a @var{mem-initializer} list.
-
-@item
-Perform a full coverage analysis on the compiler, and weed out unused
-code, for a gain in performance and a reduction in the size of the compiler.
-
-@item
-Further improve the multiple inheritance implementation in the
-compiler to make it cleaner and more complete.
-@end enumerate
-
-@noindent
-As always, we encourage you to make suggestions and ask questions about
-@sc{gnu} C++ as a whole, so we can be sure that the end of this project
-will bring a compiler that everyone will find essential for C++ and will
-meet the needs of the world's C++ community.
-
-@include templates.texi
-
-@include gpcompare.texi
-
-@contents
-
-@bye
diff --git a/contrib/gcc/cpp.1 b/contrib/gcc/cpp.1
deleted file mode 100644
index 54c4dfb198325..0000000000000
--- a/contrib/gcc/cpp.1
+++ /dev/null
@@ -1 +0,0 @@
-.so man1/cccp.1
diff --git a/contrib/gcc/doc/install-old.texi b/contrib/gcc/doc/install-old.texi
deleted file mode 100644
index 9ce98968f91a8..0000000000000
--- a/contrib/gcc/doc/install-old.texi
+++ /dev/null
@@ -1,725 +0,0 @@
-@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
-@c This is part of the GCC manual.
-@c For copying conditions, see the file install.texi.
-
-@ifnothtml
-@comment node-name, next, previous, up
-@node Old, GNU Free Documentation License, Specific, Top
-@end ifnothtml
-@html
-Old installation documentation
-@end html
-@ifnothtml
-@chapter Old installation documentation
-@end ifnothtml
-
-Note most of this information is out of date and superseded by the
-previous chapters of this manual. It is provided for historical
-reference only, because of a lack of volunteers to merge it into the
-main manual.
-
-@ifnothtml
-@menu
-* Configurations:: Configurations Supported by GNU CC.
-* Cross-Compiler:: Building and installing a cross-compiler.
-* VMS Install:: See below for installation on VMS.
-@end menu
-@end ifnothtml
-
-Here is the procedure for installing GNU CC on a GNU or Unix system.
-See @ref{VMS Install}, for VMS systems.
-
-@enumerate
-@item
-If you have chosen a configuration for GNU CC which requires other GNU
-tools (such as GAS or the GNU linker) instead of the standard system
-tools, install the required tools in the build directory under the names
-@file{as}, @file{ld} or whatever is appropriate. This will enable the
-compiler to find the proper tools for compilation of the program
-@file{enquire}.
-
-Alternatively, you can do subsequent compilation using a value of the
-@code{PATH} environment variable such that the necessary GNU tools come
-before the standard system tools.
-
-@item
-Specify the host, build and target machine configurations. You do this
-when you run the @file{configure} script.
-
-The @dfn{build} machine is the system which you are using, the
-@dfn{host} machine is the system where you want to run the resulting
-compiler (normally the build machine), and the @dfn{target} machine is
-the system for which you want the compiler to generate code.
-
-If you are building a compiler to produce code for the machine it runs
-on (a native compiler), you normally do not need to specify any operands
-to @file{configure}; it will try to guess the type of machine you are on
-and use that as the build, host and target machines. So you don't need
-to specify a configuration when building a native compiler unless
-@file{configure} cannot figure out what your configuration is or guesses
-wrong.
-
-In those cases, specify the build machine's @dfn{configuration name}
-with the @option{--host} option; the host and target will default to be
-the same as the host machine. (If you are building a cross-compiler,
-see @ref{Cross-Compiler}.)
-
-Here is an example:
-
-@smallexample
-./configure --host=sparc-sun-sunos4.1
-@end smallexample
-
-A configuration name may be canonical or it may be more or less
-abbreviated.
-
-A canonical configuration name has three parts, separated by dashes.
-It looks like this: @samp{@var{cpu}-@var{company}-@var{system}}.
-(The three parts may themselves contain dashes; @file{configure}
-can figure out which dashes serve which purpose.) For example,
-@samp{m68k-sun-sunos4.1} specifies a Sun 3.
-
-You can also replace parts of the configuration by nicknames or aliases.
-For example, @samp{sun3} stands for @samp{m68k-sun}, so
-@samp{sun3-sunos4.1} is another way to specify a Sun 3.
-
-You can specify a version number after any of the system types, and some
-of the CPU types. In most cases, the version is irrelevant, and will be
-ignored. So you might as well specify the version if you know it.
-
-See @ref{Configurations}, for a list of supported configuration names and
-notes on many of the configurations. You should check the notes in that
-section before proceeding any further with the installation of GNU CC@.
-
-@end enumerate
-
-@ifnothtml
-@node Configurations, Cross-Compiler, , Old
-@section Configurations Supported by GNU CC
-@end ifnothtml
-@html
-@anchor{Configurations}Configurations Supported by GNU CC
-@end html
-@cindex configurations supported by GNU CC
-
-Here are the possible CPU types:
-
-@quotation
-@c gmicro, fx80, spur and tahoe omitted since they don't work.
-1750a, a29k, alpha, arm, avr, c@var{n}, clipper, dsp16xx, elxsi, fr30, h8300,
-hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, i960, m32r,
-m68000, m68k, m6811, m6812, m88k, mcore, mips, mipsel, mips64, mips64el,
-mn10200, mn10300, ns32k, pdp11, powerpc, powerpcle, romp, rs6000, sh, sparc,
-sparclite, sparc64, v850, vax, we32k.
-@end quotation
-
-Here are the recognized company names. As you can see, customary
-abbreviations are used rather than the longer official names.
-
-@c What should be done about merlin, tek*, dolphin?
-@quotation
-acorn, alliant, altos, apollo, apple, att, bull,
-cbm, convergent, convex, crds, dec, dg, dolphin,
-elxsi, encore, harris, hitachi, hp, ibm, intergraph, isi,
-mips, motorola, ncr, next, ns, omron, plexus,
-sequent, sgi, sony, sun, tti, unicom, wrs.
-@end quotation
-
-The company name is meaningful only to disambiguate when the rest of
-the information supplied is insufficient. You can omit it, writing
-just @samp{@var{cpu}-@var{system}}, if it is not needed. For example,
-@samp{vax-ultrix4.2} is equivalent to @samp{vax-dec-ultrix4.2}.
-
-Here is a list of system types:
-
-@quotation
-386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux,
-dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux,
-linux-gnu, hiux, hpux, iris, irix, isc, luna, lynxos, mach, minix, msdos, mvs,
-netbsd, newsos, nindy, ns, osf, osfrose, ptx, riscix, riscos, rtu, sco, sim,
-solaris, sunos, sym, sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta,
-vxworks, winnt, xenix.
-@end quotation
-
-@noindent
-You can omit the system type; then @file{configure} guesses the
-operating system from the CPU and company.
-
-You can add a version number to the system type; this may or may not
-make a difference. For example, you can write @samp{bsd4.3} or
-@samp{bsd4.4} to distinguish versions of BSD@. In practice, the version
-number is most needed for @samp{sysv3} and @samp{sysv4}, which are often
-treated differently.
-
-@samp{linux-gnu} is the canonical name for the GNU/Linux target; however
-GNU CC will also accept @samp{linux}. The version of the kernel in use is
-not relevant on these systems. A suffix such as @samp{libc1} or @samp{aout}
-distinguishes major versions of the C library; all of the suffixed versions
-are obsolete.
-
-If you specify an impossible combination such as @samp{i860-dg-vms},
-then you may get an error message from @file{configure}, or it may
-ignore part of the information and do the best it can with the rest.
-@file{configure} always prints the canonical name for the alternative
-that it used. GNU CC does not support all possible alternatives.
-
-Often a particular model of machine has a name. Many machine names are
-recognized as aliases for CPU/company combinations. Thus, the machine
-name @samp{sun3}, mentioned above, is an alias for @samp{m68k-sun}.
-Sometimes we accept a company name as a machine name, when the name is
-popularly used for a particular machine. Here is a table of the known
-machine names:
-
-@quotation
-3300, 3b1, 3b@var{n}, 7300, altos3068, altos,
-apollo68, att-7300, balance,
-convex-c@var{n}, crds, decstation-3100,
-decstation, delta, encore,
-fx2800, gmicro, hp7@var{nn}, hp8@var{nn},
-hp9k2@var{nn}, hp9k3@var{nn}, hp9k7@var{nn},
-hp9k8@var{nn}, iris4d, iris, isi68,
-m3230, magnum, merlin, miniframe,
-mmax, news-3600, news800, news, next,
-pbd, pc532, pmax, powerpc, powerpcle, ps2, risc-news,
-rtpc, sun2, sun386i, sun386, sun3,
-sun4, symmetry, tower-32, tower.
-@end quotation
-
-@noindent
-Remember that a machine name specifies both the cpu type and the company
-name.
-If you want to install your own homemade configuration files, you can
-use @samp{local} as the company name to access them. If you use
-configuration @samp{@var{cpu}-local}, the configuration name
-without the cpu prefix
-is used to form the configuration file names.
-
-Thus, if you specify @samp{m68k-local}, configuration uses
-files @file{m68k.md}, @file{local.h}, @file{m68k.c},
-@file{xm-local.h}, @file{t-local}, and @file{x-local}, all in the
-directory @file{config/m68k}.
-
-Here is a list of configurations that have special treatment or special
-things you must know:
-
-@table @samp
-@item vax-dec-vms
-See @ref{VMS Install}, for details on how to install GNU CC on VMS@.
-@end table
-
-@ifnothtml
-@node Cross-Compiler, VMS Install, Configurations, Old
-@section Building and Installing a Cross-Compiler
-@end ifnothtml
-@html
-@anchor{Cross-Compiler}Building and Installing a Cross-Compiler
-@end html
-@cindex cross-compiler, installation
-
-GNU CC can function as a cross-compiler for many machines, but not all.
-
-@itemize @bullet
-@item
-Cross-compilers for the Mips as target using the Mips assembler
-currently do not work, because the auxiliary programs
-@file{mips-tdump.c} and @file{mips-tfile.c} can't be compiled on
-anything but a Mips. It does work to cross compile for a Mips
-if you use the GNU assembler and linker.
-
-@item
-Cross-compilers between machines with different floating point formats
-have not all been made to work. GNU CC now has a floating point
-emulator with which these can work, but each target machine description
-needs to be updated to take advantage of it.
-
-@item
-Cross-compilation between machines of different word sizes is
-somewhat problematic and sometimes does not work.
-@end itemize
-
-Since GNU CC generates assembler code, you probably need a
-cross-assembler that GNU CC can run, in order to produce object files.
-If you want to link on other than the target machine, you need a
-cross-linker as well. You also need header files and libraries suitable
-for the target machine that you can install on the host machine.
-
-@ifnothtml
-@menu
-* Steps of Cross:: Using a cross-compiler involves several steps
- that may be carried out on different machines.
-* Configure Cross:: Configuring a cross-compiler.
-* Tools and Libraries:: Where to put the linker and assembler, and the C library.
-* Cross Headers:: Finding and installing header files
- for a cross-compiler.
-* Build Cross:: Actually compiling the cross-compiler.
-@end menu
-@end ifnothtml
-
-@ifnothtml
-@node Steps of Cross, Configure Cross, , Cross-Compiler
-@subsection Steps of Cross-Compilation
-@end ifnothtml
-@html
-Steps of Cross-Compilation
-@end html
-
-To compile and run a program using a cross-compiler involves several
-steps:
-
-@itemize @bullet
-@item
-Run the cross-compiler on the host machine to produce assembler files
-for the target machine. This requires header files for the target
-machine.
-
-@item
-Assemble the files produced by the cross-compiler. You can do this
-either with an assembler on the target machine, or with a
-cross-assembler on the host machine.
-
-@item
-Link those files to make an executable. You can do this either with a
-linker on the target machine, or with a cross-linker on the host
-machine. Whichever machine you use, you need libraries and certain
-startup files (typically @file{crt@dots{}.o}) for the target machine.
-@end itemize
-
-It is most convenient to do all of these steps on the same host machine,
-since then you can do it all with a single invocation of GNU CC@. This
-requires a suitable cross-assembler and cross-linker. For some targets,
-the GNU assembler and linker are available.
-
-@ifnothtml
-@node Configure Cross, Tools and Libraries, Steps of Cross, Cross-Compiler
-@subsection Configuring a Cross-Compiler
-@end ifnothtml
-@html
-Configuring a Cross-Compiler
-@end html
-
-To build GNU CC as a cross-compiler, you start out by running
-@file{configure}. Use the @option{--target=@var{target}} to specify the
-target type. If @file{configure} was unable to correctly identify the
-system you are running on, also specify the @option{--build=@var{build}}
-option. For example, here is how to configure for a cross-compiler that
-produces code for an HP 68030 system running BSD on a system that
-@file{configure} can correctly identify:
-
-@smallexample
-./configure --target=m68k-hp-bsd4.3
-@end smallexample
-
-@ifnothtml
-@node Tools and Libraries, Cross Headers, Configure Cross, Cross-Compiler
-@subsection Tools and Libraries for a Cross-Compiler
-@end ifnothtml
-@html
-Tools and Libraries for a Cross-Compiler
-@end html
-
-If you have a cross-assembler and cross-linker available, you should
-install them now. Put them in the directory
-@file{/usr/local/@var{target}/bin}. Here is a table of the tools
-you should put in this directory:
-
-@table @file
-@item as
-This should be the cross-assembler.
-
-@item ld
-This should be the cross-linker.
-
-@item ar
-This should be the cross-archiver: a program which can manipulate
-archive files (linker libraries) in the target machine's format.
-
-@item ranlib
-This should be a program to construct a symbol table in an archive file.
-@end table
-
-The installation of GNU CC will find these programs in that directory,
-and copy or link them to the proper place to for the cross-compiler to
-find them when run later.
-
-The easiest way to provide these files is to build the Binutils package
-and GAS@. Configure them with the same @option{--host} and @option{--target}
-options that you use for configuring GNU CC, then build and install
-them. They install their executables automatically into the proper
-directory. Alas, they do not support all the targets that GNU CC
-supports.
-
-If you want to install libraries to use with the cross-compiler, such as
-a standard C library, put them in the directory
-@file{/usr/local/@var{target}/lib}; installation of GNU CC copies
-all the files in that subdirectory into the proper place for GNU CC to
-find them and link with them. Here's an example of copying some
-libraries from a target machine:
-
-@example
-ftp @var{target-machine}
-lcd /usr/local/@var{target}/lib
-cd /lib
-get libc.a
-cd /usr/lib
-get libg.a
-get libm.a
-quit
-@end example
-
-@noindent
-The precise set of libraries you'll need, and their locations on
-the target machine, vary depending on its operating system.
-
-@cindex start files
-Many targets require ``start files'' such as @file{crt0.o} and
-@file{crtn.o} which are linked into each executable; these too should be
-placed in @file{/usr/local/@var{target}/lib}. There may be several
-alternatives for @file{crt0.o}, for use with profiling or other
-compilation options. Check your target's definition of
-@code{STARTFILE_SPEC} to find out what start files it uses.
-Here's an example of copying these files from a target machine:
-
-@example
-ftp @var{target-machine}
-lcd /usr/local/@var{target}/lib
-prompt
-cd /lib
-mget *crt*.o
-cd /usr/lib
-mget *crt*.o
-quit
-@end example
-
-@ifnothtml
-@node Cross Headers, Build Cross, Tools and Libraries, Cross-Compiler
-@subsection Cross-Compilers and Header Files
-@end ifnothtml
-@html
-Cross-Compilers and Header Files
-@end html
-
-If you are cross-compiling a standalone program or a program for an
-embedded system, then you may not need any header files except the few
-that are part of GNU CC (and those of your program). However, if you
-intend to link your program with a standard C library such as
-@file{libc.a}, then you probably need to compile with the header files
-that go with the library you use.
-
-The GNU C compiler does not come with these files, because (1) they are
-system-specific, and (2) they belong in a C library, not in a compiler.
-
-If the GNU C library supports your target machine, then you can get the
-header files from there (assuming you actually use the GNU library when
-you link your program).
-
-If your target machine comes with a C compiler, it probably comes with
-suitable header files also. If you make these files accessible from the host
-machine, the cross-compiler can use them also.
-
-Otherwise, you're on your own in finding header files to use when
-cross-compiling.
-
-When you have found suitable header files, you should put them in the
-directory @file{/usr/local/@var{target}/include}, before building the
-cross compiler. Then installation will run fixincludes properly and
-install the corrected versions of the header files where the compiler
-will use them.
-
-Provide the header files before you build the cross-compiler, because
-the build stage actually runs the cross-compiler to produce parts of
-@file{libgcc.a}. (These are the parts that @emph{can} be compiled with
-GNU CC@.) Some of them need suitable header files.
-
-Here's an example showing how to copy the header files from a target
-machine. On the target machine, do this:
-
-@example
-(cd /usr/include; tar cf - .) > tarfile
-@end example
-
-Then, on the host machine, do this:
-
-@example
-ftp @var{target-machine}
-lcd /usr/local/@var{target}/include
-get tarfile
-quit
-tar xf tarfile
-@end example
-
-@ifnothtml
-@node Build Cross, , Cross Headers, Cross-Compiler
-@subsection Actually Building the Cross-Compiler
-@end ifnothtml
-@html
-Actually Building the Cross-Compiler
-@end html
-
-Now you can proceed just as for compiling a single-machine compiler
-through the step of building stage 1.
-
-If your target is exotic, you may need to provide the header file
-@file{float.h}.One way to do this is to compile @file{enquire} and run
-it on your target machine. The job of @file{enquire} is to run on the
-target machine and figure out by experiment the nature of its floating
-point representation. @file{enquire} records its findings in the header
-file @file{float.h}. If you can't produce this file by running
-@file{enquire} on the target machine, then you will need to come up with
-a suitable @file{float.h} in some other way (or else, avoid using it in
-your programs).
-
-Do not try to build stage 2 for a cross-compiler. It doesn't work to
-rebuild GNU CC as a cross-compiler using the cross-compiler, because
-that would produce a program that runs on the target machine, not on the
-host. For example, if you compile a 386-to-68030 cross-compiler with
-itself, the result will not be right either for the 386 (because it was
-compiled into 68030 code) or for the 68030 (because it was configured
-for a 386 as the host). If you want to compile GNU CC into 68030 code,
-whether you compile it on a 68030 or with a cross-compiler on a 386, you
-must specify a 68030 as the host when you configure it.
-
-To install the cross-compiler, use @samp{make install}, as usual.
-
-@ifnothtml
-@node VMS Install, , Cross-Compiler, Old
-@section Installing GNU CC on VMS
-@end ifnothtml
-@html
-@anchor{VMS Install}Installing GNU CC on VMS
-@end html
-@cindex VMS installation
-@cindex installing GNU CC on VMS
-
-The VMS version of GNU CC is distributed in a backup saveset containing
-both source code and precompiled binaries.
-
-To install the @file{gcc} command so you can use the compiler easily, in
-the same manner as you use the VMS C compiler, you must install the VMS CLD
-file for GNU CC as follows:
-
-@enumerate
-@item
-Define the VMS logical names @samp{GNU_CC} and @samp{GNU_CC_INCLUDE}
-to point to the directories where the GNU CC executables
-(@file{gcc-cpp.exe}, @file{gcc-cc1.exe}, etc.) and the C include files are
-kept respectively. This should be done with the commands:
-
-@smallexample
-$ assign /system /translation=concealed -
- disk:[gcc.] gnu_cc
-$ assign /system /translation=concealed -
- disk:[gcc.include.] gnu_cc_include
-@end smallexample
-
-@noindent
-with the appropriate disk and directory names. These commands can be
-placed in your system startup file so they will be executed whenever
-the machine is rebooted. You may, if you choose, do this via the
-@file{GCC_INSTALL.COM} script in the @file{[GCC]} directory.
-
-@item
-Install the @file{GCC} command with the command line:
-
-@smallexample
-$ set command /table=sys$common:[syslib]dcltables -
- /output=sys$common:[syslib]dcltables gnu_cc:[000000]gcc
-$ install replace sys$common:[syslib]dcltables
-@end smallexample
-
-@item
-To install the help file, do the following:
-
-@smallexample
-$ library/help sys$library:helplib.hlb gcc.hlp
-@end smallexample
-
-@noindent
-Now you can invoke the compiler with a command like @samp{gcc /verbose
-file.c}, which is equivalent to the command @samp{gcc -v -c file.c} in
-Unix.
-@end enumerate
-
-If you wish to use GNU C++ you must first install GNU CC, and then
-perform the following steps:
-
-@enumerate
-@item
-Define the VMS logical name @samp{GNU_GXX_INCLUDE} to point to the
-directory where the preprocessor will search for the C++ header files.
-This can be done with the command:
-
-@smallexample
-$ assign /system /translation=concealed -
- disk:[gcc.gxx_include.] gnu_gxx_include
-@end smallexample
-
-@noindent
-with the appropriate disk and directory name. If you are going to be
-using a C++ runtime library, this is where its install procedure will install
-its header files.
-
-@item
-Obtain the file @file{gcc-cc1plus.exe}, and place this in the same
-directory that @file{gcc-cc1.exe} is kept.
-
-The GNU C++ compiler can be invoked with a command like @samp{gcc /plus
-/verbose file.cc}, which is equivalent to the command @samp{g++ -v -c
-file.cc} in Unix.
-@end enumerate
-
-We try to put corresponding binaries and sources on the VMS distribution
-tape. But sometimes the binaries will be from an older version than the
-sources, because we don't always have time to update them. (Use the
-@samp{/version} option to determine the version number of the binaries and
-compare it with the source file @file{version.c} to tell whether this is
-so.) In this case, you should use the binaries you get to recompile the
-sources. If you must recompile, here is how:
-
-@enumerate
-@item
-Execute the command procedure @file{vmsconfig.com} to set up the files
-@file{tm.h}, @file{config.h}, @file{aux-output.c}, and @file{md.}, and
-to create files @file{tconfig.h} and @file{hconfig.h}. This procedure
-also creates several linker option files used by @file{make-cc1.com} and
-a data file used by @file{make-l2.com}.
-
-@smallexample
-$ @@vmsconfig.com
-@end smallexample
-
-@item
-Setup the logical names and command tables as defined above. In
-addition, define the VMS logical name @samp{GNU_BISON} to point at the
-to the directories where the Bison executable is kept. This should be
-done with the command:
-
-@smallexample
-$ assign /system /translation=concealed -
- disk:[bison.] gnu_bison
-@end smallexample
-
-You may, if you choose, use the @file{INSTALL_BISON.COM} script in the
-@file{[BISON]} directory.
-
-@item
-Install the @samp{BISON} command with the command line:
-
-@smallexample
-$ set command /table=sys$common:[syslib]dcltables -
- /output=sys$common:[syslib]dcltables -
- gnu_bison:[000000]bison
-$ install replace sys$common:[syslib]dcltables
-@end smallexample
-
-@item
-Type @samp{@@make-gcc} to recompile everything, or submit the file
-@file{make-gcc.com} to a batch queue. If you wish to build the GNU C++
-compiler as well as the GNU CC compiler, you must first edit
-@file{make-gcc.com} and follow the instructions that appear in the
-comments.
-
-@item
-In order to use GCC, you need a library of functions which GCC compiled code
-will call to perform certain tasks, and these functions are defined in the
-file @file{libgcc2.c}. To compile this you should use the command procedure
-@file{make-l2.com}, which will generate the library @file{libgcc2.olb}.
-@file{libgcc2.olb} should be built using the compiler built from
-the same distribution that @file{libgcc2.c} came from, and
-@file{make-gcc.com} will automatically do all of this for you.
-
-To install the library, use the following commands:
-
-@smallexample
-$ library gnu_cc:[000000]gcclib/delete=(new,eprintf)
-$ library gnu_cc:[000000]gcclib/delete=L_*
-$ library libgcc2/extract=*/output=libgcc2.obj
-$ library gnu_cc:[000000]gcclib libgcc2.obj
-@end smallexample
-
-The first command simply removes old modules that will be replaced with
-modules from @file{libgcc2} under different module names. The modules
-@code{new} and @code{eprintf} may not actually be present in your
-@file{gcclib.olb}---if the VMS librarian complains about those modules
-not being present, simply ignore the message and continue on with the
-next command. The second command removes the modules that came from the
-previous version of the library @file{libgcc2.c}.
-
-Whenever you update the compiler on your system, you should also update the
-library with the above procedure.
-
-@item
-You may wish to build GCC in such a way that no files are written to the
-directory where the source files reside. An example would be the when
-the source files are on a read-only disk. In these cases, execute the
-following DCL commands (substituting your actual path names):
-
-@smallexample
-$ assign dua0:[gcc.build_dir.]/translation=concealed, -
- dua1:[gcc.source_dir.]/translation=concealed gcc_build
-$ set default gcc_build:[000000]
-@end smallexample
-
-@noindent
-where the directory @file{dua1:[gcc.source_dir]} contains the source
-code, and the directory @file{dua0:[gcc.build_dir]} is meant to contain
-all of the generated object files and executables. Once you have done
-this, you can proceed building GCC as described above. (Keep in mind
-that @file{gcc_build} is a rooted logical name, and thus the device
-names in each element of the search list must be an actual physical
-device name rather than another rooted logical name).
-
-@item
-@strong{If you are building GNU CC with a previous version of GNU CC,
-you also should check to see that you have the newest version of the
-assembler}. In particular, GNU CC version 2 treats global constant
-variables slightly differently from GNU CC version 1, and GAS version
-1.38.1 does not have the patches required to work with GCC version 2.
-If you use GAS 1.38.1, then @code{extern const} variables will not have
-the read-only bit set, and the linker will generate warning messages
-about mismatched psect attributes for these variables. These warning
-messages are merely a nuisance, and can safely be ignored.
-
-@item
-If you want to build GNU CC with the VAX C compiler, you will need to
-make minor changes in @file{make-cccp.com} and @file{make-cc1.com}
-to choose alternate definitions of @code{CC}, @code{CFLAGS}, and
-@code{LIBS}. See comments in those files. However, you must
-also have a working version of the GNU assembler (GNU as, aka GAS) as
-it is used as the back end for GNU CC to produce binary object modules
-and is not included in the GNU CC sources. GAS is also needed to
-compile @file{libgcc2} in order to build @file{gcclib} (see above);
-@file{make-l2.com} expects to be able to find it operational in
-@file{gnu_cc:[000000]gnu-as.exe}.
-
-To use GNU CC on VMS, you need the VMS driver programs
-@file{gcc.exe}, @file{gcc.com}, and @file{gcc.cld}. They are
-distributed with the VMS binaries (@file{gcc-vms}) rather than the
-GNU CC sources. GAS is also included in @file{gcc-vms}, as is Bison.
-
-Once you have successfully built GNU CC with VAX C, you should use the
-resulting compiler to rebuild itself. Before doing this, be sure to
-restore the @code{CC}, @code{CFLAGS}, and @code{LIBS} definitions in
-@file{make-cccp.com} and @file{make-cc1.com}. The second generation
-compiler will be able to take advantage of many optimizations that must
-be suppressed when building with other compilers.
-@end enumerate
-
-Under previous versions of GNU CC, the generated code would occasionally
-give strange results when linked with the sharable @file{VAXCRTL} library.
-Now this should work.
-
-Even with this version, however, GNU CC itself should not be linked with
-the sharable @file{VAXCRTL}. The version of @code{qsort} in
-@file{VAXCRTL} has a bug (known to be present in VMS versions V4.6
-through V5.5) which causes the compiler to fail.
-
-The executables are generated by @file{make-cc1.com} and
-@file{make-cccp.com} use the object library version of @file{VAXCRTL} in
-order to make use of the @code{qsort} routine in @file{gcclib.olb}. If
-you wish to link the compiler executables with the shareable image
-version of @file{VAXCRTL}, you should edit the file @file{tm.h} (created
-by @file{vmsconfig.com}) to define the macro @code{QSORT_WORKAROUND}.
-
-@code{QSORT_WORKAROUND} is always defined when GNU CC is compiled with
-VAX C, to avoid a problem in case @file{gcclib.olb} is not yet
-available.
diff --git a/contrib/gcc/doc/install.texi b/contrib/gcc/doc/install.texi
deleted file mode 100644
index e9f8bee895a0e..0000000000000
--- a/contrib/gcc/doc/install.texi
+++ /dev/null
@@ -1,3902 +0,0 @@
-\input texinfo.tex @c -*-texinfo-*-
-@c @ifnothtml
-@c %**start of header
-@setfilename install.info
-@settitle Installing GCC
-@setchapternewpage odd
-@c %**end of header
-@c @end ifnothtml
-
-@c Specify title for specific html page
-@ifset indexhtml
-@settitle Installing GCC
-@end ifset
-@ifset specifichtml
-@settitle Host/Target specific installation notes for GCC
-@end ifset
-@ifset downloadhtml
-@settitle Downloading GCC
-@end ifset
-@ifset configurehtml
-@settitle Installing GCC: Configuration
-@end ifset
-@ifset buildhtml
-@settitle Installing GCC: Building
-@end ifset
-@ifset testhtml
-@settitle Installing GCC: Testing
-@end ifset
-@ifset finalinstallhtml
-@settitle Installing GCC: Final installation
-@end ifset
-@ifset binarieshtml
-@settitle Installing GCC: Binaries
-@end ifset
-@ifset oldhtml
-@settitle Installing GCC: Old documentation
-@end ifset
-@ifset gfdlhtml
-@settitle Installing GCC: GNU Free Documentation License
-@end ifset
-
-@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-@c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com
-
-@c Include everything if we're not making html
-@ifnothtml
-@set indexhtml
-@set specifichtml
-@set downloadhtml
-@set configurehtml
-@set buildhtml
-@set testhtml
-@set finalinstallhtml
-@set binarieshtml
-@set oldhtml
-@set gfdlhtml
-@end ifnothtml
-
-@c Part 2 Summary Description and Copyright
-@macro copyrightnotice
-Copyright @copyright{} 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-@sp 1
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, the Front-Cover texts being (a) (see below), and
-with the Back-Cover Texts being (b) (see below). A copy of the
-license is included in the section entitled ``@uref{./gfdl.html,,GNU
-Free Documentation License}''.
-
-(a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
-(b) The FSF's Back-Cover Text is:
-
- You have freedom to copy and modify this GNU Manual, like GNU
- software. Copies published by the Free Software Foundation raise
- funds for GNU development.
-@end macro
-@ifinfo
-@copyrightnotice{}
-@end ifinfo
-
-@c Part 3 Titlepage and Copyright
-@titlepage
-@sp 10
-@comment The title is printed in a large font.
-@center @titlefont{Installing GCC}
-
-@c The following two commands start the copyright page.
-@page
-@vskip 0pt plus 1filll
-@copyrightnotice{}
-@end titlepage
-
-@c Part 4 Top node and Master Menu
-@ifinfo
-@node Top, , , (dir)
-@comment node-name, next, Previous, up
-
-@menu
-* Installing GCC:: This document describes the generic installation
- procedure for GCC as well as detailing some target
- specific installation instructions.
-
-* Specific:: Host/target specific installation notes for GCC.
-* Binaries:: Where to get pre-compiled binaries.
-
-* Old:: Old installation documentation.
-
-* GNU Free Documentation License:: How you can copy and share this manual.
-* Concept Index:: This index has two entries.
-@end menu
-@end ifinfo
-
-@c Part 5 The Body of the Document
-@c ***Installing GCC**********************************************************
-@ifnothtml
-@comment node-name, next, previous, up
-@node Installing GCC, Binaries, , Top
-@end ifnothtml
-@ifset indexhtml
-@html
-Installing GCC
-@end html
-@ifnothtml
-@chapter Installing GCC
-@end ifnothtml
-
-The latest version of this document is always available at
-@uref{http://gcc.gnu.org/install/,,http://gcc.gnu.org/install/}.
-
-This document describes the generic installation procedure for GCC as well
-as detailing some target specific installation instructions.
-
-GCC includes several components that previously were separate distributions
-with their own installation instructions. This document supersedes all
-package specific installation instructions.
-
-@emph{Before} starting the build/install procedure please check the
-@ifnothtml
-@ref{Specific, host/target specific installation notes}.
-@end ifnothtml
-@ifhtml
-@uref{specific.html,,host/target specific installation notes}.
-@end ifhtml
-We recommend you browse the entire generic installation instructions before
-you proceed.
-
-Lists of successful builds for released versions of GCC are
-available at our web pages for
-@uref{http://gcc.gnu.org/gcc-3.1/buildstat.html,,3.1},
-@uref{http://gcc.gnu.org/gcc-3.0/buildstat.html,,3.0}
-and
-@uref{http://gcc.gnu.org/gcc-2.95/buildstat.html,,2.95}.
-These lists are updated as new information becomes available.
-
-The installation procedure itself is broken into five steps.
-
-@ifinfo
-@menu
-* Downloading the source::
-* Configuration::
-* Building::
-* Testing:: (optional)
-* Final install::
-@end menu
-@end ifinfo
-@ifhtml
-@enumerate
-@item
-@uref{download.html,,Downloading the source}
-@item
-@uref{configure.html,,Configuration}
-@item
-@uref{build.html,,Building}
-@item
-@uref{test.html,,Testing} (optional)
-@item
-@uref{finalinstall.html,,Final install}
-@end enumerate
-@end ifhtml
-
-Please note that GCC does not support @samp{make uninstall} and probably
-won't do so in the near future as this would open a can of worms. Instead,
-we suggest that you install GCC into a directory of its own and simply
-remove that directory when you do not need that specific version of GCC
-any longer, and, if shared libraries are installed there as well, no
-more binaries exist that use them.
-
-@ifhtml
-There are also some @uref{old.html,,old installation instructions},
-which are mostly obsolete but still contain some information which has
-not yet been merged into the main part of this manual.
-@end ifhtml
-
-@html
-
-
-@end html
-@ifhtml
-@uref{./index.html,,Return to the GCC Installation page}
-
-@copyrightnotice{}
-@end ifhtml
-@end ifset
-
-@c ***Downloading the source**************************************************
-@ifnothtml
-@comment node-name, next, previous, up
-@node Downloading the source, Configuration, , Installing GCC
-@end ifnothtml
-@ifset downloadhtml
-@html
-
Downloading GCC
-@end html
-@ifnothtml
-@chapter Downloading GCC
-@end ifnothtml
-@cindex Downloading GCC
-@cindex Downloading the Source
-
-GCC is distributed via @uref{http://gcc.gnu.org/cvs.html,,CVS} and FTP
-tarballs compressed with @command{gzip} or
-@command{bzip2}. It is possible to download a full distribution or specific
-components.
-
-Please refer to our @uref{http://gcc.gnu.org/releases.html,,releases web page}
-for information on how to obtain GCC@.
-
-The full distribution includes the C, C++, Objective-C, Fortran, Java,
-and Ada (in case of GCC 3.1 and later) compilers. The full distribution
-also includes runtime libraries for C++, Objective-C, Fortran, and Java.
-In GCC 3.0 and later versions, GNU compiler testsuites are also included
-in the full distribution.
-
-If you choose to download specific components, you must download the core
-GCC distribution plus any language specific distributions you wish to
-use. The core distribution includes the C language front end as well as the
-shared components. Each language has a tarball which includes the language
-front end as well as the language runtime (when appropriate).
-
-Unpack the core distribution as well as any language specific
-distributions in the same directory.
-
-If you also intend to build binutils (either to upgrade an existing
-installation or for use in place of the corresponding tools of your
-OS), unpack the binutils distribution either in the same directory or
-a separate one. In the latter case, add symbolic links to any
-components of the binutils you intend to build alongside the compiler
-(@file{bfd}, @file{binutils}, @file{gas}, @file{gprof}, @file{ld},
-@file{opcodes}, @dots{}) to the directory containing the GCC sources.
-
-@html
-
-
-@end html
-@ifhtml
-@uref{./index.html,,Return to the GCC Installation page}
-@end ifhtml
-@end ifset
-
-@c ***Configuration***********************************************************
-@ifnothtml
-@comment node-name, next, previous, up
-@node Configuration, Building, Downloading the source, Installing GCC
-@end ifnothtml
-@ifset configurehtml
-@html
-
Installing GCC: Configuration
-@end html
-@ifnothtml
-@chapter Installing GCC: Configuration
-@end ifnothtml
-@cindex Configuration
-@cindex Installing GCC: Configuration
-
-Like most GNU software, GCC must be configured before it can be built.
-This document describes the recommended configuration procedure
-for both native and cross targets.
-
-We use @var{srcdir} to refer to the toplevel source directory for
-GCC; we use @var{objdir} to refer to the toplevel build/object directory.
-
-If you obtained the sources via CVS, @var{srcdir} must refer to the top
-@file{gcc} directory, the one where the @file{MAINTAINERS} can be found,
-and not its @file{gcc} subdirectory, otherwise the build will fail.
-
-First, we @strong{highly} recommend that GCC be built into a
-separate directory than the sources which does @strong{not} reside
-within the source tree. This is how we generally build GCC; building
-where @var{srcdir} == @var{objdir} should still work, but doesn't
-get extensive testing; building where @var{objdir} is a subdirectory
-of @var{srcdir} is unsupported.
-
-If you have previously built GCC in the same directory for a
-different target machine, do @samp{make distclean} to delete all files
-that might be invalid. One of the files this deletes is
-@file{Makefile}; if @samp{make distclean} complains that @file{Makefile}
-does not exist, it probably means that the directory is already suitably
-clean. However, with the recommended method of building in a separate
-@var{objdir}, you should simply use a different @var{objdir} for each
-target.
-
-Second, when configuring a native system, either @command{cc} or
-@command{gcc} must be in your path or you must set @env{CC} in
-your environment before running configure. Otherwise the configuration
-scripts may fail.
-
-Note that the bootstrap compiler and the resulting GCC must be link
-compatible, else the bootstrap will fail with linker errors about
-incompatible object file formats. Several multilibed targets are
-affected by this requirement, see
-@ifnothtml
-@ref{Specific, host/target specific installation notes}.
-@end ifnothtml
-@ifhtml
-@uref{specific.html,,host/target specific installation notes}.
-@end ifhtml
-
-To configure GCC:
-
-@example
- % mkdir @var{objdir}
- % cd @var{objdir}
- % @var{srcdir}/configure [@var{options}] [@var{target}]
-@end example
-
-
-@heading Target specification
-@itemize @bullet
-@item
-GCC has code to correctly determine the correct value for @var{target}
-for nearly all native systems. Therefore, we highly recommend you not
-provide a configure target when configuring a native compiler.
-
-@item
-@var{target} must be specified as @option{--target=@var{target}}
-when configuring a cross compiler; examples of valid targets would be
-i960-rtems, m68k-coff, sh-elf, etc.
-
-@item
-Specifying just @var{target} instead of @option{--target=@var{target}}
-implies that the host defaults to @var{target}.
-@end itemize
-
-
-@heading Options specification
-
-Use @var{options} to override several configure time options for
-GCC@. A list of supported @var{options} follows; @command{configure
---help} may list other options, but those not listed below may not
-work and should not normally be used.
-
-@table @code
-@item --prefix=@var{dirname}
-Specify the toplevel installation
-directory. This is the recommended way to install the tools into a directory
-other than the default. The toplevel installation directory defaults to
-@file{/usr/local}.
-
-We @strong{highly} recommend against @var{dirname} being the same or a
-subdirectory of @var{objdir} or vice versa.
-
-These additional options control where certain parts of the distribution
-are installed. Normally you should not need to use these options.
-@table @code
-
-@item --exec-prefix=@var{dirname}
-Specify the toplevel installation directory for architecture-dependent
-files. The default is @file{@var{prefix}}.
-
-@item --bindir=@var{dirname}
-Specify the installation directory for the executables called by users
-(such as @command{gcc} and @command{g++}). The default is
-@file{@var{exec-prefix}/bin}.
-
-@item --libdir=@var{dirname}
-Specify the installation directory for object code libraries and
-internal parts of GCC@. The default is @file{@var{exec-prefix}/lib}.
-
-@item --with-slibdir=@var{dirname}
-Specify the installation directory for the shared libgcc library. The
-default is @file{@var{libdir}}.
-
-@item --infodir=@var{dirname}
-Specify the installation directory for documentation in info format.
-The default is @file{@var{prefix}/info}.
-
-@item --mandir=@var{dirname}
-Specify the installation directory for manual pages. The default is
-@file{@var{prefix}/man}. (Note that the manual pages are only extracts from
-the full GCC manuals, which are provided in Texinfo format. The
-@command{g77} manpage is unmaintained and may be out of date; the others
-are derived by an automatic conversion process from parts of the full
-manual.)
-
-@item --with-gxx-include-dir=@var{dirname}
-Specify
-the installation directory for G++ header files. The default is
-@file{@var{prefix}/include/g++-v3}.
-
-@end table
-
-@item --program-prefix=@var{prefix}
-GCC supports some transformations of the names of its programs when
-installing them. This option prepends @var{prefix} to the names of
-programs to install in @var{bindir} (see above). For example, specifying
-@option{--program-prefix=foo-} would result in @samp{gcc}
-being installed as @file{/usr/local/bin/foo-gcc}.
-
-@item --program-suffix=@var{suffix}
-Appends @var{suffix} to the names of programs to install in @var{bindir}
-(see above). For example, specifying @option{--program-suffix=-3.1}
-would result in @samp{gcc} being installed as
-@file{/usr/local/bin/gcc-3.1}.
-
-@item --program-transform-name=@var{pattern}
-Applies the @samp{sed} script @var{pattern} to be applied to the names
-of programs to install in @var{bindir} (see above). @var{pattern} has to
-consist of one or more basic @samp{sed} editing commands, separated by
-semicolons. For example, if you want the @samp{gcc} program name to be
-transformed to the installed program @file{/usr/local/bin/myowngcc} and
-the @samp{g++} program name to be transformed to
-@file{/usr/local/bin/gspecial++} without changing other program names,
-you could use the pattern
-@option{--program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/'}
-to achieve this effect.
-
-All three options can be combined and used together, resulting in more
-complex conversion patterns. As a basic rule, @var{prefix} (and
-@var{suffix}) are prepended (appended) before further transformations
-can happen with a special transformation script @var{pattern}.
-
-As currently implemented, this options only take effect for native
-builds; cross compiler binaries' names are not transformed even when a
-transformation is explicitly asked for by one of this options.
-
-For native builds, some of the installed programs are also installed
-with the target alias in front of their name, as in
-@samp{i686-pc-linux-gnu-gcc}. All of the above transformations happen
-before the target alias is prepended to the name - so, specifying
-@option{--program-prefix=foo-} and @option{program-suffix=-3.1}, the
-resulting binary would be installed as
-@file{/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1}.
-
-As a last shortcoming, none of the installed Ada programs are
-transformed yet, which will be fixed in some time.
-
-@item --with-local-prefix=@var{dirname}
-Specify the
-installation directory for local include files. The default is
-@file{/usr/local}. Specify this option if you want the compiler to
-search directory @file{@var{dirname}/include} for locally installed
-header files @emph{instead} of @file{/usr/local/include}.
-
-You should specify @option{--with-local-prefix} @strong{only} if your
-site has a different convention (not @file{/usr/local}) for where to put
-site-specific files.
-
-The default value for @option{--with-local-prefix} is @file{/usr/local}
-regardless of the value of @option{--prefix}. Specifying
-@option{--prefix} has no effect on which directory GCC searches for
-local header files. This may seem counterintuitive, but actually it is
-logical.
-
-The purpose of @option{--prefix} is to specify where to @emph{install
-GCC}. The local header files in @file{/usr/local/include}---if you put
-any in that directory---are not part of GCC@. They are part of other
-programs---perhaps many others. (GCC installs its own header files in
-another directory which is based on the @option{--prefix} value.)
-
-@strong{Do not} specify @file{/usr} as the @option{--with-local-prefix}!
-The directory you use for @option{--with-local-prefix} @strong{must not}
-contain any of the system's standard header files. If it did contain
-them, certain programs would be miscompiled (including GNU Emacs, on
-certain targets), because this would override and nullify the header
-file corrections made by the @code{fixincludes} script.
-
-Indications are that people who use this option use it based on mistaken
-ideas of what it is for. People use it as if it specified where to
-install part of GCC@. Perhaps they make this assumption because
-installing GCC creates the directory.
-
-@item --enable-shared[=@var{package}[,@dots{}]]
-Build shared versions of libraries, if shared libraries are supported on
-the target platform. Unlike GCC 2.95.x and earlier, shared libraries
-are enabled by default on all platforms that support shared libraries,
-except for @samp{libobjc} which is built as a static library only by
-default.
-
-If a list of packages is given as an argument, build shared libraries
-only for the listed packages. For other packages, only static libraries
-will be built. Package names currently recognized in the GCC tree are
-@samp{libgcc} (also known as @samp{gcc}), @samp{libstdc++} (not
-@samp{libstdc++-v3}), @samp{libffi}, @samp{zlib}, @samp{boehm-gc} and
-@samp{libjava}. Note that @samp{libobjc} does not recognize itself by
-any name, so, if you list package names in @option{--enable-shared},
-you will only get static Objective-C libraries. @samp{libf2c} and
-@samp{libiberty} do not support shared libraries at all.
-
-Use @option{--disable-shared} to build only static libraries. Note that
-@option{--disable-shared} does not accept a list of package names as
-argument, only @option{--enable-shared} does.
-
-@item @anchor{with-gnu-as}--with-gnu-as
-Specify that the compiler should assume that the
-assembler it finds is the GNU assembler. However, this does not modify
-the rules to find an assembler and will result in confusion if found
-assembler is not actually the GNU assembler. (Confusion will also
-result if the compiler finds the GNU assembler but has not been
-configured with @option{--with-gnu-as}.) If you have more than one
-assembler installed on your system, you may want to use this option in
-connection with @option{--with-as=@var{pathname}}.
-
-The systems where it makes a difference whether you use the GNU assembler are
-@samp{hppa1.0-@var{any}-@var{any}}, @samp{hppa1.1-@var{any}-@var{any}},
-@samp{i386-@var{any}-sysv}, @samp{i386-@var{any}-isc},
-@samp{i860-@var{any}-bsd}, @samp{m68k-bull-sysv},
-@samp{m68k-hp-hpux}, @samp{m68k-sony-bsd},
-@samp{m68k-altos-sysv}, @samp{m68000-hp-hpux},
-@samp{m68000-att-sysv}, @samp{@var{any}-lynx-lynxos},
-and @samp{mips-@var{any}}.
-On any other system, @option{--with-gnu-as} has no effect.
-
-On the systems listed above (except for the HP-PA, for ISC on the
-386, and for @samp{mips-sgi-irix5.*}), if you use the GNU assembler,
-you should also use the GNU linker (and specify @option{--with-gnu-ld}).
-
-@item --with-as=@var{pathname}
-Specify that the
-compiler should use the assembler pointed to by @var{pathname}, rather
-than the one found by the standard rules to find an assembler, which
-are:
-@itemize @bullet
-@item
-Check the
-@file{@var{exec_prefix}/lib/gcc-lib/@var{target}/@var{version}}
-directory, where @var{exec_prefix} defaults to @var{prefix} which
-defaults to @file{/usr/local} unless overridden by the
-@option{--prefix=@var{pathname}} switch described above. @var{target} is the
-target system triple, such as @samp{sparc-sun-solaris2.7}, and
-@var{version} denotes the GCC version, such as 3.0.
-@item
-Check operating system specific directories (e.g.@: @file{/usr/ccs/bin} on
-Sun Solaris 2).
-@end itemize
-Note that these rules do not check for the value of @env{PATH}. You may
-want to use @option{--with-as} if no assembler is installed in the
-directories listed above, or if you have multiple assemblers installed
-and want to choose one that is not found by the above rules.
-
-@item @anchor{with-gnu-ld}--with-gnu-ld
-Same as @uref{#with-gnu-as,,@option{--with-gnu-as}}
-but for linker.
-
-
-@item --with-ld=@var{pathname}
-Same as
-@option{--with-as}, but for the linker.
-
-@item --with-stabs
-Specify that stabs debugging
-information should be used instead of whatever format the host normally
-uses. Normally GCC uses the same debug format as the host system.
-
-On MIPS based systems and on Alphas, you must specify whether you want
-GCC to create the normal ECOFF debugging format, or to use BSD-style
-stabs passed through the ECOFF symbol table. The normal ECOFF debug
-format cannot fully handle languages other than C@. BSD stabs format can
-handle other languages, but it only works with the GNU debugger GDB@.
-
-Normally, GCC uses the ECOFF debugging format by default; if you
-prefer BSD stabs, specify @option{--with-stabs} when you configure GCC@.
-
-No matter which default you choose when you configure GCC, the user
-can use the @option{-gcoff} and @option{-gstabs+} options to specify explicitly
-the debug format for a particular compilation.
-
-@option{--with-stabs} is meaningful on the ISC system on the 386, also, if
-@option{--with-gas} is used. It selects use of stabs debugging
-information embedded in COFF output. This kind of debugging information
-supports C++ well; ordinary COFF debugging information does not.
-
-@option{--with-stabs} is also meaningful on 386 systems running SVR4. It
-selects use of stabs debugging information embedded in ELF output. The
-C++ compiler currently (2.6.0) does not support the DWARF debugging
-information normally used on 386 SVR4 platforms; stabs provide a
-workable alternative. This requires gas and gdb, as the normal SVR4
-tools can not generate or interpret stabs.
-
-@item --disable-multilib
-Specify that multiple target
-libraries to support different target variants, calling
-conventions, etc should not be built. The default is to build a
-predefined set of them.
-
-Some targets provide finer-grained control over which multilibs are built
-(e.g., @option{--disable-softfloat}):
-@table @code
-
-@item arc-*-elf*
-biendian.
-
-@item arm-*-*
-fpu, 26bit, underscore, interwork, biendian, nofmult.
-
-@item m68*-*-*
-softfloat, m68881, m68000, m68020.
-
-@item mips*-*-*
-single-float, biendian, softfloat.
-
-@item powerpc*-*-*, rs6000*-*-*
-aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian,
-sysv, aix.
-
-@end table
-
-@item --enable-threads
-Specify that the target
-supports threads. This affects the Objective-C compiler and runtime
-library, and exception handling for other languages like C++ and Java.
-On some systems, this is the default.
-
-In general, the best (and, in many cases, the only known) threading
-model available will be configured for use. Beware that on some
-systems, gcc has not been taught what threading models are generally
-available for the system. In this case, @option{--enable-threads} is an
-alias for @option{--enable-threads=single}.
-
-@item --disable-threads
-Specify that threading support should be disabled for the system.
-This is an alias for @option{--enable-threads=single}.
-
-@item --enable-threads=@var{lib}
-Specify that
-@var{lib} is the thread support library. This affects the Objective-C
-compiler and runtime library, and exception handling for other languages
-like C++ and Java. The possibilities for @var{lib} are:
-
-@table @code
-@item aix
-AIX thread support.
-@item dce
-DCE thread support.
-@item mach
-Generic MACH thread support, known to work on NeXTSTEP@. (Please note
-that the file needed to support this configuration, @file{gthr-mach.h}, is
-missing and thus this setting will cause a known bootstrap failure.)
-@item no
-This is an alias for @samp{single}.
-@item posix
-Generic POSIX thread support.
-@item pthreads
-Same as @samp{posix} on arm*-*-linux*, *-*-chorusos* and *-*-freebsd*
-only. A future release of gcc might remove this alias or extend it
-to all platforms.
-@item rtems
-RTEMS thread support.
-@item single
-Disable thread support, should work for all platforms.
-@item solaris
-Sun Solaris 2 thread support.
-@item vxworks
-VxWorks thread support.
-@item win32
-Microsoft Win32 API thread support.
-@end table
-
-@item --with-cpu=@var{cpu}
-Specify which cpu variant the
-compiler should generate code for by default. This is currently
-only supported on the some ports, specifically arm, powerpc, and
-SPARC@. If configure does not recognize the model name (e.g.@: arm700,
-603e, or ultrasparc) you provide, please check the configure script
-for a complete list of supported models.
-
-@item --enable-altivec
-Specify that the target supports AltiVec vector enhancements. This
-option will adjust the ABI for AltiVec enhancements, as well as generate
-AltiVec code when appropriate. This option is only available for
-PowerPC systems.
-
-@item --enable-target-optspace
-Specify that target
-libraries should be optimized for code space instead of code speed.
-This is the default for the m32r platform.
-
-@item --disable-cpp
-Specify that a user visible @command{cpp} program should not be installed.
-
-@item --with-cpp-install-dir=@var{dirname}
-Specify that the user visible @command{cpp} program should be installed
-in @file{@var{prefix}/@var{dirname}/cpp}, in addition to @var{bindir}.
-
-@item --enable-maintainer-mode
-The build rules that
-regenerate the GCC master message catalog @file{gcc.pot} are normally
-disabled. This is because it can only be rebuilt if the complete source
-tree is present. If you have changed the sources and want to rebuild the
-catalog, configuring with @option{--enable-maintainer-mode} will enable
-this. Note that you need a recent version of the @code{gettext} tools
-to do so.
-
-@item --enable-version-specific-runtime-libs
-Specify
-that runtime libraries should be installed in the compiler specific
-subdirectory (@file{@var{libsubdir}}) rather than the usual places. In
-addition, @samp{libstdc++}'s include files will be installed in
-@file{@var{libsubdir}/include/g++} unless you overruled it by using
-@option{--with-gxx-include-dir=@var{dirname}}. Using this option is
-particularly useful if you intend to use several versions of GCC in
-parallel. This is currently supported by @samp{libf2c} and
-@samp{libstdc++}, and is the default for @samp{libobjc} which cannot be
-changed in this case.
-
-@item --enable-languages=@var{lang1},@var{lang2},@dots{}
-Specify that only a particular subset of compilers and
-their runtime libraries should be built. For a list of valid values for
-@var{langN} you can issue the following command in the
-@file{gcc} directory of your GCC source tree:@*
-@example
-grep language= */config-lang.in
-@end example
-Currently, you can use any of the following:
-@code{ada}, @code{c}, @code{c++}, @code{f77}, @code{java}, @code{objc}.
-Building the Ada compiler has special requirements, see below.@*
-If you do not pass this flag, all languages available in the @file{gcc}
-sub-tree will be configured. Re-defining @code{LANGUAGES} when calling
-@samp{make bootstrap} @strong{does not} work anymore, as those
-language sub-directories might not have been configured!
-
-@item --disable-libgcj
-Specify that the run-time libraries
-used by GCJ should not be built. This is useful in case you intend
-to use GCJ with some other run-time, or you're going to install it
-separately, or it just happens not to build on your particular
-machine. In general, if the Java front end is enabled, the GCJ
-libraries will be enabled too, unless they're known to not work on
-the target platform. If GCJ is enabled but @samp{libgcj} isn't built, you
-may need to port it; in this case, before modifying the top-level
-@file{configure.in} so that @samp{libgcj} is enabled by default on this platform,
-you may use @option{--enable-libgcj} to override the default.
-
-@item --with-dwarf2
-Specify that the compiler should
-use DWARF 2 debugging information as the default.
-
-@item --enable-win32-registry
-@itemx --enable-win32-registry=@var{key}
-@itemx --disable-win32-registry
-The @option{--enable-win32-registry} option enables Windows-hosted GCC
-to look up installations paths in the registry using the following key:
-
-@smallexample
-@code{HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\@var{key}}
-@end smallexample
-
-@var{key} defaults to GCC version number, and can be overridden by the
-@option{--enable-win32-registry=@var{key}} option. Vendors and distributors
-who use custom installers are encouraged to provide a different key,
-perhaps one comprised of vendor name and GCC version number, to
-avoid conflict with existing installations. This feature is enabled
-by default, and can be disabled by @option{--disable-win32-registry}
-option. This option has no effect on the other hosts.
-
-@item --nfp
-Specify that the machine does not have a floating point unit. This
-option only applies to @samp{m68k-sun-sunos@var{n}} and
-@samp{m68k-isi-bsd}. On any other system, @option{--nfp} has no effect.
-
-@item --enable-checking
-@itemx --enable-checking=@var{list}
-When you specify this option, the compiler is built to perform checking
-of tree node types when referencing fields of that node, and some other
-internal consistency checks. This does not change the generated code,
-but adds error checking within the compiler. This will slow down the
-compiler and may only work properly if you are building the compiler
-with GCC@. This is on by default when building from CVS or snapshots,
-but off for releases. More control over the checks may be had by
-specifying @var{list}; the categories of checks available are
-@samp{misc}, @samp{tree}, @samp{gc}, @samp{rtl} and @samp{gcac}. The
-default when @var{list} is not specified is @samp{misc,tree,gc}; the
-checks @samp{rtl} and @samp{gcac} are very expensive.
-
-@item --enable-nls
-@itemx --disable-nls
-The @option{--enable-nls} option enables Native Language Support (NLS),
-which lets GCC output diagnostics in languages other than American
-English. Native Language Support is enabled by default if not doing a
-canadian cross build. The @option{--disable-nls} option disables NLS@.
-
-@item --with-included-gettext
-If NLS is enabled, the @option{--with-included-gettext} option causes the build
-procedure to prefer its copy of GNU @command{gettext}.
-
-@item --with-catgets
-If NLS is enabled, and if the host lacks @code{gettext} but has the
-inferior @code{catgets} interface, the GCC build procedure normally
-ignores @code{catgets} and instead uses GCC's copy of the GNU
-@code{gettext} library. The @option{--with-catgets} option causes the
-build procedure to use the host's @code{catgets} in this situation.
-
-@item --with-libiconv-prefix=@var{dir}
-Search for libiconv header files in @file{@var{dir}/include} and
-libiconv library files in @file{@var{dir}/lib}.
-
-@item --with-system-zlib
-Use installed zlib rather than that included with GCC@. This option
-only applies if the Java front end is being built.
-
-@item --enable-obsolete
-Enable configuration for an obsoleted system. If you attempt to
-configure GCC for a system (build, host, or target) which has been
-obsoleted, and you do not specify this flag, configure will halt with an
-error message.
-
-All support for systems which have been obsoleted in one release of GCC
-is removed entirely in the next major release, unless someone steps
-forward to maintain the port.
-@end table
-
-Some options which only apply to building cross compilers:
-@table @code
-@item --with-headers=@var{dir}
-Specifies a directory
-which has target include files.
-@emph{This options is required} when building a cross
-compiler, if @file{@var{prefix}/@var{target}/sys-include} doesn't pre-exist.
-These include files will be copied into the @file{gcc} install directory.
-Fixincludes will be run on these files to make them compatible with
-GCC.
-@item --with-libs=``@var{dir1} @var{dir2} @dots{} @var{dirN}''
-Specifies a list of directories which contain the target runtime
-libraries. These libraries will be copied into the @file{gcc} install
-directory.
-@item --with-newlib
-Specifies that @samp{newlib} is
-being used as the target C library. This causes @code{__eprintf} to be
-omitted from @file{libgcc.a} on the assumption that it will be provided by
-@samp{newlib}.
-@end table
-
-Note that each @option{--enable} option has a corresponding
-@option{--disable} option and that each @option{--with} option has a
-corresponding @option{--without} option.
-
-@html
-
-
-@end html
-@ifhtml
-@uref{./index.html,,Return to the GCC Installation page}
-@end ifhtml
-@end ifset
-
-@c ***Building****************************************************************
-@ifnothtml
-@comment node-name, next, previous, up
-@node Building, Testing, Configuration, Installing GCC
-@end ifnothtml
-@ifset buildhtml
-@html
-
Installing GCC: Building
-@end html
-@ifnothtml
-@chapter Building
-@end ifnothtml
-@cindex Installing GCC: Building
-
-Now that GCC is configured, you are ready to build the compiler and
-runtime libraries.
-
-We @strong{highly} recommend that GCC be built using GNU make;
-other versions may work, then again they might not.
-GNU make is required for compiling GNAT (the Ada compiler) and the Java
-runtime library.
-
-(For example, many broken versions of make will fail if you use the
-recommended setup where @var{objdir} is different from @var{srcdir}.
-Other broken versions may recompile parts of the compiler when
-installing the compiler.)
-
-Some commands executed when making the compiler may fail (return a
-nonzero status) and be ignored by @code{make}. These failures, which
-are often due to files that were not found, are expected, and can safely
-be ignored.
-
-It is normal to have compiler warnings when compiling certain files.
-Unless you are a GCC developer, you can generally ignore these warnings
-unless they cause compilation to fail.
-
-On certain old systems, defining certain environment variables such as
-@env{CC} can interfere with the functioning of @command{make}.
-
-If you encounter seemingly strange errors when trying to build the
-compiler in a directory other than the source directory, it could be
-because you have previously configured the compiler in the source
-directory. Make sure you have done all the necessary preparations.
-
-If you build GCC on a BSD system using a directory stored in an old System
-V file system, problems may occur in running @code{fixincludes} if the
-System V file system doesn't support symbolic links. These problems
-result in a failure to fix the declaration of @code{size_t} in
-@file{sys/types.h}. If you find that @code{size_t} is a signed type and
-that type mismatches occur, this could be the cause.
-
-The solution is not to use such a directory for building GCC@.
-
-When building from CVS or snapshots, or if you modify parser sources,
-you need the Bison parser generator installed. Any version 1.25 or
-later should work; older versions may also work. If you do not modify
-parser sources, releases contain the Bison-generated files and you do
-not need Bison installed to build them.
-
-When building from CVS or snapshots, or if you modify Texinfo
-documentation, you need version 4.1 or later of Texinfo installed if you
-want Info documentation to be regenerated. Releases contain Info
-documentation pre-built for the unmodified documentation in the release.
-
-@section Building a native compiler
-
-For a native build issue the command @samp{make bootstrap}. This
-will build the entire GCC system, which includes the following steps:
-
-@itemize @bullet
-@item
-Build host tools necessary to build the compiler such as texinfo, bison,
-gperf.
-
-@item
-Build target tools for use by the compiler such as binutils (bfd,
-binutils, gas, gprof, ld, and opcodes)
-if they have been individually linked
-or moved into the top level GCC source tree before configuring.
-
-@item
-Perform a 3-stage bootstrap of the compiler.
-
-@item
-Perform a comparison test of the stage2 and stage3 compilers.
-
-@item
-Build runtime libraries using the stage3 compiler from the previous step.
-
-@end itemize
-
-If you are short on disk space you might consider @samp{make
-bootstrap-lean} instead. This is identical to @samp{make
-bootstrap} except that object files from the stage1 and
-stage2 of the 3-stage bootstrap of the compiler are deleted as
-soon as they are no longer needed.
-
-
-If you want to save additional space during the bootstrap and in
-the final installation as well, you can build the compiler binaries
-without debugging information with @samp{make CFLAGS='-O' LIBCFLAGS='-g
--O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap}. This will save
-roughly 40% of disk space both for the bootstrap and the final installation.
-(Libraries will still contain debugging information.)
-
-If you wish to use non-default GCC flags when compiling the stage2 and
-stage3 compilers, set @code{BOOT_CFLAGS} on the command line when doing
-@samp{make bootstrap}. Non-default optimization flags are less well
-tested here than the default of @samp{-g -O2}, but should still work.
-In a few cases, you may find that you need to specify special flags such
-as @option{-msoft-float} here to complete the bootstrap; or, if the
-native compiler miscompiles the stage1 compiler, you may need to work
-around this, by choosing @code{BOOT_CFLAGS} to avoid the parts of the
-stage1 compiler that were miscompiled, or by using @samp{make
-bootstrap4} to increase the number of stages of bootstrap.
-
-If you used the flag @option{--enable-languages=@dots{}} to restrict
-the compilers to be built, only those you've actually enabled will be
-built. This will of course only build those runtime libraries, for
-which the particular compiler has been built. Please note,
-that re-defining @env{LANGUAGES} when calling @samp{make bootstrap}
-@strong{does not} work anymore!
-
-If the comparison of stage2 and stage3 fails, this normally indicates
-that the stage2 compiler has compiled GCC incorrectly, and is therefore
-a potentially serious bug which you should investigate and report. (On
-a few systems, meaningful comparison of object files is impossible; they
-always appear ``different''. If you encounter this problem, you will
-need to disable comparison in the @file{Makefile}.)
-
-@section Building a cross compiler
-
-We recommend reading the
-@uref{http://www.objsw.com/CrossGCC/,,crossgcc FAQ}
-for information about building cross compilers.
-
-When building a cross compiler, it is not generally possible to do a
-3-stage bootstrap of the compiler. This makes for an interesting problem
-as parts of GCC can only be built with GCC@.
-
-To build a cross compiler, we first recommend building and installing a
-native compiler. You can then use the native GCC compiler to build the
-cross compiler. The installed native compiler needs to be GCC version
-2.95 or later.
-
-Assuming you have already installed a native copy of GCC and configured
-your cross compiler, issue the command @command{make}, which performs the
-following steps:
-
-@itemize @bullet
-@item
-Build host tools necessary to build the compiler such as texinfo, bison,
-gperf.
-
-@item
-Build target tools for use by the compiler such as binutils (bfd,
-binutils, gas, gprof, ld, and opcodes)
-if they have been individually linked or moved into the top level GCC source
-tree before configuring.
-
-@item
-Build the compiler (single stage only).
-
-@item
-Build runtime libraries using the compiler from the previous step.
-@end itemize
-
-Note that if an error occurs in any step the make process will exit.
-
-@section Building in parallel
-
-If you have a multiprocessor system you can use @samp{make bootstrap
-MAKE="make -j 2" -j 2} or just @samp{make -j 2 bootstrap}
-for GNU Make 3.79 and above instead of just @samp{make bootstrap}
-when building GCC@. You can use a bigger number instead of two if
-you like. In most cases, it won't help to use a number bigger than
-the number of processors in your machine.
-
-@section Building the Ada compiler
-
-In order to build GNAT, the Ada compiler, you need a working GNAT
-compiler (GNAT version 3.13 or later, or GCC version 3.1 or later),
-since the Ada front end is written in Ada (with some
-GNAT-specific extensions), and GNU make.
-
-However, you do not need a full installation of GNAT, just the GNAT
-binary @file{gnat1}, a copy of @file{gnatbind}, and a compiler driver
-which can deal with Ada input (by invoking the @file{gnat1} binary).
-You can specify this compiler driver by setting the @env{ADAC}
-environment variable at the configure step. @command{configure} can
-detect the driver automatically if it has got a common name such as
-@command{gcc} or @command{gnatgcc}. Of course, you still need a working
-C compiler (the compiler driver can be different or not).
-@command{configure} does not test whether the GNAT installation works
-and has a sufficiently recent version; if too old a GNAT version is
-installed, the build will fail unless @option{--enable-languages} is
-used to disable building the Ada front end.
-
-Additional build tools (such as @command{gnatmake}) or a working GNAT
-run-time library installation are usually @emph{not} required. However,
-if you want to boostrap the compiler using a minimal version of GNAT,
-you have to issue the following commands before invoking @samp{make
-boostrap} (this assumes that you start with an unmodified and consistent
-source distribution):
-
-@example
- cd @var{srcdir}/gcc/ada
- touch treeprs.ads [es]info.h nmake.ad[bs]
-@end example
-
-At the moment, the GNAT library and several tools for GNAT are not built
-by @samp{make bootstrap}. You have to invoke
-@samp{make gnatlib_and_tools} in the @file{@var{objdir}/gcc}
-subdirectory before proceeding with the next steps.
-
-For example, you can build a native Ada compiler by issuing the
-following commands (assuming @command{make} is GNU make):
-
-@example
- cd @var{objdir}
- @var{srcdir}/configure --enable-languages=c,ada
- cd @var{srcdir}/gcc/ada
- touch treeprs.ads [es]info.h nmake.ad[bs]
- cd @var{objdir}
- make bootstrap
- cd gcc
- make gnatlib_and_tools
- cd ..
-@end example
-
-Currently, when compiling the Ada front end, you cannot use the parallel
-build feature described in the previous section.
-
-@html
-
-
-@end html
-@ifhtml
-@uref{./index.html,,Return to the GCC Installation page}
-@end ifhtml
-@end ifset
-
-@c ***Testing*****************************************************************
-@ifnothtml
-@comment node-name, next, previous, up
-@node Testing, Final install, Building, Installing GCC
-@end ifnothtml
-@ifset testhtml
-@html
-
Installing GCC: Testing
-@end html
-@ifnothtml
-@chapter Installing GCC: Testing
-@end ifnothtml
-@cindex Testing
-@cindex Installing GCC: Testing
-@cindex Testsuite
-
-Before you install GCC, we encourage you to run the testsuites and to
-compare your results with results from a similar configuration that have
-been submitted to the
-@uref{http://gcc.gnu.org/ml/gcc-testresults/,,gcc-testresults mailing list}.
-This step is optional and may require you to download additional software,
-but it can give you confidence in your new GCC installation or point out
-problems before you install and start using your new GCC.
-
-First, you must have @uref{download.html,,downloaded the testsuites}.
-These are part of the full distribution, but if you downloaded the
-``core'' compiler plus any front ends, you must download the testsuites
-separately.
-
-Second, you must have the testing tools installed. This includes
-a @uref{http://www.gnu.org/software/dejagnu/,,current version of DejaGnu};
-dejagnu 1.3 is not sufficient.
-It also includes Tcl and Expect; the DejaGnu site has links to these.
-
-Now you may need specific preparations:
-
-@itemize @bullet
-
-@item
-The following environment variables may need to be set appropriately, as in
-the following example (which assumes that DejaGnu has been installed
-under @file{/usr/local}):
-
-@example
- TCL_LIBRARY = /usr/local/share/tcl8.0
- DEJAGNULIBS = /usr/local/share/dejagnu
-@end example
-
-On systems such as Cygwin, these paths are required to be actual
-paths, not mounts or links; presumably this is due to some lack of
-portability in the DejaGnu code.
-
-If the directories where @command{runtest} and @command{expect} were
-installed are in the @env{PATH}, it should not be necessary to set these
-environment variables.
-
-@end itemize
-
-Finally, you can run the testsuite (which may take a long time):
-@example
- cd @var{objdir}; make -k check
-@end example
-
-The testing process will try to test as many components in the GCC
-distribution as possible, including the C, C++, Objective-C and Fortran
-compilers as well as the C++ and Java runtime libraries.
-
-@section How can I run the test suite on selected tests?
-
-As a first possibility to cut down the number of tests that are run it is
-possible to use @samp{make check-gcc} or @samp{make check-g++}
-in the @file{gcc} subdirectory of the object directory. To further cut down the
-tests the following is possible:
-
-@example
- make check-gcc RUNTESTFLAGS="execute.exp @var{other-options}"
-@end example
-
-This will run all @command{gcc} execute tests in the testsuite.
-
-@example
- make check-g++ RUNTESTFLAGS="old-deja.exp=9805* @var{other-options}"
-@end example
-
-This will run the @command{g++} ``old-deja'' tests in the testsuite where the filename
-matches @samp{9805*}.
-
-The @file{*.exp} files are located in the testsuite directories of the GCC
-source, the most important ones being @file{compile.exp},
-@file{execute.exp}, @file{dg.exp} and @file{old-deja.exp}.
-To get a list of the possible @file{*.exp} files, pipe the
-output of @samp{make check} into a file and look at the
-@samp{Running @dots{} .exp} lines.
-
-@section How to interpret test results
-
-After the testsuite has run you'll find various @file{*.sum} and @file{*.log}
-files in the testsuite subdirectories. The @file{*.log} files contain a
-detailed log of the compiler invocations and the corresponding
-results, the @file{*.sum} files summarize the results. These summaries list
-all the tests that have been run with a corresponding status code:
-
-@itemize @bullet
-@item
-PASS: the test passed as expected
-@item
-XPASS: the test unexpectedly passed
-@item
-FAIL: the test unexpectedly failed
-@item
-XFAIL: the test failed as expected
-@item
-UNSUPPORTED: the test is not supported on this platform
-@item
-ERROR: the testsuite detected an error
-@item
-WARNING: the testsuite detected a possible problem
-@end itemize
-
-It is normal for some tests to report unexpected failures. At the
-current time our testing harness does not allow fine grained control
-over whether or not a test is expected to fail. We expect to fix this
-problem in future releases.
-
-
-@section Submitting test results
-
-If you want to report the results to the GCC project, use the
-@file{contrib/test_summary} shell script. Start it in the @var{objdir} with
-
-@example
- @var{srcdir}/contrib/test_summary -p your_commentary.txt \
- -m gcc-testresults@@gcc.gnu.org |sh
-@end example
-
-This script uses the @command{Mail} program to send the results, so
-make sure it is in your @env{PATH}. The file @file{your_commentary.txt} is
-prepended to the testsuite summary and should contain any special
-remarks you have on your results or your build environment. Please
-do not edit the testsuite result block or the subject line, as these
-messages are automatically parsed and presented at the
-@uref{http://gcc.gnu.org/testresults/,,GCC testresults} web
-page. Here you can also gather information on how specific tests
-behave on different platforms and compare them with your results. A
-few failing testcases are possible even on released versions and you
-should look here first if you think your results are unreasonable.
-
-@html
-
-
-@end html
-@ifhtml
-@uref{./index.html,,Return to the GCC Installation page}
-@end ifhtml
-@end ifset
-
-@c ***Final install***********************************************************
-@ifnothtml
-@comment node-name, next, previous, up
-@node Final install, , Testing, Installing GCC
-@end ifnothtml
-@ifset finalinstallhtml
-@html
-
Installing GCC: Final installation
-@end html
-@ifnothtml
-@chapter Installing GCC: Final installation
-@end ifnothtml
-
-Now that GCC has been built (and optionally tested), you can install it with
-@example
-cd @var{objdir}; make install
-@end example
-
-That step completes the installation of GCC; user level binaries can
-be found in @file{@var{prefix}/bin} where @var{prefix} is the value you
-specified with the @option{--prefix} to configure (or @file{/usr/local}
-by default). (If you specified @option{--bindir}, that directory will
-be used instead; otherwise, if you specified @option{--exec-prefix},
-@file{@var{exec-prefix}/bin} will be used.) Headers for the C++ and
-Java libraries are installed in @file{@var{prefix}/include}; libraries
-in @file{@var{libdir}} (normally @file{@var{prefix}/lib}); internal
-parts of the compiler in @file{@var{libdir}/gcc-lib}; documentation in
-info format in @file{@var{infodir}} (normally @file{@var{prefix}/info}).
-
-If you built a released version of GCC using @samp{make bootstrap} then please
-quickly review the build status page for
-@uref{http://gcc.gnu.org/gcc-3.1/buildstat.html,,3.1},
-@uref{http://gcc.gnu.org/gcc-3.0/buildstat.html,,3.0}, or
-@uref{http://gcc.gnu.org/gcc-2.95/buildstat.html,,2.95}.
-If your system is not listed for the version of GCC that you built,
-send a note to
-@email{gcc@@gcc.gnu.org} indicating
-that you successfully built and installed GCC.
-Include the following information:
-
-@itemize @bullet
-@item
-Output from running @file{@var{srcdir}/config.guess}. Do not send us
-that file itself, just the one-line output from running it.
-
-@item
-The output of @samp{gcc -v} for your newly installed gcc.
-This tells us which version of GCC you built and the options you passed to
-configure.
-
-@item
-Whether you enabled all languages or a subset of them. If you used a
-full distribution then this information is part of the configure
-options in the output of @samp{gcc -v}, but if you downloaded the
-``core'' compiler plus additional front ends then it isn't apparent
-which ones you built unless you tell us about it.
-
-@item
-If the build was for GNU/Linux, also include:
-@itemize @bullet
-@item
-The distribution name and version (e.g., Red Hat 7.1 or Debian 2.2.3);
-this information should be available from @file{/etc/issue}.
-
-@item
-The version of the Linux kernel, available from @samp{uname --version}
-or @samp{uname -a}.
-
-@item
-The version of glibc you used; for RPM-based systems like Red Hat,
-Mandrake, and SuSE type @samp{rpm -q glibc} to get the glibc version,
-and on systems like Debian and Progeny use @samp{dpkg -l libc6}.
-@end itemize
-For other systems, you can include similar information if you think it is
-relevant.
-
-@item
-Any other information that you think would be useful to people building
-GCC on the same configuration. The new entry in the build status list
-will include a link to the archived copy of your message.
-@end itemize
-
-We'd also like to know if the
-@ifnothtml
-@ref{Specific, host/target specific installation notes}
-@end ifnothtml
-@ifhtml
-@uref{specific.html,,host/target specific installation notes}
-@end ifhtml
-didn't include your host/target information or if that information is
-incomplete or out of date. Send a note to
-@email{gcc@@gcc.gnu.org} telling us how the information should be changed.
-
-If you find a bug, please report it following our
-@uref{../bugs.html,,bug reporting guidelines}.
-
-If you want to print the GCC manuals, do @samp{cd @var{objdir}; make
-dvi}. You will need to have @command{texi2dvi} (version at least 4.1)
-and @TeX{} installed. This creates a number of @file{.dvi} files in
-subdirectories of @file{@var{objdir}}; these may be converted for
-printing with programs such as @command{dvips}. You can also
-@uref{http://www.gnu.org/order/order.html,,buy printed manuals from the
-Free Software Foundation}, though such manuals may not be for the most
-recent version of GCC@.
-
-@html
-
-
-@end html
-@ifhtml
-@uref{./index.html,,Return to the GCC Installation page}
-@end ifhtml
-@end ifset
-
-@c ***Binaries****************************************************************
-@ifnothtml
-@comment node-name, next, previous, up
-@node Binaries, Specific, Installing GCC, Top
-@end ifnothtml
-@ifset binarieshtml
-@html
-
Installing GCC: Binaries
-@end html
-@ifnothtml
-@chapter Installing GCC: Binaries
-@end ifnothtml
-@cindex Binaries
-@cindex Installing GCC: Binaries
-
-We are often asked about pre-compiled versions of GCC@. While we cannot
-provide these for all platforms, below you'll find links to binaries for
-various platforms where creating them by yourself is not easy due to various
-reasons.
-
-Please note that we did not create these binaries, nor do we
-support them. If you have any problems installing them, please
-contact their makers.
-
-@itemize
-@item
-AIX:
-@itemize
-@item
-@uref{http://freeware.bull.net,,Bull's Freeware and Shareware Archive for AIX};
-
-@item
-@uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX};
-@end itemize
-
-@item
-DOS---@uref{http://www.delorie.com/djgpp/,,DJGPP};
-
-@item
-HP-UX:
-@itemize
-@item
-@uref{http://hpux.cae.wisc.edu/,,HP-UX Porting Center};
-
-@item
-@uref{ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/,,Binaries for HP-UX 11.00 at Aachen University of Technology}.
-@end itemize
-
-@item
-@uref{http://www.sco.com/skunkware/devtools/index.html#gcc,,SCO
-OpenServer/Unixware};
-
-@item
-Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware};
-
-@item
-SGI---@uref{http://freeware.sgi.com/,,SGI Freeware};
-
-@item
-Windows 95, 98, and NT:
-@itemize
-@item
-The @uref{http://sources.redhat.com/cygwin/,,Cygwin} project;
-@item
-@uref{http://www.xraylith.wisc.edu/~khan/software/gnu-win32/,,GNU Win32}
-related projects by Mumit Khan.
-@end itemize
-
-@item
-@uref{ftp://ftp.thewrittenword.com/packages/free/by-name/,,The
-Written Word} offers binaries for Solaris 2.5.1, 2.6, 2.7/SPARC, 2.7/Intel,
-IRIX 6.2, 6.5, Digital UNIX 4.0D, HP-UX 10.20, and HP-UX 11.00.
-
-@item
-Hitachi H8/300[HS]---@uref{http://h8300-hms.sourceforge.net/,,GNU
-Development Tools for the Hitachi H8/300[HS] Series}
-
-@end itemize
-
-In addition to those specific offerings, you can get a binary
-distribution CD-ROM from the
-@uref{http://www.fsf.org/order/order.html,,Free Software Foundation}.
-It contains binaries for a number of platforms, and
-includes not only GCC, but other stuff as well. The current CD does
-not contain the latest version of GCC, but it should allow
-bootstrapping the compiler. An updated version of that disk is in the
-works.
-
-@html
-
-
-@end html
-@ifhtml
-@uref{./index.html,,Return to the GCC Installation page}
-@end ifhtml
-@end ifset
-
-@c ***Specific****************************************************************
-@ifnothtml
-@comment node-name, next, previous, up
-@node Specific, Old, Binaries, Top
-@end ifnothtml
-@ifset specifichtml
-@html
-
Host/target specific installation notes for GCC
-@end html
-@ifnothtml
-@chapter Host/target specific installation notes for GCC
-@end ifnothtml
-@cindex Specific
-@cindex Specific installation notes
-@cindex Target specific installation
-@cindex Host specific installation
-@cindex Target specific installation notes
-
-Please read this document carefully @emph{before} installing the
-GNU Compiler Collection on your machine.
-
-@ifhtml
-@itemize
-@item
-@uref{#1750a-*-*,,1750a-*-*}
-@item
-@uref{#a29k,,a29k}
-@item
-@uref{#a29k-*-bsd,,a29k-*-bsd}
-@item
-@uref{#alpha*-*-*,,alpha*-*-*}
-@item
-@uref{#alpha*-dec-osf*,,alpha*-dec-osf*}
-@item
-@uref{#alphaev5-cray-unicosmk*,,alphaev5-cray-unicosmk*}
-@item
-@uref{#arc-*-elf,,arc-*-elf}
-@item
-@uref{#arm-*-aout,,arm-*-aout}
-@item
-@uref{#arm-*-elf,,arm-*-elf}
-@item
-@uref{#arm*-*-linux-gnu,,arm*-*-linux-gnu}
-@item
-@uref{#arm-*-riscix,,arm-*-riscix}
-@item
-@uref{#avr,,avr}
-@item
-@uref{#c4x,,c4x}
-@item
-@uref{#dos,,DOS}
-@item
-@uref{#dsp16xx,,dsp16xx}
-@item
-@uref{#elxsi-elxsi-bsd,,elxsi-elxsi-bsd}
-@item
-@uref{#*-*-freebsd*,,*-*-freebsd*}
-@item
-@uref{#h8300-hms,,h8300-hms}
-@item
-@uref{#hppa*-hp-hpux*,,hppa*-hp-hpux*}
-@item
-@uref{#hppa*-hp-hpux9,,hppa*-hp-hpux9}
-@item
-@uref{#hppa*-hp-hpux10,,hppa*-hp-hpux10}
-@item
-@uref{#hppa*-hp-hpux11,,hppa*-hp-hpux11}
-@item
-@uref{#i370-*-*,,i370-*-*}
-@item
-@uref{#*-*-linux-gnu,,*-*-linux-gnu}
-@item
-@uref{#ix86-*-linux*oldld,,i?86-*-linux*oldld}
-@item
-@uref{#ix86-*-linux*aout,,i?86-*-linux*aout}
-@item
-@uref{#ix86-*-linux*,,i?86-*-linux*}
-@item
-@uref{#ix86-*-sco,,i?86-*-sco}
-@item
-@uref{#ix86-*-sco3.2v4,,i?86-*-sco3.2v4}
-@item
-@uref{#ix86-*-sco3.2v5*,,i?86-*-sco3.2v5*}
-@item
-@uref{#ix86-*-udk,,i?86-*-udk}
-@item
-@uref{#ix86-*-isc,,i?86-*-isc}
-@item
-@uref{#ix86-*-esix,,i?86-*-esix}
-@item
-@uref{#ix86-ibm-aix,,i?86-ibm-aix}
-@item
-@uref{#ix86-sequent-bsd,,i?86-sequent-bsd}
-@item
-@uref{#ix86-sequent-ptx1*,,i?86-sequent-ptx1*, i?86-sequent-ptx2*, i?86-sequent-sysv3*}
-@item
-@uref{#i860-intel-osf*,,i860-intel-osf*}
-@item
-@uref{#ia64-*-linux,,ia64-*-linux}
-@item
-@uref{#*-lynx-lynxos,,*-lynx-lynxos}
-@item
-@uref{#*-ibm-aix*,,*-ibm-aix*}
-@item
-@uref{#m32r-*-elf,,m32r-*-elf}
-@item
-@uref{#m68000-hp-bsd,,m68000-hp-bsd}
-@item
-@uref{#m6811-elf,,m6811-elf}
-@item
-@uref{#m6812-elf,,m6812-elf}
-@item
-@uref{#m68k-altos,,m68k-altos}
-@item
-@uref{#m68k-apple-aux,,m68k-apple-aux}
-@item
-@uref{#m68k-att-sysv,,m68k-att-sysv}
-@item
-@uref{#m68k-bull-sysv,,m68k-bull-sysv}
-@item
-@uref{#m68k-crds-unos,,m68k-crds-unos}
-@item
-@uref{#m68k-hp-hpux,,m68k-hp-hpux}
-@item
-@uref{#m68k-*-nextstep*,,m68k-*-nextstep*}
-@item
-@uref{#m68k-ncr-*,,m68k-ncr-*}
-@item
-@uref{#m68k-sun,,m68k-sun}
-@item
-@uref{#m68k-sun-sunos4.1.1,,m68k-sun-sunos4.1.1}
-@item
-@uref{#m88k-*-svr3,,m88k-*-svr3}
-@item
-@uref{#m88k-*-dgux,,m88k-*-dgux}
-@item
-@uref{#m88k-tektronix-sysv3,,m88k-tektronix-sysv3}
-@item
-@uref{#mips-*-*,,mips-*-*}
-@item
-@uref{#mips-dec-*,,mips-dec-*}
-@item
-@uref{#mips-mips-bsd,,mips-mips-bsd}
-@item
-@uref{#mips-mips-riscos*,,mips-mips-riscos*}
-@item
-@uref{#mips-sgi-irix4,,mips-sgi-irix4}
-@item
-@uref{#mips-sgi-irix5,,mips-sgi-irix5}
-@item
-@uref{#mips-sgi-irix6,,mips-sgi-irix6}
-@item
-@uref{#mips-sony-sysv,,mips-sony-sysv}
-@item
-@uref{#ns32k-encore,,ns32k-encore}
-@item
-@uref{#ns32k-*-genix,,ns32k-*-genix}
-@item
-@uref{#ns32k-sequent,,ns32k-sequent}
-@item
-@uref{#ns32k-utek,,ns32k-utek}
-@item
-@uref{#powerpc*-*-*,,powerpc*-*-*, powerpc-*-sysv4}
-@item
-@uref{#powerpc-*-darwin*,,powerpc-*-darwin*}
-@item
-@uref{#powerpc-*-elf,,powerpc-*-elf, powerpc-*-sysv4}
-@item
-@uref{#powerpc-*-linux-gnu*,,powerpc-*-linux-gnu*}
-@item
-@uref{#powerpc-*-netbsd*,,powerpc-*-netbsd*}
-@item
-@uref{#powerpc-*-eabiaix,,powerpc-*-eabiaix}
-@item
-@uref{#powerpc-*-eabisim,,powerpc-*-eabisim}
-@item
-@uref{#powerpc-*-eabi,,powerpc-*-eabi}
-@item
-@uref{#powerpcle-*-elf,,powerpcle-*-elf, powerpcle-*-sysv4}
-@item
-@uref{#powerpcle-*-eabisim,,powerpcle-*-eabisim}
-@item
-@uref{#powerpcle-*-eabi,,powerpcle-*-eabi}
-@item
-@uref{#powerpcle-*-winnt,,powerpcle-*-winnt, powerpcle-*-pe}
-@item
-@uref{#romp-*-aos,,romp-*-aos, romp-*-mach}
-@item
-@uref{#s390-*-linux*}
-@item
-@uref{#s390x-*-linux*}
-@item
-@uref{#*-*-solaris2*,,*-*-solaris2*}
-@item
-@uref{#sparc-sun-solaris2*,,sparc-sun-solaris2*}
-@item
-@uref{#sparc-sun-solaris2.7,,sparc-sun-solaris2.7}
-@item
-@uref{#sparc-sun-sunos4*,,sparc-sun-sunos4*}
-@item
-@uref{#sparc-unknown-linux-gnulibc1,,sparc-unknown-linux-gnulibc1}
-@item
-@uref{#sparc-*-linux*,,sparc-*-linux*}
-@item
-@uref{#sparc64-*-*,,sparc64-*-*}
-@item
-@uref{#sparcv9-*-solaris2*,,sparcv9-*-solaris2*}
-@item
-@uref{#*-*-sysv*,,*-*-sysv*}
-@item
-@uref{#vax-dec-ultrix,,vax-dec-ultrix}
-@item
-@uref{#we32k-*-*,,we32k-*-*}
-@item
-@uref{#xtensa-*-elf,,xtensa-*-elf}
-@item
-@uref{#xtensa-*-linux*,,xtensa-*-linux*}
-@item
-@uref{#windows,,Microsoft Windows}
-@item
-@uref{#os2,,OS/2}
-@item
-@uref{#older,,Older systems}
-@end itemize
-
-@itemize
-@item
-@uref{#elf_targets,,all ELF targets} (SVR4, Solaris 2, etc.)
-@end itemize
-@end ifhtml
-
-
-@html
-
-
-@end html
-@heading @anchor{1750a-*-*}1750a-*-*
-MIL-STD-1750A processors. This target is obsoleted in GCC 3.1.
-
-The MIL-STD-1750A cross configuration produces output for
-@code{as1750}, an assembler/linker available under the GNU General Public
-License for the 1750A@. @code{as1750} can be obtained at
-@uref{ftp://ftp.fta-berlin.de/pub/crossgcc/1750gals/}.
-A similarly licensed simulator for
-the 1750A is available from same address.
-
-You should ignore a fatal error during the building of @samp{libgcc}
-(@samp{libgcc} is not yet implemented for the 1750A@.)
-
-The @code{as1750} assembler requires the file @file{ms1750.inc}, which is
-found in the directory @file{gcc/config/1750a}.
-
-GCC produced the same sections as the Fairchild F9450 C Compiler,
-namely:
-
-@table @code
-@item Normal
-The program code section.
-
-@item Static
-The read/write (RAM) data section.
-
-@item Konst
-The read-only (ROM) constants section.
-
-@item Init
-Initialization section (code to copy KREL to SREL)@.
-@end table
-
-The smallest addressable unit is 16 bits (@code{BITS_PER_UNIT} is 16). This
-means that type @code{char} is represented with a 16-bit word per character.
-The 1750A's ``Load/Store Upper/Lower Byte'' instructions are not used by
-GCC@.
-
-@html
-
-
-@end html
-
-Currently Glibc 2.2.3 (and older releases) and GCC 3.0 are out of sync
-since the latest exception handling changes for GCC@. Compiling glibc
-with GCC 3.0 will give a binary incompatible glibc and therefore cause
-lots of problems and might make your system completly unusable. This
-will definitly need fixes in glibc but might also need fixes in GCC@. We
-strongly advise to wait for glibc 2.2.4 and to read the release notes of
-glibc 2.2.4 whether patches for GCC 3.0 are needed. You can use glibc
-2.2.3 with GCC 3.0, just do not try to recompile it.
-
-@html
-
-
-@end example
-
-@noindent
-insert the line
-
-@example
-#if __PGC__
-@end example
-
-@noindent
-and after the lines
-
-@example
-extern int vprintf(const char *, va_list );
-extern int vsprintf(char *, const char *, va_list );
-#endif
-@end example
-
-@noindent
-insert the line
-
-@example
-#endif /* __PGC__ */
-@end example
-
-These problems don't exist in operating system version 1.1.
-
-@html
-
-
-@end html
-@heading @anchor{ia64-*-linux}ia64-*-linux
-IA-64 processor (also known as IPF, or Itanium Processor Family)
-running GNU/Linux.
-
-The toolchain is not completely finished, so requirements will continue
-to change.
-GCC 3.0.1 and later require glibc 2.2.4.
-GCC 3.0.2 requires binutils from 2001-09-05 or later.
-GCC 3.0.1 requires binutils 2.11.1 or later.
-
-None of the following versions of GCC has an ABI that is compatible
-with any of the other versions in this list, with the exception that
-Red Hat 2.96 and Trillian 000171 are compatible with each other:
-3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717.
-This primarily affects C++ programs and programs that create shared libraries.
-Because of these ABI incompatibilities, GCC 3.0.2 is not recommended for
-user programs on GNU/Linux systems built using earlier compiler releases.
-GCC 3.0.2 is recommended for compiling linux, the kernel.
-GCC 3.0.2 is believed to be fully ABI compliant, and hence no more major
-ABI changes are expected.
-
-@html
-
-
-@end html
-@heading @anchor{*-lynx-lynxos}*-lynx-lynxos
-LynxOS 2.2 and earlier comes with GCC 1.x already installed as
-@file{/bin/gcc}. You should compile with this instead of @file{/bin/cc}.
-You can tell GCC to use the GNU assembler and linker, by specifying
-@samp{--with-gnu-as --with-gnu-ld} when configuring. These will produce
-COFF format object files and executables; otherwise GCC will use the
-installed tools, which produce @file{a.out} format executables.
-
-@html
-
-
-
-@end html
-@heading @anchor{*-ibm-aix*}*-ibm-aix*
-
-AIX Make frequently has problems with GCC makefiles. GNU Make 3.76 or
-newer is recommended to build on this platform.
-
-Errors involving @code{alloca} when building GCC generally are due
-to an incorrect definition of @code{CC} in the Makefile or mixing files
-compiled with the native C compiler and GCC@. During the stage1 phase of
-the build, the native AIX compiler @strong{must} be invoked as @command{cc}
-(not @command{xlc}). Once @command{configure} has been informed of
-@command{xlc}, one needs to use @samp{make distclean} to remove the
-configure cache files and ensure that @env{CC} environment variable
-does not provide a definition that will confuse @command{configure}.
-If this error occurs during stage2 or later, then the problem most likely
-is the version of Make (see above).
-
-The GNU Assembler incorrectly reports that it supports WEAK symbols on
-AIX which causes GCC to try to utilize weak symbol functionality which
-is not really supported on the platform. The native @command{as} and
-@command{ld} still are recommended. The native AIX tools do
-interoperate with GCC@.
-
-Building @file{libstdc++.a} requires a fix for a AIX Assembler bug
-APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1).
-
-Linking executables and shared libraries may produce warnings of
-duplicate symbols. The assembly files generated by GCC for AIX always
-have included multiple symbol definitions for certain global variable
-and function declarations in the original program. The warnings should
-not prevent the linker from producing a correct library or runnable
-executable.
-
-AIX 4.3 utilizes a ``large format'' archive to support both 32-bit and
-64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1
-to parse archive libraries did not handle the new format correctly.
-These routines are used by GCC and result in error messages during
-linking such as ``not a COFF file''. The version of the routines shipped
-with AIX 4.3.1 should work for a 32-bit environment. The @option{-g}
-option of the archive command may be used to create archives of 32-bit
-objects using the original ``small format''. A correct version of the
-routines is shipped with AIX 4.3.2 and above.
-
-Some versions of the AIX binder (linker) can fail with a relocation
-overflow severe error when the @option{-bbigtoc} option is used to link
-GCC-produced object files into an executable that overflows the TOC@. A fix
-for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is
-available from IBM Customer Support and from its
-@uref{http://techsupport.services.ibm.com/,,techsupport.services.ibm.com}
-website as PTF U455193.
-
-The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump core
-with a segmentation fault when invoked by any version of GCC@. A fix for
-APAR IX87327 is available from IBM Customer Support and from its
-@uref{http://techsupport.services.ibm.com/,,techsupport.services.ibm.com}
-website as PTF U461879. This fix is incorporated in AIX 4.3.3 and above.
-
-The initial assembler shipped with AIX 4.3.0 generates incorrect object
-files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUTPUT FROM COMPILER FAILS
-TO ASSEMBLE/BIND) is available from IBM Customer Support and from its
-@uref{http://techsupport.services.ibm.com/,,techsupport.services.ibm.com}
-website as PTF U453956. This fix is incorporated in AIX 4.3.1 and above.
-
-AIX provides National Language Support (NLS)@. Compilers and assemblers
-use NLS to support locale-specific representations of various data
-formats including floating-point numbers (e.g., @samp{.} vs @samp{,} for
-separating decimal fractions). There have been problems reported where
-GCC does not produce the same floating-point formats that the assembler
-expects. If one encounters this problem, set the @env{LANG}
-environment variable to @samp{C} or @samp{En_US}.
-
-By default, GCC for AIX 4.1 and above produces code that can be used on
-both Power or PowerPC processors.
-
-A default can be specified with the @option{-mcpu=@var{cpu_type}}
-switch and using the configure option @option{--with-cpu-@var{cpu_type}}.
-
-@html
-
-
-@end html
-@heading @anchor{m32r-*-elf}m32r-*-elf
-Mitsubishi M32R processor.
-This configuration is intended for embedded systems.
-
-@html
-
-
-@end html
-@heading @anchor{m68000-hp-bsd}m68000-hp-bsd
-HP 9000 series 200 running BSD@. Note that the C compiler that comes
-with this system cannot compile GCC; contact @email{law@@cygnus.com}
-to get binaries of GCC for bootstrapping.
-
-@html
-
-
-@end html
-@heading @anchor{m6811-elf}m6811-elf
-Motorola 68HC11 family micro controllers. These are used in embedded
-applications. There are no standard Unix configurations.
-
-@html
-
-
-@end html
-@heading @anchor{m6812-elf}m6812-elf
-Motorola 68HC12 family micro controllers. These are used in embedded
-applications. There are no standard Unix configurations.
-
-@html
-
-
-@end html
-@heading @anchor{m68k-altos}m68k-altos
-Altos 3068. This configuration is obsoleted in GCC 3.1.
-
-You must use the GNU assembler, linker and debugger.
-Also, you must fix a kernel bug.
-
-@html
-
-
-@end html
-@heading @anchor{m68k-apple-aux}m68k-apple-aux
-Apple Macintosh running A/UX@.
-This configuration is obsoleted in GCC 3.1.
-
-You may configure GCC to use either the system assembler and
-linker or the GNU assembler and linker. You should use the GNU configuration
-if you can, especially if you also want to use G++. You enable
-that configuration with the @option{--with-gnu-as} and @option{--with-gnu-ld}
-options to @code{configure}.
-
-Note the C compiler that comes
-with this system cannot compile GCC@. You can find binaries of GCC
-for bootstrapping on @code{jagubox.gsfc.nasa.gov}.
-You will also a patched version of @file{/bin/ld} there that
-raises some of the arbitrary limits found in the original.
-
-@html
-
-
-@end html
-@heading @anchor{m68k-att-sysv}m68k-att-sysv
-AT&T 3b1, a.k.a.@: 7300 PC@. This version of GCC cannot
-be compiled with the system C compiler, which is too buggy.
-You will need to get a previous version of GCC and use it to
-bootstrap. Binaries are available from the OSU-CIS archive, at
-@uref{ftp://archive.cis.ohio-state.edu/pub/att7300/}.
-
-@html
-
-
-@end html
-@heading @anchor{m68k-bull-sysv}m68k-bull-sysv
-Bull DPX/2 series 200 and 300 with BOS-2.00.45 up to BOS-2.01.
-This configuration is obsoleted in GCC 3.1.
-
-GCC works
-either with native assembler or GNU assembler. You can use
-GNU assembler with native COFF generation by providing @option{--with-gnu-as} to
-the configure script or use GNU assembler with stabs-in-COFF encapsulation
-by providing @samp{--with-gnu-as --stabs}. For any problem with the native
-assembler or for availability of the DPX/2 port of GAS, contact
-@email{F.Pierresteguy@@frcl.bull.fr}.
-
-@html
-
-
-@end html
-@heading @anchor{m68k-crds-unos}m68k-crds-unos
-Use @samp{configure unos} for building on Unos.
-
-The Unos assembler is named @code{casm} instead of @code{as}. For some
-strange reason linking @file{/bin/as} to @file{/bin/casm} changes the
-behavior, and does not work. So, when installing GCC, you should
-install the following script as @file{as} in the subdirectory where
-the passes of GCC are installed:
-
-@example
-#!/bin/sh
-casm $*
-@end example
-
-The default Unos library is named @file{libunos.a} instead of
-@file{libc.a}. To allow GCC to function, either change all
-references to @option{-lc} in @file{gcc.c} to @option{-lunos} or link
-@file{/lib/libc.a} to @file{/lib/libunos.a}.
-
-@cindex @code{alloca}, for Unos
-When compiling GCC with the standard compiler, to overcome bugs in
-the support of @code{alloca}, do not use @option{-O} when making stage 2.
-Then use the stage 2 compiler with @option{-O} to make the stage 3
-compiler. This compiler will have the same characteristics as the usual
-stage 2 compiler on other systems. Use it to make a stage 4 compiler
-and compare that with stage 3 to verify proper compilation.
-
-(Perhaps simply defining @code{ALLOCA} in @file{x-crds} as described in
-the comments there will make the above paragraph superfluous. Please
-inform us of whether this works.)
-
-Unos uses memory segmentation instead of demand paging, so you will need
-a 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 library
-and linking from that library.
-
-@html
-
-
-@end html
-@heading @anchor{m68k-hp-hpux}m68k-hp-hpux
-HP 9000 series 300 or 400 running HP-UX@. HP-UX version 8.0 has a bug in
-the assembler that prevents compilation of GCC@. This
-bug manifests itself during the first stage of compilation, while
-building @file{libgcc2.a}:
-
-@smallexample
-_floatdisf
-cc1: warning: `-g' option not supported on this version of GCC
-cc1: warning: `-g1' option not supported on this version of GCC
-./xgcc: Internal compiler error: program as got fatal signal 11
-@end smallexample
-
-A patched version of the assembler is available as the file
-@uref{ftp://altdorf.ai.mit.edu/archive/cph/hpux-8.0-assembler}. If you
-have HP software support, the patch can also be obtained directly from
-HP, as described in the following note:
-
-@quotation
-This is the patched assembler, to patch SR#1653-010439, where the
-assembler aborts on floating point constants.
-
-The bug is not really in the assembler, but in the shared library
-version of the function ``cvtnum(3c)''. The bug on ``cvtnum(3c)'' is
-SR#4701-078451. Anyway, the attached assembler uses the archive
-library version of ``cvtnum(3c)'' and thus does not exhibit the bug.
-@end quotation
-
-This patch is also known as PHCO_4484.
-
-In addition, if you wish to use gas, you must use
-gas version 2.1 or later, and you must use the GNU linker version 2.1 or
-later. Earlier versions of gas relied upon a program which converted the
-gas output into the native HP-UX format, but that program has not been
-kept up to date. gdb does not understand that native HP-UX format, so
-you must use gas if you wish to use gdb.
-
-On HP-UX version 8.05, but not on 8.07 or more recent versions, the
-@code{fixproto} shell script triggers a bug in the system shell. If you
-encounter this problem, upgrade your operating system or use BASH (the
-GNU shell) to run @code{fixproto}. This bug will cause the fixproto
-program to report an error of the form:
-
-@example
-./fixproto: sh internal 1K buffer overflow
-@end example
-
-To fix this, you can also change the first line of the fixproto script
-to look like:
-
-@example
-#!/bin/ksh
-@end example
-
-
-@html
-
-
-@end html
-@heading @anchor{m68k-*-nextstep*}m68k-*-nextstep*
-These configurations are obsoleted in GCC 3.1.
-
-Current GCC versions probably do not work on version 2 of the NeXT
-operating system.
-
-On NeXTStep 3.0, the Objective-C compiler does not work, due,
-apparently, to a kernel bug that it happens to trigger. This problem
-does not happen on 3.1.
-
-You absolutely @strong{must} use GNU sed and GNU make on this platform.
-
-
-On NeXTSTEP 3.x where x < 3 the build of GCC will abort during
-stage1 with an error message like this:
-
-@example
- _eh
- /usr/tmp/ccbbsZ0U.s:987:Unknown pseudo-op: .section
- /usr/tmp/ccbbsZ0U.s:987:Rest of line ignored. 1st junk character
- valued 95 (_).
-@end example
-
-The reason for this is the fact that NeXT's assembler for these
-versions of the operating system does not support the @samp{.section}
-pseudo op that's needed for full C++ exception functionality.
-
-As NeXT's assembler is a derived work from GNU as, a free
-replacement that does can be obtained at
-@uref{ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz,,ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz}.
-
-If you try to build the integrated C++ & C++ runtime libraries on this system
-you will run into trouble with include files. The way to get around this is
-to use the following sequence. Note you must have write permission to
-the directory @var{prefix} you specified in the configuration process of GCC
-for this sequence to work.
-
-@example
- cd bld-gcc
- make all-texinfo all-bison all-byacc all-binutils all-gas all-ld
- cd gcc
- make bootstrap
- make install-headers-tar
- cd ..
- make bootstrap3
-@end example
-
-@html
-
-
-@end html
-@heading @anchor{m68k-ncr-*}m68k-ncr-*
-On the Tower models 4@var{n}0 and 6@var{n}0, by default a process is not
-allowed to have more than one megabyte of memory. GCC cannot compile
-itself (or many other programs) with @option{-O} in that much memory.
-
-To solve this problem, reconfigure the kernel adding the following line
-to the configuration file:
-
-@smallexample
-MAXUMEM = 4096
-@end smallexample
-
-
-@html
-
-
-@end html
-@heading @anchor{m68k-sun}m68k-sun
-Sun 3. We do not provide a configuration file to use the Sun FPA by
-default, because programs that establish signal handlers for floating
-point traps inherently cannot work with the FPA@.
-
-@html
-
-
-@end html
-@heading @anchor{m68k-sun-sunos4.1.1}m68k-sun-sunos4.1.1
-
-It is reported that you may need the GNU assembler on this platform.
-
-
-@html
-
-
-@end html
-@heading @anchor{m88k-*-svr3}m88k-*-svr3
-Motorola m88k running the AT&T/Unisoft/Motorola V.3 reference port.
-These configurations are obsoleted in GCC 3.1.
-
-These systems tend to use the Green Hills C, revision 1.8.5, as the
-standard C compiler. There are apparently bugs in this compiler that
-result in object files differences between stage 2 and stage 3. If this
-happens, make the stage 4 compiler and compare it to the stage 3
-compiler. If the stage 3 and stage 4 object files are identical, this
-suggests you encountered a problem with the standard C compiler; the
-stage 3 and 4 compilers may be usable.
-
-It is best, however, to use an older version of GCC for bootstrapping
-if you have one.
-
-@html
-
-
-@end html
-@heading @anchor{m88k-*-dgux}m88k-*-dgux
-Motorola m88k running DG/UX@.
-These configurations are obsoleted in GCC 3.1.
-
-To build 88open BCS native or cross
-compilers on DG/UX, specify the configuration name as
-@samp{m88k-*-dguxbcs} and build in the 88open BCS software development
-environment. 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 the
-configuration based on the current software development environment.
-
-@html
-
-
-@end html
-@heading @anchor{m88k-tektronix-sysv3}m88k-tektronix-sysv3
-Tektronix XD88 running UTekV 3.2e.
-These configurations are obsoleted in GCC 3.1.
-
-Do not turn on
-optimization while building stage1 if you bootstrap with
-the buggy Green Hills compiler. Also, the bundled LAI
-System V NFS is buggy so if you build in an NFS mounted
-directory, start from a fresh reboot, or avoid NFS all together.
-Otherwise you may have trouble getting clean comparisons
-between stages.
-
-@html
-
-
-@end html
-@heading @anchor{mips-*-*}mips-*-*
-If you use the 1.31 version of the MIPS assembler (such as was shipped
-with Ultrix 3.1), you will need to use the @option{-fno-delayed-branch} switch
-when optimizing floating point code. Otherwise, the assembler will
-complain when the GCC compiler fills a branch delay slot with a
-floating point instruction, such as @code{add.d}.
-
-If on a MIPS system you get an error message saying ``does not have gp
-sections for all it's [sic] sectons [sic]'', don't worry about it. This
-happens whenever you use GAS with the MIPS linker, but there is not
-really anything wrong, and it is okay to use the output file. You can
-stop such warnings by installing the GNU linker.
-
-It would be nice to extend GAS to produce the gp tables, but they are
-optional, and there should not be a warning about their absence.
-
-Users have reported some problems with version 2.0 of the MIPS
-compiler tools that were shipped with Ultrix 4.1. Version 2.10
-which came with Ultrix 4.2 seems to work fine.
-
-Users have also reported some problems with version 2.20 of the
-MIPS compiler tools that were shipped with RISC/os 4.x. The earlier
-version 2.11 seems to work fine.
-
-Some versions of the MIPS linker will issue an assertion failure
-when linking code that uses @code{alloca} against shared
-libraries on RISC-OS 5.0, and DEC's OSF/1 systems. This is a bug
-in the linker, that is supposed to be fixed in future revisions.
-To protect against this, GCC passes @option{-non_shared} to the
-linker unless you pass an explicit @option{-shared} or
-@option{-call_shared} switch.
-
-@heading @anchor{mips-mips-bsd}mips-mips-bsd
-MIPS machines running the MIPS operating system in BSD mode.
-These configurations are obsoleted in GCC 3.1.
-
-It's possible that some old versions of the system lack the functions
-@code{memcpy}, @code{memmove}, @code{memcmp}, and @code{memset}. If your
-system lacks these, you must remove or undo the definition of
-@code{TARGET_MEM_FUNCTIONS} in @file{mips-bsd.h}.
-
-If you use the MIPS C compiler to bootstrap, it may be necessary
-to increase its table size for switch statements with the
-@option{-Wf,-XNg1500} option. If you use the @option{-O2}
-optimization option, you also need to use @option{-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 MIPS
-compilers, you may need to add @option{-Wf,-XNg1500 -Olimit 3000}.
-
-@html
-
-
-@end html
-@heading @anchor{mips-dec-*}mips-dec-*
-These configurations are obsoleted in GCC 3.1.
-
-MIPS-based DECstations can support three different personalities:
-Ultrix, DEC OSF/1, and OSF/rose. (Alpha-based DECstation products have
-a configuration name beginning with @samp{alpha*-dec}.) To configure GCC
-for these platforms use the following configurations:
-
-@table @samp
-@item mips-dec-ultrix
-Ultrix configuration.
-
-@item mips-dec-osf1
-DEC's version of OSF/1.
-
-@item mips-dec-osfrose
-Open Software Foundation reference port of OSF/1 which uses the
-OSF/rose object file format instead of ECOFF@. Normally, you
-would not select this configuration.
-@end table
-
-If you use the MIPS C compiler to bootstrap, it may be necessary
-to increase its table size for switch statements with the
-@option{-Wf,-XNg1500} option. If you use the @option{-O2}
-optimization option, you also need to use @option{-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 MIPS
-compilers, you may need to add @option{-Wf,-XNg1500 -Olimit 3000}.
-
-@html
-
-
-@end html
-@heading @anchor{mips-mips-riscos*}mips-mips-riscos*
-These configurations are obsoleted in GCC 3.1.
-
-If you use the MIPS C compiler to bootstrap, it may be necessary
-to increase its table size for switch statements with the
-@option{-Wf,-XNg1500} option. If you use the @option{-O2}
-optimization option, you also need to use @option{-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 MIPS
-compilers, you may need to add @samp{-Wf,-XNg1500 -Olimit 3000}.
-
-MIPS computers running RISC-OS can support four different
-personalities: default, BSD 4.3, System V.3, and System V.4
-(older versions of RISC-OS don't support V.4). To configure GCC
-for these platforms use the following configurations:
-
-@table @samp
-@item mips-mips-riscos@var{rev}
-Default configuration for RISC-OS, revision @var{rev}.
-
-@item mips-mips-riscos@var{rev}bsd
-BSD 4.3 configuration for RISC-OS, revision @var{rev}.
-
-@item mips-mips-riscos@var{rev}sysv4
-System V.4 configuration for RISC-OS, revision @var{rev}.
-
-@html
-
-
-@end html
-@item mips-mips-riscos@var{rev}sysv
-System V.3 configuration for RISC-OS, revision @var{rev}.
-@end table
-
-The revision @code{rev} mentioned above is the revision of
-RISC-OS to use. You must reconfigure GCC when going from a
-RISC-OS revision 4 to RISC-OS revision 5. This has the effect of
-avoiding a linker bug.
-
-@html
-
-
-@end html
-@heading @anchor{mips-sgi-irix4}mips-sgi-irix4
-This configuration is obsoleted in GCC 3.1.
-
-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.
-
-On IRIX version 4.0.5F, and perhaps on some other versions as well,
-there is an assembler bug that reorders instructions incorrectly. To
-work around it, specify the target configuration
-@samp{mips-sgi-irix4loser}. This configuration inhibits assembler
-optimization.
-
-In a compiler configured with target @samp{mips-sgi-irix4}, you can turn
-off assembler optimization by using the @option{-noasmopt} option. This
-compiler option passes the option @option{-O0} to the assembler, to
-inhibit reordering.
-
-The @option{-noasmopt} option can be useful for testing whether a problem
-is due to erroneous assembler reordering. Even if a problem does not go
-away with @option{-noasmopt}, it may still be due to assembler
-reordering---perhaps GCC itself was miscompiled as a result.
-
-You may get the following warning on IRIX 4 platforms, it can be safely
-ignored.
-@example
- warning: foo.o does not have gp tables for all its sections.
-@end example
-
-@html
-
-
-@end html
-@heading @anchor{mips-sgi-irix5}mips-sgi-irix5
-
-This configuration has considerable problems, which will be fixed in a
-future release.
-
-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 Silicon
-Graphics. It is also available for download from
-@uref{http://www.sgi.com/developers/devtools/apis/ido.html,,http://www.sgi.com/developers/devtools/apis/ido.html}.
-
-@code{make compare} may fail on version 5 of IRIX unless you add
-@option{-save-temps} to @code{CFLAGS}. On these systems, the name of the
-assembler input file is stored in the object file, and that makes
-comparison fail if it differs between the @code{stage1} and
-@code{stage2} compilations. The option @option{-save-temps} forces a
-fixed name to be used for the assembler input file, instead of a
-randomly chosen name in @file{/tmp}. Do not add @option{-save-temps}
-unless the comparisons fail without that option. If you do you
-@option{-save-temps}, you will have to manually delete the @samp{.i} and
-@samp{.s} files after each series of compilations.
-
-If you use the MIPS C compiler to bootstrap, it may be necessary
-to increase its table size for switch statements with the
-@option{-Wf,-XNg1500} option. If you use the @option{-O2}
-optimization option, you also need to use @option{-Olimit 3000}.
-
-To enable debugging under IRIX 5, you must use GNU @command{as} 2.11.2
-or later,
-and use the @option{--with-gnu-as} configure option when configuring GCC.
-GNU @command{as} is distributed as part of the binutils package.
-When using release 2.11.2, you need to apply a patch
-@uref{http://sources.redhat.com/ml/binutils/2001-07/msg00352.html,,http://sources.redhat.com/ml/binutils/2001-07/msg00352.html}
-which will be included in the next release of binutils.
-
-When building GCC, the build process loops rebuilding @command{cc1} over
-and over again. This happens on @samp{mips-sgi-irix5.2}, and possibly
-other platforms. It has been reported that this is a known bug in the
-@command{make} shipped with IRIX 5.2. We recommend you use GNU
-@command{make} instead of the vendor supplied @command{make} program;
-however, you may have success with @command{smake} on IRIX 5.2 if you do
-not have GNU @command{make} available.
-
-@html
-
-
-@end html
-@heading @anchor{mips-sgi-irix6}mips-sgi-irix6
-
-If you are using IRIX @command{cc} as your bootstrap compiler, you must
-ensure that the N32 ABI is in use. To test this, compile a simple C
-file with @command{cc} and then run @command{file} on the
-resulting object file. The output should look like:
-
-@example
-test.o: ELF N32 MSB @dots{}
-@end example
-
-If you see:
-
-@example
-test.o: ELF 32-bit MSB @dots{}
-@end example
-
-or
-
-@example
-test.o: ELF 64-bit MSB @dots{}
-@end example
-
-then your version of @command{cc} uses the O32 or N64 ABI by default. You
-should set the environment variable @env{CC} to @samp{cc -n32}
-before configuring GCC@.
-
-GCC on IRIX 6 is usually built to support both the N32 and N64 ABIs. If
-you build GCC on a system that doesn't have the N64 libraries installed,
-you need to configure with @option{--disable-multilib} so GCC doesn't
-try to use them. Look for @file{/usr/lib64/libc.so.1} to see if you
-have the 64-bit libraries installed.
-
-You must @emph{not} use GNU @command{as} (which isn't built anyway as of
-binutils 2.11.2) on IRIX 6 platforms; doing so will only cause problems.
-
-GCC does not currently support generating O32 ABI binaries in the
-@samp{mips-sgi-irix6} configurations. It is possible to create a GCC
-with O32 ABI only support by configuring it for the @samp{mips-sgi-irix5}
-target and using a patched GNU @command{as} 2.11.2 as documented in the
-@uref{#mips-sgi-irix5,,@samp{mips-sgi-irix5}} section above. Using the
-native assembler requires patches to GCC which will be included in a
-future release. It is
-expected that O32 ABI support will be available again in a future release.
-
-The @option{--enable-threads} option doesn't currently work, a patch is
-in preparation for a future release. The @option{--enable-libgcj}
-option is disabled by default: IRIX 6 uses a very low default limit
-(20480) for the command line length. Although libtool contains a
-workaround for this problem, at least the N64 @samp{libgcj} is known not
-to build despite this, running into an internal error of the native
-@command{ld}. A sure fix is to increase this limit (@samp{ncargs}) to
-its maximum of 262144 bytes. If you have root access, you can use the
-@command{systune} command to do this.
-
-GCC does not correctly pass/return structures which are
-smaller than 16 bytes and which are not 8 bytes. The problem is very
-involved and difficult to fix. It affects a number of other targets also,
-but IRIX 6 is affected the most, because it is a 64 bit target, and 4 byte
-structures are common. The exact problem is that structures are being padded
-at the wrong end, e.g.@: a 4 byte structure is loaded into the lower 4 bytes
-of the register when it should be loaded into the upper 4 bytes of the
-register.
-
-GCC is consistent with itself, but not consistent with the SGI C compiler
-(and the SGI supplied runtime libraries), so the only failures that can
-happen are when there are library functions that take/return such
-structures. There are very few such library functions. Currently this
-is known to affect @code{inet_ntoa}, @code{inet_lnaof},
-@code{inet_netof}, @code{inet_makeaddr}, and @code{semctl}. Until the
-bug is fixed, GCC contains workarounds for the known affected functions.
-
-See @uref{http://freeware.sgi.com/,,http://freeware.sgi.com/} for more
-information about using GCC on IRIX platforms.
-
-@html
-
-
-@end html
-@heading @anchor{mips-sony-sysv}mips-sony-sysv
-Sony MIPS NEWS@. This configuration is obsoleted in GCC 3.1.
-
-This works in NEWSOS 5.0.1, but not in 5.0.2 (which uses ELF instead of
-COFF)@. In particular, the linker does not like the code generated by
-GCC when shared libraries are linked in.
-
-@html
-
-
-@end html
-@heading @anchor{ns32k-encore}ns32k-encore
-This configuration is obsoleted in GCC 3.1.
-
-Encore ns32000 system. Encore systems are supported only under BSD@.
-
-@html
-
-
-@end html
-@heading @anchor{ns32k-*-genix}ns32k-*-genix
-National Semiconductor ns32000 system. This configuration is obsoleted
-in GCC 3.1.
-
-Genix has bugs in @code{alloca} and @code{malloc}; you must get the
-compiled versions of these from GNU Emacs.
-
-@html
-
-
-@end html
-@heading @anchor{ns32k-sequent}ns32k-sequent
-This configuration is obsoleted in GCC 3.1.
-
-Go to the Berkeley universe before compiling.
-
-@html
-
-
-@end html
-@heading @anchor{ns32k-utek}ns32k-utek
-UTEK ns32000 system (``merlin''). This configuration is obsoleted in
-GCC 3.1.
-
-The C compiler that comes with this system cannot compile GCC; contact
-@samp{tektronix!reed!mason} to get binaries of GCC for bootstrapping.
-
-
-@html
-
-
-@end html
-@heading @anchor{powerpc*-*-*}powerpc-*-*
-
-You can specify a default version for the @option{-mcpu=@var{cpu_type}}
-switch by using the configure option @option{--with-cpu-@var{cpu_type}}.
-
-@html
-
-
-@end html
-@heading @anchor{powerpc-*-darwin*}powerpc-*-darwin*
-PowerPC running Darwin (Mac OS X kernel).
-
-GCC 3.0 does not support Darwin, but 3.1 and later releases will work.
-
-Pre-installed versions of Mac OS X may not include any developer tools,
-meaning that you will not be able to build GCC from source. Tool
-binaries are available at
-@uref{http://www.opensource.apple.com/projects/darwin} (free
-registration required).
-
-Versions of the assembler prior to ``cctools-364'' cannot handle the
-4-argument form of rlwinm and related mask-using instructions. Darwin
-1.3 (Mac OS X 10.0) uses cctools-353 for instance. To get cctools-364,
-check out @file{cctools} with tag @samp{Apple-364}, build it, and
-install the assembler as @file{usr/bin/as}. See
-@uref{http://www.opensource.apple.com/tools/cvs/docs.html} for details.
-
-Also, the default stack limit of 512K is too small, and a bootstrap will
-typically fail when self-compiling @file{expr.c}. Set the stack to 800K
-or more, for instance by doing @samp{limit stack 800}. It's also
-convenient to use the GNU preprocessor instead of Apple's during the
-first stage of bootstrapping; this is automatic when doing @samp{make
-bootstrap}, but to do it from the toplevel objdir you will need to say
-@samp{make CC='cc -no-cpp-precomp' bootstrap}.
-
-Note that the version of GCC shipped by Apple typically includes a
-number of extensions not available in a standard GCC release. These
-extensions are generally specific to Mac programming.
-
-@html
-
-
-@end html
-@heading @anchor{powerpc-*-elf}powerpc-*-elf, powerpc-*-sysv4
-PowerPC system in big endian mode, running System V.4.
-
-@html
-
-
-@end html
-@heading @anchor{powerpc-*-linux-gnu*}powerpc-*-linux-gnu*
-
-You will need
-@uref{ftp://ftp.kernel.org/pub/linux/devel/binutils,,binutils 2.12.90.0.7}
-or newer for a working GCC@.
-
-@html
-
-
-@end html
-@heading @anchor{powerpc-*-netbsd*}powerpc-*-netbsd*
-PowerPC system in big endian mode running NetBSD@. To build the
-documentation you will need Texinfo version 4.1 (NetBSD 1.5.1 included
-Texinfo version 3.12).
-
-@html
-
-
-@end html
-@heading @anchor{powerpc-*-eabiaix}powerpc-*-eabiaix
-Embedded PowerPC system in big endian mode with @option{-mcall-aix} selected as
-the default.
-
-@html
-
-
-@end html
-@heading @anchor{powerpc-*-eabisim}powerpc-*-eabisim
-Embedded PowerPC system in big endian mode for use in running under the
-PSIM simulator.
-
-@html
-
-
-@end html
-@heading @anchor{powerpc-*-eabi}powerpc-*-eabi
-Embedded PowerPC system in big endian mode.
-
-@html
-
-
-@end html
-@heading @anchor{powerpcle-*-elf}powerpcle-*-elf, powerpcle-*-sysv4
-PowerPC system in little endian mode, running System V.4.
-
-@html
-
-
-@end html
-@heading @anchor{powerpcle-*-eabisim}powerpcle-*-eabisim
-Embedded PowerPC system in little endian mode for use in running under
-the PSIM simulator.
-
-@html
-
-
-@end html
-@heading @anchor{powerpcle-*-eabi}powerpcle-*-eabi
-Embedded PowerPC system in little endian mode.
-
-@html
-
-
-@end html
-@heading @anchor{powerpcle-*-winnt}powerpcle-*-winnt, powerpcle-*-pe
-PowerPC system in little endian mode running Windows NT@.
-
-@html
-
-
-@end html
-@heading @anchor{romp-*-aos}romp-*-aos, romp-*-mach
-These configurations are obsoleted in GCC 3.1.
-
-We recommend you compile GCC with an earlier version of itself; if you
-compile GCC with @command{hc}, the Metaware compiler, it will work, but
-you will get mismatches between the stage 2 and stage 3 compilers in
-various files. These errors are minor differences in some
-floating-point constants and can be safely ignored; the stage 3 compiler
-is correct.
-
-@html
-
-
-@end html
-@heading @anchor{s390-*-linux*}s390-*-linux*
-S/390 system running Linux for S/390@.
-
-@html
-
-
-@end html
-@heading @anchor{s390x-*-linux*}s390x-*-linux*
-zSeries system (64 Bit) running Linux for zSeries@.
-
-@html
-
-
-@end html
-@c Please use Solaris 2 to refer to all release of Solaris, starting
-@c with 2.0 until 2.6, 7, and 8. Solaris 1 was a marketing name for
-@c SunOS 4 releases which we don't use to avoid confusion. Solaris
-@c alone is too unspecific and must be avoided.
-@heading @anchor{*-*-solaris2*}*-*-solaris2*
-
-Sun does not ship a C compiler with Solaris 2. To bootstrap and install
-GCC you first have to install a pre-built compiler, see our
-@uref{binaries.html,,binaries page} for details.
-
-The Solaris 2 @command{/bin/sh} will often fail to configure
-@file{libstdc++-v3}, @file{boehm-gc} or
-@file{libjava}. If you encounter this problem, set @env{CONFIG_SHELL} to
-@command{/bin/ksh} in your environment and run @command{make bootstrap} again.
-Another possibility that sometimes helps is to remove
-@file{*-*-solaris2*/config.cache}.
-
-Solaris 2 comes with a number of optional OS packages. Some of these
-packages are needed to use GCC fully, namely @code{SUNWarc},
-@code{SUNWbtool}, @code{SUNWesu}, @code{SUNWhea}, @code{SUNWlibm},
-@code{SUNWsprot}, and @code{SUNWtoo}. If you did not install all
-optional packages when installing Solaris 2, you will need to verify that
-the packages that GCC needs are installed.
-
-To check whether an optional package is installed, use
-the @command{pkginfo} command. To add an optional package, use the
-@command{pkgadd} command. For further details, see the Solaris 2
-documentation.
-
-Trying to use the linker and other tools in
-@file{/usr/ucb} to install GCC has been observed to cause trouble.
-For example, the linker may hang indefinitely. The fix is to remove
-@file{/usr/ucb} from your @env{PATH}.
-
-All releases of GNU binutils prior to 2.11.2 have known bugs on this
-platform. We recommend the use of GNU binutils 2.11.2 or the vendor
-tools (Sun @command{as}, Sun @command{ld}).
-
-Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
-newer: @command{g++} will complain that types are missing. These headers assume
-that omitting the type means @code{int}; this assumption worked for C89 but
-is wrong for C++, and is now wrong for C99 also.
-
-@command{g++} accepts such (invalid) constructs with the option
-@option{-fpermissive}; it
-will assume that any missing type is @code{int} (as defined by C89).
-
-There are patches for Solaris 2.6 (105633-56 or newer for SPARC,
-106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC,
-108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
-108653-22 for Intel) that fix this bug.
-
-@html
-
-
-@end html
-@heading @anchor{sparc-sun-solaris2*}sparc-sun-solaris2*
-
-When GCC is configured to use binutils 2.11.2 or later the binaries
-produced are smaller than the ones produced using Sun's native tools;
-this difference is quite significant for binaries containing debugging
-information.
-
-Sun @command{as} 4.x is broken in that it cannot cope with long symbol names.
-A typical error message might look similar to the following:
-
-@samp{/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041:
-error: can't compute value of an expression involving an external symbol.}
-
-This is Sun bug 4237974. This is fixed with patch 108908-02 for Solaris
-2.6 and has been fixed in later (5.x) versions of the assembler,
-starting with Solaris 7.
-
-Starting with Solaris 7, the operating system is capable of executing
-64-bit SPARC V9 binaries. GCC 3.1 and later properly supports
-this; the @option{-m64} option enables 64-bit code generation.
-However, if all you want is code tuned for the UltraSPARC CPU, you
-should try the @option{-mtune=ultrasparc} option instead, which produces
-code that, unlike full 64-bit code, can still run on non-UltraSPARC
-machines.
-
-When configuring on a Solaris 7 or later system that is running a kernel
-that supports only 32-bit binaries, one must configure with
-@option{--disable-multilib}, since we will not be able to build the
-64-bit target libraries.
-
-@html
-
-
-@end html
-@heading @anchor{sparc-sun-solaris2.7}sparc-sun-solaris2.7
-
-Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in
-the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8
-and later, including all EGCS releases. Sun formerly recommended
-107058-01 for all Solaris 7 users, but around 1999-09-01 it started to
-recommend it only for people who use Sun's compilers.
-
-Here are some workarounds to this problem:
-@itemize @bullet
-@item
-Do not install Sun patch 107058-01 until after Sun releases a
-complete patch for bug 4210064. This is the simplest course to take,
-unless you must also use Sun's C compiler. Unfortunately 107058-01
-is preinstalled on some new Solaris 7-based hosts, so you may have to
-back it out.
-
-@item
-Copy the original, unpatched Solaris 7
-@command{/usr/ccs/bin/as} into
-@command{/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/3.1/as},
-adjusting the latter name to fit your local conventions and software
-version numbers.
-
-@item
-Install Sun patch 106950-03 (1999-05-25) or later. Nobody with
-both 107058-01 and 106950-03 installed has reported the bug with GCC
-and Sun's dynamic linker. This last course of action is riskiest,
-for two reasons. First, you must install 106950 on all hosts that
-run code generated by GCC; it doesn't suffice to install it only on
-the hosts that run GCC itself. Second, Sun says that 106950-03 is
-only a partial fix for bug 4210064, but Sun doesn't know whether the
-partial fix is adequate for GCC@. Revision -08 or later should fix
-the bug. The current (as of 2001-09-24) revision is -14, and is included in
-the Solaris 7 Recommended Patch Cluster.
-@end itemize
-
-
-@html
-
-
-@end html
-@heading @anchor{sparc-sun-sunos4*}sparc-sun-sunos4*
-
-A bug in the SunOS 4 linker will cause it to crash when linking
-@option{-fPIC} compiled objects (and will therefore not allow you to build
-shared libraries).
-
-To fix this problem you can either use the most recent version of
-binutils or get the latest SunOS 4 linker patch (patch ID 100170-10)
-from Sun's patch site.
-
-Sometimes on a Sun 4 you may observe a crash in the program
-@command{genflags} or @command{genoutput} while building GCC. This is said to
-be due to a bug in @command{sh}. You can probably get around it by running
-@command{genflags} or @command{genoutput} manually and then retrying the
-@command{make}.
-
-@html
-
-
-@end html
-@heading @anchor{sparc-unknown-linux-gnulibc1}sparc-unknown-linux-gnulibc1
-
-It has been reported that you might need
-@uref{ftp://ftp.yggdrasil.com/private/hjl,,binutils 2.8.1.0.23}
-for this platform, too.
-
-
-@html
-
-
-@end html
-@heading @anchor{sparc-*-linux*}sparc-*-linux*
-
-GCC versions 3.0 and higher require binutils 2.11.2 and glibc 2.2.4
-or newer on this platform. All earlier binutils and glibc
-releases mishandled unaligned relocations on @code{sparc-*-*} targets.
-
-
-@html
-
-
-@end html
-@heading @anchor{sparc64-*-*}sparc64-*-*
-
-GCC version 2.95 is not able to compile code correctly for
-@code{sparc64} targets. Users of the Linux kernel, at least,
-can use the @code{sparc32} program to start up a new shell
-invocation with an environment that causes @command{configure} to
-recognize (via @samp{uname -a}) the system as @samp{sparc-*-*} instead.
-
-@html
-
-
-@end html
-@heading @anchor{sparcv9-*-solaris2*}sparcv9-*-solaris2*
-
-The following compiler flags must be specified in the configure
-step in order to bootstrap this target with the Sun compiler:
-
-@example
- % CC="cc -xildoff -xarch=v9" @var{srcdir}/configure [@var{options}] [@var{target}]
-@end example
-
-@option{-xildoff} turns off the incremental linker, and @option{-xarch=v9}
-specifies the v9 architecture to the Sun linker and assembler.
-
-@html
-
-
-@end html
-@heading @anchor{#*-*-sysv*}*-*-sysv*
-On System V release 3, you may get this error message
-while linking:
-
-@smallexample
-ld fatal: failed to write symbol name @var{something}
- in strings table for file @var{whatever}
-@end smallexample
-
-This probably indicates that the disk is full or your ulimit won't allow
-the file to be as large as it needs to be.
-
-This problem can also result because the kernel parameter @code{MAXUMEM}
-is too small. If so, you must regenerate the kernel and make the value
-much larger. The default value is reported to be 1024; a value of 32768
-is said to work. Smaller values may also work.
-
-On System V, if you get an error like this,
-
-@example
-/usr/local/lib/bison.simple: In function `yyparse':
-/usr/local/lib/bison.simple:625: virtual memory exhausted
-@end example
-
-@noindent
-that too indicates a problem with disk space, ulimit, or @code{MAXUMEM}.
-
-On a System V release 4 system, make sure @file{/usr/bin} precedes
-@file{/usr/ucb} in @code{PATH}. The @code{cc} command in
-@file{/usr/ucb} uses libraries which have bugs.
-
-@html
-
-
-@end html
-@heading @anchor{vax-dec-ultrix}vax-dec-ultrix
-Don't try compiling with VAX C (@code{vcc}). It produces incorrect code
-in some cases (for example, when @code{alloca} is used).
-
-@html
-
-
-@end html
-@heading @anchor{we32k-*-*}we32k-*-*
-These computers are also known as the 3b2, 3b5, 3b20 and other similar
-names. (However, the 3b1 is actually a 68000.)
-These configurations are obsoleted in GCC 3.1.
-
-Don't use @option{-g} when compiling with the system's compiler. The
-system's linker seems to be unable to handle such a large program with
-debugging information.
-
-The system's compiler runs out of capacity when compiling @file{stmt.c}
-in GCC@. You can work around this by building @file{cpp} in GCC
-first, then use that instead of the system's preprocessor with the
-system's C compiler to compile @file{stmt.c}. Here is how:
-
-@smallexample
-mv /lib/cpp /lib/cpp.att
-cp cpp /lib/cpp.gnu
-echo '/lib/cpp.gnu -traditional $@{1+"$@@"@}' > /lib/cpp
-chmod +x /lib/cpp
-@end smallexample
-
-The system's compiler produces bad code for some of the GCC
-optimization files. So you must build the stage 2 compiler without
-optimization. Then build a stage 3 compiler with optimization.
-That executable should work. Here are the necessary commands:
-
-@smallexample
-make LANGUAGES=c CC=stage1/xgcc CFLAGS="-Bstage1/ -g"
-make stage2
-make CC=stage2/xgcc CFLAGS="-Bstage2/ -g -O"
-@end smallexample
-
-You may need to raise the ULIMIT setting to build a C++ compiler,
-as the file @file{cc1plus} is larger than one megabyte.
-
-@html
-
-
-@end html
-@heading @anchor{xtensa-*-elf}xtensa-*-elf
-
-This target is intended for embedded Xtensa systems using the
-@samp{newlib} C library. It uses ELF but does not support shared
-objects. Designed-defined instructions specified via the
-Tensilica Instruction Extension (TIE) language are only supported
-through inline assembly.
-
-The Xtensa configuration information must be specified prior to
-building GCC@. The @file{gcc/config/xtensa/xtensa-config.h} header
-file contains the configuration information. If you created your
-own Xtensa configuration with the Xtensa Processor Generator, the
-downloaded files include a customized copy of this header file,
-which you can use to replace the default header file.
-
-@html
-
-
-@end html
-@heading @anchor{xtensa-*-linux*}xtensa-*-linux*
-
-This target is for Xtensa systems running GNU/Linux. It supports ELF
-shared objects and the GNU C library (glibc). It also generates
-position-independent code (PIC) regardless of whether the
-@option{-fpic} or @option{-fPIC} options are used. In other
-respects, this target is the same as the
-@uref{#xtensa-*-elf,,@samp{xtensa-*-elf}} target.
-
-@html
-
-
-@end html
-@heading @anchor{windows}Microsoft Windows (32 bit)
-
-A port of GCC 2.95.x is included with the
-@uref{http://www.cygwin.com/,,Cygwin environment}.
-
-Current (as of early 2001) snapshots of GCC will build under Cygwin
-without modification.
-
-@html
-
-
-@end html
-@heading @anchor{os2}OS/2
-
-GCC does not currently support OS/2. However, Andrew Zabolotny has been
-working on a generic OS/2 port with pgcc. The current code can be found
-at @uref{http://www.goof.com/pcg/os2/,,http://www.goof.com/pcg/os2/}.
-
-An older copy of GCC 2.8.1 is included with the EMX tools available at
-@uref{ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/,,
-ftp://ftp.leo.org/pub/comp/os/os2/leo/devtools/emx+gcc/}.
-
-@html
-
-
-@end html
-@heading @anchor{older}Older systems
-
-GCC contains support files for many older (1980s and early
-1990s) Unix variants. For the most part, support for these systems
-has not been deliberately removed, but it has not been maintained for
-several years and may suffer from bitrot. Support from some systems
-has been removed from GCC 3: fx80, ns32-ns-genix, pyramid, tahoe,
-gmicro, spur; most of these targets had not been updated since GCC
-version 1.
-
-We are planning to remove support for more older systems, starting in
-GCC 3.1. Each release will have a list of ``obsoleted'' systems.
-Support for these systems is still present in that release, but
-@command{configure} will fail unless the @option{--enable-obsolete}
-option is given. Unless a maintainer steps forward, support for
-these systems will be removed from the next release of GCC@.
-
-Support for older systems as targets for cross-compilation is less
-problematic than support for them as hosts for GCC; if an enthusiast
-wishes to make such a target work again (including resurrecting any
-of the targets that never worked with GCC 2, starting from the last
-CVS version before they were removed), patches
-@uref{../contribute.html,,following the usual requirements}
-would be likely to be accepted, since they should not affect the
-support for more modern targets.
-
-Support for old systems as hosts for GCC can cause problems if the
-workarounds for compiler, library and operating system bugs affect the
-cleanliness or maintainability of the rest of GCC@. In some cases, to
-bring GCC up on such a system, if still possible with current GCC, may
-require first installing an old version of GCC which did work on that
-system, and using it to compile a more recent GCC, to avoid bugs in
-the vendor compiler. Old releases of GCC 1 and GCC 2 are available in
-the @file{old-releases} directory on the
-@uref{../mirrors.html,,GCC mirror sites}. Header bugs may generally
-be avoided using @command{fixincludes}, but bugs or deficiencies in
-libraries and the operating system may still cause problems.
-
-For some systems, old versions of GNU binutils may also be useful,
-and are available from @file{pub/binutils/old-releases} on
-@uref{http://sources.redhat.com/mirrors.html,,sources.redhat.com mirror sites}.
-
-Some of the information on specific systems above relates to
-such older systems, but much of the information
-about GCC on such systems (which may no longer be applicable to
-current GCC) is to be found in the GCC texinfo manual.
-
-@html
-
-
-@end html
-@heading @anchor{elf_targets}all ELF targets (SVR4, Solaris 2, etc.)
-
-C++ support is significantly better on ELF targets if you use the
-@uref{./configure.html#with-gnu-ld,,GNU linker}; duplicate copies of
-inlines, vtables and template instantiations will be discarded
-automatically.
-
-
-@html
-
-
-
-@end html
-@ifhtml
-@uref{./index.html,,Return to the GCC Installation page}
-@end ifhtml
-@end ifset
-
-@c ***Old documentation******************************************************
-@ifset oldhtml
-@include install-old.texi
-@html
-
-
-
-@end html
-@ifhtml
-@uref{./index.html,,Return to the GCC Installation page}
-@end ifhtml
-@end ifset
-
-@c ***GFDL********************************************************************
-@ifset gfdlhtml
-@include fdl.texi
-@html
-
-
-
-@end html
-@ifhtml
-@uref{./index.html,,Return to the GCC Installation page}
-@end ifhtml
-@end ifset
-
-@c ***************************************************************************
-@c Part 6 The End of the Document
-@ifinfo
-@comment node-name, next, previous, up
-@node Concept Index, , GNU Free Documentation License, Top
-@end ifinfo
-
-@ifinfo
-@unnumbered Concept Index
-
-@printindex cp
-
-@contents
-@end ifinfo
-@bye
diff --git a/contrib/gcc/doc/install.texi2html b/contrib/gcc/doc/install.texi2html
deleted file mode 100755
index 3917e2af33e89..0000000000000
--- a/contrib/gcc/doc/install.texi2html
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-#
-# Convert the GCC install documentation from texinfo format to HTML.
-#
-# $SOURCEDIR and $DESTDIR, resp., refer to the directory containing
-# the texinfo source and the directory to put the HTML version in.
-#
-# (C) 2001 Free Software Foundation
-# Originally by Gerald Pfeifer , June 2001.
-#
-# This script is Free Software, and it can be copied, distributed and
-# modified as defined in the GNU General Public License. A copy of
-# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
-
-SOURCEDIR=${SOURCEDIR-.}
-DESTDIR=${DESTDIR-HTML}
-
-MAKEINFO=${MAKEINFO-makeinfo}
-
-if [ ! -d $DESTDIR ]; then
- mkdir -p $DESTDIR
-fi
-
-for x in index.html specific.html download.html configure.html \
- build.html test.html finalinstall.html binaries.html old.html \
- gfdl.html
-do
- define=`echo $x | sed -e 's/\.//g'`
- echo "define = $define"
- $MAKEINFO -I $SOURCEDIR -I $SOURCEDIR/include $SOURCEDIR/install.texi --html --no-split -D$define -o$DESTDIR/$x
-done
diff --git a/contrib/gcc/f/g77.1 b/contrib/gcc/f/g77.1
deleted file mode 100644
index 3f20af9fffd47..0000000000000
--- a/contrib/gcc/f/g77.1
+++ /dev/null
@@ -1,365 +0,0 @@
-.\" Copyright (c) 1995-1997 Free Software Foundation -*-Text-*-
-.\" See section COPYING for conditions for redistribution
-.\" FIXME: no info here on predefines. Should there be? extra for F77...
-.TH G77 1 "1999-02-14" "GNU Tools" "GNU Tools"
-.de BP
-.sp
-.ti \-.2i
-\(**
-..
-.SH NAME
-g77 \- GNU project Fortran Compiler (v0.5.24)
-.SH SYNOPSIS
-.RB g77 " [" \c
-.IR option " | " "filename " ].\|.\|.
-.SH WARNING
-The information in this man page is an extract from the full
-documentation of the GNU Fortran compiler (version 0.5.24),
-and is limited to the meaning of some of the options.
-.PP
-This man page is not up to date, since no volunteers want to
-maintain it. If you find a discrepancy between the man page and the
-software, please check the Info file, which is the authoritative
-documentation.
-.\" .PP
-.\" The version of GNU Fortran documented by the Info file is 0.5.24,
-.\" which includes substantial improvements and changes since 0.5.24,
-.\" the version documented in this man page.
-.PP
-If we find that the things in this man page that are out of date cause
-significant confusion or complaints, we will stop distributing the man
-page. The alternative, updating the man page when we update the Info
-file, is impractical because the rest of the work of maintaining GNU Fortran
-leaves us no time for that. The GNU project regards man pages as
-obsolete and should not let them take time away from other things.
-.PP
-For complete and current documentation, refer to the Info file `\|\c
-.B g77\c
-\&\|' or the manual
-.I
-Using and Porting GNU Fortran (for version 0.5.24)\c
-\&. Both are made from the Texinfo source file
-.BR g77.texi .
-.PP
-If your system has the `\|\c
-.B info\c
-\&\|' command installed, the command `\|\c
-.B info g77\c
-\&\|' should work, unless
-.B g77
-has not been properly installed.
-If your system lacks `\|\c
-.B info\c
-\&\|', or you wish to avoid using it for now,
-the command `\|\c
-.B more /usr/info/g77.info*\c
-\&\|' should work, unless
-.B g77
-has not been properly installed.
-.PP
-If
-.B g77
-has not been properly installed, so that you
-cannot easily access the Info file for it,
-ask your system administrator, or the installer
-of
-.B g77
-(if you know who that is) to fix the problem.
-.SH DESCRIPTION
-The C and F77 compilers are integrated;
-.B g77
-is a program to call
-.B gcc
-with options to recognize programs written in Fortran (ANSI FORTRAN 77,
-also called F77).
-.B gcc
-processes input files
-through one or more of four stages: preprocessing, compilation,
-assembly, and linking. This man page contains full descriptions for
-.I only
-F77-specific aspects of the compiler, though it also contains
-summaries of some general-purpose options. For a fuller explanation
-of the compiler, see
-.BR gcc ( 1 ).
-
-For complete documentation on GNU Fortran, type `\|\c
-.B info g77\c
-\&\|'.
-
-F77 source files use the suffix `\|\c
-.B .f\c
-\&\|', `\|\c
-.B .for\c
-\&\|', or `\|\c
-.B .FOR\c
-\&\|'; F77 files to be preprocessed by
-.BR cpp ( 1 )
-use the suffix `\|\c
-.B .F\c
-\&\|', `\|\c
-.B .fpp\c
-\&\|', or `\|\c
-.B .FPP\c
-\&\|'; Ratfor source files use the suffix `\|\c
-.B .r\c
-\&\|' (though
-.B ratfor
-itself is not supplied as part of
-.B g77\c
-\&).
-.SH OPTIONS
-There are many command-line options, including options to control
-details of optimization, warnings, and code generation, which are
-common to both
-.B gcc
-and
-.B g77\c
-\&. For full information on all options, see
-.BR gcc ( 1 ).
-
-Options must be separate: `\|\c
-.B \-dr\c
-\&\|' is quite different from `\|\c
-.B \-d \-r
-\&\|'.
-
-Most `\|\c
-.B \-f\c
-\&\|' and `\|\c
-.B \-W\c
-\&\|' options have two contrary forms:
-.BI \-f name
-and
-.BI \-fno\- name\c
-\& (or
-.BI \-W name
-and
-.BI \-Wno\- name\c
-\&). Only the non-default forms are shown here.
-
-.TP
-.B \-c
-Compile or assemble the source files, but do not link. The compiler
-output is an object file corresponding to each source file.
-.TP
-.BI \-D macro
-Define macro \c
-.I macro\c
-\& with the string `\|\c
-.B 1\c
-\&\|' as its definition.
-.TP
-.BI \-D macro = defn
-Define macro \c
-.I macro\c
-\& as \c
-.I defn\c
-\&.
-.TP
-.B \-E
-Stop after the preprocessing stage; do not run the compiler proper. The
-output is preprocessed source code, which is sent to the
-standard output.
-.TP
-.B \-g
-Produce debugging information in the operating system's native format
-(for DBX or SDB or DWARF). GDB also can work with this debugging
-information. On most systems that use DBX format, `\|\c
-.B \-g\c
-\&\|' enables use
-of extra debugging information that only GDB can use.
-
-Unlike most other Fortran compilers, GNU Fortran allows you to use `\|\c
-.B \-g\c
-\&\|' with
-`\|\c
-.B \-O\c
-\&\|'. The shortcuts taken by optimized code may occasionally
-produce surprising results: some variables you declared may not exist
-at all; flow of control may briefly move where you did not expect it;
-some statements may not be executed because they compute constant
-results or their values were already at hand; some statements may
-execute in different places because they were moved out of loops.
-
-Nevertheless it proves possible to debug optimized output. This makes
-it reasonable to use the optimizer for programs that might have bugs.
-.TP
-.BI "\-I" "dir"\c
-\&
-Append directory \c
-.I dir\c
-\& to the list of directories searched for include files.
-.TP
-.BI "\-L" "dir"\c
-\&
-Add directory \c
-.I dir\c
-\& to the list of directories to be searched
-for `\|\c
-.B \-l\c
-\&\|'.
-.TP
-.BI \-l library\c
-\&
-Use the library named \c
-.I library\c
-\& when linking.
-.TP
-.B \-nostdinc
-Do not search the standard system directories for header files. Only
-the directories you have specified with
-.B \-I
-options (and the current directory, if appropriate) are searched.
-.TP
-.B \-O
-Optimize. Optimizing compilation takes somewhat more time, and a lot
-more memory for a large function. See the GCC documentation for
-further optimisation options. Loop unrolling, in particular, may be
-worth investigating for typical numerical Fortran programs.
-.TP
-.BI "\-o " file\c
-\&
-Place output in file \c
-.I file\c
-\&.
-.TP
-.B \-S
-Stop after the stage of compilation proper; do not assemble. The output
-is an assembler code file for each non-assembler input
-file specified.
-.TP
-.BI \-U macro
-Undefine macro \c
-.I macro\c
-\&.
-.TP
-.B \-v
-Print (on standard error output) the commands executed to run the
-stages of compilation. Also print the version number of the compiler
-driver program and of the preprocessor and the compiler proper. The
-version numbers of g77 itself and the GCC distribution on which it is
-based are distinct.
-.TP
-.B \-Wall
-Issue warnings for conditions which pertain to usage that we recommend
-avoiding and that we believe is easy to avoid, even in conjunction
-with macros.
-.PP
-
-.SH FILES
-.ta \w'LIBDIR/g77\-include 'u
-file.h C header (preprocessor) file
-.br
-file.f Fortran source file
-.br
-file.for Fortran source file
-.br
-file.FOR Fortran source file
-.br
-file.F preprocessed Fortran source file
-.br
-file.fpp preprocessed Fortran source file
-.br
-file.FPP preprocessed Fortran source file
-.br
-file.r Ratfor source file (ratfor not included)
-.br
-file.s assembly language file
-.br
-file.o object file
-.br
-a.out link edited output
-.br
-\fITMPDIR\fR/cc\(** temporary files
-.br
-\fILIBDIR\fR/cpp preprocessor
-.br
-\fILIBDIR\fR/f771 compiler
-.br
-\fILIBDIR\fR/libg2c.a Fortran run-time library
-.br
-\fILIBDIR\fR/libgcc.a GCC subroutine library
-.br
-/lib/crt[01n].o start-up routine
-.br
-/lib/libc.a standard C library, see
-.IR intro (3)
-.br
-/usr/include standard directory for
-.B #include
-files
-.br
-\fILIBDIR\fR/include standard gcc directory for
-.B #include
-.br
- files.
-.sp
-.I LIBDIR
-is usually
-.B /usr/local/lib/\c
-.IR machine / version .
-.sp
-.I TMPDIR
-comes from the environment variable
-.B TMPDIR
-(default
-.B /usr/tmp
-if available, else
-.B /tmp\c
-\&).
-.SH "SEE ALSO"
-gcc(1), cpp(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1).
-.br
-.RB "`\|" g77 "\|', `\|" gcc "\|', `\|" cpp "\|',"
-.RB "`\|" as "\|', `\|" ld "\|',"
-and
-.RB "`\|" gdb "\|'"
-entries in
-.B info\c
-\&.
-.br
-.I
-Using and Porting GNU Fortran (for version 0.5.24)\c
-, James Craig Burley;
-.I
-Using and Porting GNU CC (for version 2.0)\c
-, Richard M. Stallman;
-.I
-The C Preprocessor\c
-, Richard M. Stallman;
-.I
-Debugging with GDB: the GNU Source-Level Debugger\c
-, Richard M. Stallman and Roland H. Pesch;
-.I
-Using as: the GNU Assembler\c
-, Dean Elsner, Jay Fenlason & friends;
-.I
-gld: the GNU linker\c
-, Steve Chamberlain and Roland Pesch.
-
-.SH BUGS
-For instructions on how to report bugs, type `\|\c
-.B info g77 -n Bugs\c
-\&\|'.
-
-.SH COPYING
-Copyright (c) 1991-1998 Free Software Foundation, Inc.
-.PP
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-.PP
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-.PP
-Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be included in
-translations approved by the Free Software Foundation instead of in
-the original English.
-.SH AUTHORS
-See the GNU CC Manual for the contributors to GNU CC.
-See the GNU Fortran Manual for the contributors to
-GNU Fortran.
diff --git a/contrib/gcc/gcc.1 b/contrib/gcc/gcc.1
deleted file mode 100644
index 74200a1a169e9..0000000000000
--- a/contrib/gcc/gcc.1
+++ /dev/null
@@ -1,4191 +0,0 @@
-.\" Copyright (c) 1991, 1992, 1993, 1994 Free Software Foundation -*-Text-*-
-.\" See section COPYING for conditions for redistribution
-.\"
-.\" Set up \*(lq, \*(rq if -man hasn't already set it up.
-.if @@\*(lq@ \{\
-. ds lq "
-. if t .ds lq ``
-. if !@@\(lq@ .ds lq "\(lq
-.\}
-.if @@\*(rq@ \{\
-. ds rq "
-. if t .ds rq ''
-. if !@@\(rq@ .ds rq "\(rq
-.\}
-.de Id
-.ds Rv \\$3
-.ds Dt \\$4
-..
-.de Sp
-.if n .sp
-.if t .sp 0.4
-..
-.Id $Id: gcc.1,v 1.9 1998/12/16 20:55:57 law Exp $
-.TH GCC 1 "\*(Dt" "GNU Tools" "GNU Tools"
-.SH NAME
-gcc, g++ \- GNU project C and C++ Compiler (gcc-2.95)
-.SH SYNOPSIS
-.B gcc
-.RI "[ " option " | " filename " ].\|.\|."
-.br
-.B g++
-.RI "[ " option " | " filename " ].\|.\|."
-.SH WARNING
-The information in this man page is an extract from the full
-documentation of the GNU C compiler, and is limited to the meaning of
-the options.
-.PP
-This man page is not kept up to date except when volunteers want to
-maintain it. If you find a discrepancy between the man page and the
-software, please check the Info file, which is the authoritative
-documentation.
-.PP
-If we find that the things in this man page that are out of date cause
-significant confusion or complaints, we will stop distributing the man
-page. The alternative, updating the man page when we update the Info
-file, is impossible because the rest of the work of maintaining GNU CC
-leaves us no time for that. The GNU project regards man pages as
-obsolete and should not let them take time away from other things.
-.PP
-For complete and current documentation, refer to the Info file `\|\c
-.B gcc\c
-\&\|' or the manual
-.I
-Using and Porting GNU CC (for version 2.0)\c
-\&. Both are made from the Texinfo source file
-.BR gcc.texinfo .
-.SH DESCRIPTION
-The C and C++ compilers are integrated. Both process input files
-through one or more of four stages: preprocessing, compilation,
-assembly, and linking. Source filename suffixes identify the source
-language, but which name you use for the compiler governs default
-assumptions:
-.TP
-.B gcc
-assumes preprocessed (\c
-.B .i\c
-\&) files are C and assumes C style linking.
-.TP
-.B g++
-assumes preprocessed (\c
-.B .i\c
-\&) files are C++ and assumes C++ style linking.
-.PP
-Suffixes of source file names indicate the language and kind of
-processing to be done:
-.Sp
-.nf
-.ta \w'\fB.cxx\fP 'u
-\&\fB.c\fP C source; preprocess, compile, assemble
-\&\fB.C\fP C++ source; preprocess, compile, assemble
-\&\fB.cc\fP C++ source; preprocess, compile, assemble
-\&\fB.cxx\fP C++ source; preprocess, compile, assemble
-\&\fB.m\fP Objective-C source; preprocess, compile, assemble
-\&\fB.i\fP preprocessed C; compile, assemble
-\&\fB.ii\fP preprocessed C++; compile, assemble
-\&\fB.s\fP Assembler source; assemble
-\&\fB.S\fP Assembler source; preprocess, assemble
-\&\fB.h\fP Preprocessor file; not usually named on command line
-.Sp
-.fi
-Files with other suffixes are passed to the linker. Common cases include:
-.Sp
-.nf
-\&\fB.o\fP Object file
-\&\fB.a\fP Archive file
-.br
-.fi
-.Sp
-Linking is always the last stage unless you use one of the
-.BR \-c ,
-.BR \-S ,
-or
-.B \-E
-options to avoid it (or unless compilation errors stop the whole
-process). For the link stage, all
-.B .o
-files corresponding to source files,
-.B \-l
-libraries, unrecognized filenames (including named
-.B .o
-object files and
-.B .a
-archives)
-are passed to the linker in command-line order.
-.SH OPTIONS
-Options must be separate: `\|\c
-.B \-dr\c
-\&\|' is quite different from `\|\c
-.B \-d \-r
-\&\|'.
-.PP
-Most `\|\c
-.B \-f\c
-\&\|' and `\|\c
-.B \-W\c
-\&\|' options have two contrary forms:
-.BI \-f name
-and
-.BI \-fno\- name\c
-\& (or
-.BI \-W name
-and
-.BI \-Wno\- name\c
-\&). Only the non-default forms are shown here.
-.PP
-Here is a summary of all the options, grouped by type. Explanations are
-in the following sections.
-.hy 0
-.na
-.TP
-.B Overall Options
-.br
-\-c
-\-S
-\-E
-.RI "\-o " file
-\-pipe
-\-v
-.RI "\-x " language
-.TP
-.B Language Options
-\-ansi
-\-fall\-virtual
-\-fcond\-mismatch
-\-fdollars\-in\-identifiers
-\-fenum\-int\-equiv
-\-fexternal\-templates
-\-fno\-asm
-\-fno\-builtin
-\-fhosted
-\-fno\-hosted
-\-ffreestanding
-\-fno\-freestanding
-\-fno\-strict\-prototype
-\-fsigned\-bitfields
-\-fsigned\-char
-\-fthis\-is\-variable
-\-funsigned\-bitfields
-\-funsigned\-char
-\-fwritable\-strings
-\-traditional
-\-traditional\-cpp
-\-trigraphs
-.TP
-.B Warning Options
-\-fsyntax\-only
-\-pedantic
-\-pedantic\-errors
-\-w
-\-W
-\-Wall
-\-Waggregate\-return
-\-Wcast\-align
-\-Wcast\-qual
-\-Wchar\-subscript
-\-Wcomment
-\-Wconversion
-\-Wenum\-clash
-\-Werror
-\-Wformat
-.RI \-Wid\-clash\- len
-\-Wimplicit
-\-Wimplicit\-int
-\-Wimplicit\-function\-declaration
-\-Winline
-\-Wlong\-long
-\-Wmain
-\-Wmissing\-prototypes
-\-Wmissing\-declarations
-\-Wnested\-externs
-\-Wno\-import
-\-Wparentheses
-\-Wpointer\-arith
-\-Wredundant\-decls
-\-Wreturn\-type
-\-Wshadow
-\-Wstrict\-prototypes
-\-Wswitch
-\-Wtemplate\-debugging
-\-Wtraditional
-\-Wtrigraphs
-\-Wuninitialized
-\-Wunused
-\-Wwrite\-strings
-.TP
-.B Debugging Options
-\-a
-.RI \-d letters
-\-fpretend\-float
-\-g
-.RI \-g level
-\-gcoff
-\-gxcoff
-\-gxcoff+
-\-gdwarf
-\-gdwarf+
-\-gstabs
-\-gstabs+
-\-ggdb
-\-p
-\-pg
-\-save\-temps
-.RI \-print\-file\-name= library
-\-print\-libgcc\-file\-name
-.RI \-print\-prog\-name= program
-.TP
-.B Optimization Options
-\-fcaller\-saves
-\-fcse\-follow\-jumps
-\-fcse\-skip\-blocks
-\-fdelayed\-branch
-\-felide\-constructors
-\-fexpensive\-optimizations
-\-ffast\-math
-\-ffloat\-store
-\-fforce\-addr
-\-fforce\-mem
-\-finline\-functions
-\-fkeep\-inline\-functions
-\-fmemoize\-lookups
-\-fno\-default\-inline
-\-fno\-defer\-pop
-\-fno\-function\-cse
-\-fno\-inline
-\-fno\-peephole
-\-fomit\-frame\-pointer
-\-frerun\-cse\-after\-loop
-\-fschedule\-insns
-\-fschedule\-insns2
-\-fstrength\-reduce
-\-fthread\-jumps
-\-funroll\-all\-loops
-\-funroll\-loops
-\-O
-\-O2
-\-O3
-.TP
-.B Preprocessor Options
-.RI \-A assertion
-\-C
-\-dD
-\-dM
-\-dN
-.RI \-D macro [\|= defn \|]
-\-E
-\-H
-.RI "\-idirafter " dir
-.RI "\-include " file
-.RI "\-imacros " file
-.RI "\-iprefix " file
-.RI "\-iwithprefix " dir
-\-M
-\-MD
-\-MM
-\-MMD
-\-nostdinc
-\-P
-.RI \-U macro
-\-undef
-.TP
-.B Assembler Option
-.RI \-Wa, option
-.TP
-.B Linker Options
-.RI \-l library
-\-nostartfiles
-\-nostdlib
-\-static
-\-shared
-\-symbolic
-.RI "\-Xlinker\ " option
-.RI \-Wl, option
-.RI "\-u " symbol
-.TP
-.B Directory Options
-.RI \-B prefix
-.RI \-I dir
-\-I\-
-.RI \-L dir
-.TP
-.B Target Options
-.RI "\-b " machine
-.RI "\-V " version
-.TP
-.B Configuration Dependent Options
-.I M680x0\ Options
-.br
-\-m68000
-\-m68020
-\-m68020\-40
-\-m68030
-\-m68040
-\-m68881
-\-mbitfield
-\-mc68000
-\-mc68020
-\-mfpa
-\-mnobitfield
-\-mrtd
-\-mshort
-\-msoft\-float
-.Sp
-.I VAX Options
-.br
-\-mg
-\-mgnu
-\-munix
-.Sp
-.I SPARC Options
-.br
-\-mepilogue
-\-mfpu
-\-mhard\-float
-\-mno\-fpu
-\-mno\-epilogue
-\-msoft\-float
-\-msparclite
-\-mv8
-\-msupersparc
-\-mcypress
-.Sp
-.I Convex Options
-.br
-\-margcount
-\-mc1
-\-mc2
-\-mnoargcount
-.Sp
-.I AMD29K Options
-.br
-\-m29000
-\-m29050
-\-mbw
-\-mdw
-\-mkernel\-registers
-\-mlarge
-\-mnbw
-\-mnodw
-\-msmall
-\-mstack\-check
-\-muser\-registers
-.Sp
-.I M88K Options
-.br
-\-m88000
-\-m88100
-\-m88110
-\-mbig\-pic
-\-mcheck\-zero\-division
-\-mhandle\-large\-shift
-\-midentify\-revision
-\-mno\-check\-zero\-division
-\-mno\-ocs\-debug\-info
-\-mno\-ocs\-frame\-position
-\-mno\-optimize\-arg\-area
-\-mno\-serialize\-volatile
-\-mno\-underscores
-\-mocs\-debug\-info
-\-mocs\-frame\-position
-\-moptimize\-arg\-area
-\-mserialize\-volatile
-.RI \-mshort\-data\- num
-\-msvr3
-\-msvr4
-\-mtrap\-large\-shift
-\-muse\-div\-instruction
-\-mversion\-03.00
-\-mwarn\-passed\-structs
-.Sp
-.I RS6000 Options
-.br
-\-mfp\-in\-toc
-\-mno\-fop\-in\-toc
-.Sp
-.I RT Options
-.br
-\-mcall\-lib\-mul
-\-mfp\-arg\-in\-fpregs
-\-mfp\-arg\-in\-gregs
-\-mfull\-fp\-blocks
-\-mhc\-struct\-return
-\-min\-line\-mul
-\-mminimum\-fp\-blocks
-\-mnohc\-struct\-return
-.Sp
-.I MIPS Options
-.br
-\-mcpu=\fIcpu type\fP
-\-mips2
-\-mips3
-\-mint64
-\-mlong64
-\-mlonglong128
-\-mmips\-as
-\-mgas
-\-mrnames
-\-mno\-rnames
-\-mgpopt
-\-mno\-gpopt
-\-mstats
-\-mno\-stats
-\-mmemcpy
-\-mno\-memcpy
-\-mno\-mips\-tfile
-\-mmips\-tfile
-\-msoft\-float
-\-mhard\-float
-\-mabicalls
-\-mno\-abicalls
-\-mhalf\-pic
-\-mno\-half\-pic
-\-G \fInum\fP
-\-nocpp
-.Sp
-.I i386 Options
-.br
-\-m486
-\-mno\-486
-\-msoft\-float
-\-mno\-fp\-ret\-in\-387
-.Sp
-.I HPPA Options
-.br
-\-mpa\-risc\-1\-0
-\-mpa\-risc\-1\-1
-\-mkernel
-\-mshared\-libs
-\-mno\-shared\-libs
-\-mlong\-calls
-\-mdisable\-fpregs
-\-mdisable\-indexing
-\-mtrailing\-colon
-.Sp
-.I i960 Options
-.br
-\-m\fIcpu-type\fP
-\-mnumerics
-\-msoft\-float
-\-mleaf\-procedures
-\-mno\-leaf\-procedures
-\-mtail\-call
-\-mno\-tail\-call
-\-mcomplex\-addr
-\-mno\-complex\-addr
-\-mcode\-align
-\-mno\-code\-align
-\-mic\-compat
-\-mic2.0\-compat
-\-mic3.0\-compat
-\-masm\-compat
-\-mintel\-asm
-\-mstrict\-align
-\-mno\-strict\-align
-\-mold\-align
-\-mno\-old\-align
-.Sp
-.I DEC Alpha Options
-.br
-\-mfp\-regs
-\-mno\-fp\-regs
-\-mno\-soft\-float
-\-msoft\-float
-.Sp
-.I System V Options
-.br
-\-G
-\-Qy
-\-Qn
-.RI \-YP, paths
-.RI \-Ym, dir
-.TP
-.B Code Generation Options
-.RI \-fcall\-saved\- reg
-.RI \-fcall\-used\- reg
-.RI \-ffixed\- reg
-\-finhibit\-size\-directive
-\-fnonnull\-objects
-\-fno\-common
-\-fno\-ident
-\-fno\-gnu\-linker
-\-fpcc\-struct\-return
-\-fpic
-\-fPIC
-\-freg\-struct\-return
-\-fshared\-data
-\-fshort\-enums
-\-fshort\-double
-\-fvolatile
-\-fvolatile\-global
-\-fverbose\-asm
-.ad b
-.hy 1
-.SH OVERALL OPTIONS
-.TP
-.BI "\-x " "language"
-Specify explicitly the
-.I language\c
-\& for the following input files (rather than choosing a default based
-on the file name suffix) . This option applies to all following input
-files until the next `\|\c
-.B \-x\c
-\&\|' option. Possible values of \c
-.I language\c
-\& are
-`\|\c
-.B c\c
-\&\|', `\|\c
-.B objective\-c\c
-\&\|', `\|\c
-.B c\-header\c
-\&\|', `\|\c
-.B c++\c
-\&\|',
-`\|\c
-.B cpp\-output\c
-\&\|', `\|\c
-.B assembler\c
-\&\|', and `\|\c
-.B assembler\-with\-cpp\c
-\&\|'.
-.TP
-.B \-x none
-Turn off any specification of a language, so that subsequent files are
-handled according to their file name suffixes (as they are if `\|\c
-.B \-x\c
-\&\|'
-has not been used at all).
-.PP
-If you want only some of the four stages (preprocess, compile,
-assemble, link), you can use
-`\|\c
-.B \-x\c
-\&\|' (or filename suffixes) to tell \c
-.B gcc\c
-\& where to start, and
-one of the options `\|\c
-.B \-c\c
-\&\|', `\|\c
-.B \-S\c
-\&\|', or `\|\c
-.B \-E\c
-\&\|' to say where
-.B gcc\c
-\& is to stop. Note that some combinations (for example,
-`\|\c
-.B \-x cpp\-output \-E\c
-\&\|') instruct \c
-.B gcc\c
-\& to do nothing at all.
-.TP
-.B \-c
-Compile or assemble the source files, but do not link. The compiler
-output is an object file corresponding to each source file.
-.Sp
-By default, GCC makes the object file name for a source file by replacing
-the suffix `\|\c
-.B .c\c
-\&\|', `\|\c
-.B .i\c
-\&\|', `\|\c
-.B .s\c
-\&\|', etc., with `\|\c
-.B .o\c
-\&\|'. Use
-.B \-o\c
-\& to select another name.
-.Sp
-GCC ignores any unrecognized input files (those that do not require
-compilation or assembly) with the
-.B \-c
-option.
-.TP
-.B \-S
-Stop after the stage of compilation proper; do not assemble. The output
-is an assembler code file for each non-assembler input
-file specified.
-.Sp
-By default, GCC makes the assembler file name for a source file by
-replacing the suffix `\|\c
-.B .c\c
-\&\|', `\|\c
-.B .i\c
-\&\|', etc., with `\|\c
-.B .s\c
-\&\|'. Use
-.B \-o\c
-\& to select another name.
-.Sp
-GCC ignores any input files that don't require compilation.
-.TP
-.B \-E
-Stop after the preprocessing stage; do not run the compiler proper. The
-output is preprocessed source code, which is sent to the
-standard output.
-.Sp
-GCC ignores input files which don't require preprocessing.
-.TP
-.BI "\-o " file
-Place output in file \c
-.I file\c
-\&. This applies regardless to whatever
-sort of output GCC is producing, whether it be an executable file,
-an object file, an assembler file or preprocessed C code.
-.Sp
-Since only one output file can be specified, it does not make sense to
-use `\|\c
-.B \-o\c
-\&\|' when compiling more than one input file, unless you are
-producing an executable file as output.
-.Sp
-If you do not specify `\|\c
-.B \-o\c
-\&\|', the default is to put an executable file
-in `\|\c
-.B a.out\c
-\&\|', the object file for `\|\c
-.I source\c
-.B \&.\c
-.I suffix\c
-\&\c
-\&\|' in
-`\|\c
-.I source\c
-.B \&.o\c
-\&\|', its assembler file in `\|\c
-.I source\c
-.B \&.s\c
-\&\|', and
-all preprocessed C source on standard output.
-.TP
-.B \-v
-Print (on standard error output) the commands executed to run the stages
-of compilation. Also print the version number of the compiler driver
-program and of the preprocessor and the compiler proper.
-.TP
-.B \-pipe
-Use pipes rather than temporary files for communication between the
-various stages of compilation. This fails to work on some systems where
-the assembler cannot read from a pipe; but the GNU assembler has
-no trouble.
-.PP
-.SH LANGUAGE OPTIONS
-The following options control the dialect of C that the compiler
-accepts:
-.TP
-.B \-ansi
-Support all ANSI standard C programs.
-.Sp
-This turns off certain features of GNU C that are incompatible with
-ANSI C, such as the \c
-.B asm\c
-\&, \c
-.B inline\c
-\& and \c
-.B typeof
-keywords, and predefined macros such as \c
-.B unix\c
-\& and \c
-.B vax
-that identify the type of system you are using. It also enables the
-undesirable and rarely used ANSI trigraph feature, and disallows `\|\c
-.B $\c
-\&\|' as part of identifiers.
-.Sp
-The alternate keywords \c
-.B _\|_asm_\|_\c
-\&, \c
-.B _\|_extension_\|_\c
-\&,
-.B _\|_inline_\|_\c
-\& and \c
-.B _\|_typeof_\|_\c
-\& continue to work despite
-`\|\c
-.B \-ansi\c
-\&\|'. You would not want to use them in an ANSI C program, of
-course, but it is useful to put them in header files that might be included
-in compilations done with `\|\c
-.B \-ansi\c
-\&\|'. Alternate predefined macros
-such as \c
-.B _\|_unix_\|_\c
-\& and \c
-.B _\|_vax_\|_\c
-\& are also available, with or
-without `\|\c
-.B \-ansi\c
-\&\|'.
-.Sp
-The `\|\c
-.B \-ansi\c
-\&\|' option does not cause non-ANSI programs to be
-rejected gratuitously. For that, `\|\c
-.B \-pedantic\c
-\&\|' is required in
-addition to `\|\c
-.B \-ansi\c
-\&\|'.
-.Sp
-The preprocessor predefines a macro \c
-.B _\|_STRICT_ANSI_\|_\c
-\& when you use the `\|\c
-.B \-ansi\c
-\&\|'
-option. Some header files may notice this macro and refrain
-from declaring certain functions or defining certain macros that the
-ANSI standard doesn't call for; this is to avoid interfering with any
-programs that might use these names for other things.
-.TP
-.B \-fno\-asm
-Do not recognize \c
-.B asm\c
-\&, \c
-.B inline\c
-\& or \c
-.B typeof\c
-\& as a
-keyword. These words may then be used as identifiers. You can
-use \c
-.B _\|_asm_\|_\c
-\&, \c
-.B _\|_inline_\|_\c
-\& and \c
-.B _\|_typeof_\|_\c
-\& instead.
-`\|\c
-.B \-ansi\c
-\&\|' implies `\|\c
-.B \-fno\-asm\c
-\&\|'.
-.TP
-.B \-fno\-builtin
-Don't recognize built-in functions that do not begin with two leading
-underscores. Currently, the functions affected include \c
-.B _exit\c
-\&,
-.B abort\c
-\&, \c
-.B abs\c
-\&, \c
-.B alloca\c
-\&, \c
-.B cos\c
-\&, \c
-.B exit\c
-\&,
-.B fabs\c
-\&, \c
-.B labs\c
-\&, \c
-.B memcmp\c
-\&, \c
-.B memcpy\c
-\&, \c
-.B sin\c
-\&,
-.B sqrt\c
-\&, \c
-.B strcmp\c
-\&, \c
-.B strcpy\c
-\&, and \c
-.B strlen\c
-\&.
-.Sp
-The `\|\c
-.B \-ansi\c
-\&\|' option prevents \c
-.B alloca\c
-\& and \c
-.B _exit\c
-\& from
-being builtin functions.
-.TP
-.B \-fhosted
-Compile for a hosted environment; this implies the `\|\c
-.B \-fbuiltin\c
-\&\|' option, and implies that suspicious declarations of
-.B main\c
-\& should be warned about.
-.TP
-.B \-ffreestanding
-Compile for a freestanding environment; this implies the `\|\c
-.B \-fno-builtin\c
-\&\|' option, and implies that
-.B main\c
-\& has no special requirements.
-.TP
-.B \-fno\-strict\-prototype
-Treat a function declaration with no arguments, such as `\|\c
-.B int foo
-();\c
-\&\|', as C would treat it\(em\&as saying nothing about the number of
-arguments or their types (C++ only). Normally, such a declaration in
-C++ means that the function \c
-.B foo\c
-\& takes no arguments.
-.TP
-.B \-trigraphs
-Support ANSI C trigraphs. The `\|\c
-.B \-ansi\c
-\&\|' option implies `\|\c
-.B \-trigraphs\c
-\&\|'.
-.TP
-.B \-traditional
-Attempt to support some aspects of traditional C compilers.
-For details, see the GNU C Manual; the duplicate list here
-has been deleted so that we won't get complaints when it
-is out of date.
-.Sp
-But one note about C++ programs only (not C). `\|\c
-.B \-traditional\c
-\&\|' has one additional effect for C++: assignment to
-.B this
-is permitted. This is the same as the effect of `\|\c
-.B \-fthis\-is\-variable\c
-\&\|'.
-.TP
-.B \-traditional\-cpp
-Attempt to support some aspects of traditional C preprocessors.
-This includes the items that specifically mention the preprocessor above,
-but none of the other effects of `\|\c
-.B \-traditional\c
-\&\|'.
-.TP
-.B \-fdollars\-in\-identifiers
-Permit the use of `\|\c
-.B $\c
-\&\|' in identifiers (C++ only). You can also use
-`\|\c
-.B \-fno\-dollars\-in\-identifiers\c
-\&\|' to explicitly prohibit use of
-`\|\c
-.B $\c
-\&\|'. (GNU C++ allows `\|\c
-.B $\c
-\&\|' by default on some target systems
-but not others.)
-.TP
-.B \-fenum\-int\-equiv
-Permit implicit conversion of \c
-.B int\c
-\& to enumeration types (C++
-only). Normally GNU C++ allows conversion of \c
-.B enum\c
-\& to \c
-.B int\c
-\&,
-but not the other way around.
-.TP
-.B \-fexternal\-templates
-Produce smaller code for template declarations, by generating only a
-single copy of each template function where it is defined (C++ only).
-To use this option successfully, you must also mark all files that
-use templates with either `\|\c
-.B #pragma implementation\c
-\&\|' (the definition) or
-`\|\c
-.B #pragma interface\c
-\&\|' (declarations).
-
-When your code is compiled with `\|\c
-.B \-fexternal\-templates\c
-\&\|', all
-template instantiations are external. You must arrange for all
-necessary instantiations to appear in the implementation file; you can
-do this with a \c
-.B typedef\c
-\& that references each instantiation needed.
-Conversely, when you compile using the default option
-`\|\c
-.B \-fno\-external\-templates\c
-\&\|', all template instantiations are
-explicitly internal.
-.TP
-.B \-fall\-virtual
-Treat all possible member functions as virtual, implicitly. All
-member functions (except for constructor functions and
-.B new
-or
-.B delete
-member operators) are treated as virtual functions of the class where
-they appear.
-.Sp
-This does not mean that all calls to these member functions will be
-made through the internal table of virtual functions. Under some
-circumstances, the compiler can determine that a call to a given
-virtual function can be made directly; in these cases the calls are
-direct in any case.
-.TP
-.B \-fcond\-mismatch
-Allow conditional expressions with mismatched types in the second and
-third arguments. The value of such an expression is void.
-.TP
-.B \-fthis\-is\-variable
-Permit assignment to \c
-.B this\c
-\& (C++ only). The incorporation of
-user-defined free store management into C++ has made assignment to
-`\|\c
-.B this\c
-\&\|' an anachronism. Therefore, by default it is invalid to
-assign to \c
-.B this\c
-\& within a class member function. However, for
-backwards compatibility, you can make it valid with
-`\|\c
-.B \-fthis-is-variable\c
-\&\|'.
-.TP
-.B \-funsigned\-char
-Let the type \c
-.B char\c
-\& be unsigned, like \c
-.B unsigned char\c
-\&.
-.Sp
-Each kind of machine has a default for what \c
-.B char\c
-\& should
-be. It is either like \c
-.B unsigned char\c
-\& by default or like
-.B signed char\c
-\& by default.
-.Sp
-Ideally, a portable program should always use \c
-.B signed char\c
-\& or
-.B unsigned char\c
-\& when it depends on the signedness of an object.
-But many programs have been written to use plain \c
-.B char\c
-\& and
-expect it to be signed, or expect it to be unsigned, depending on the
-machines they were written for. This option, and its inverse, let you
-make such a program work with the opposite default.
-.Sp
-The type \c
-.B char\c
-\& is always a distinct type from each of
-.B signed char\c
-\& and \c
-.B unsigned char\c
-\&, even though its behavior
-is always just like one of those two.
-.TP
-.B \-fsigned\-char
-Let the type \c
-.B char\c
-\& be signed, like \c
-.B signed char\c
-\&.
-.Sp
-Note that this is equivalent to `\|\c
-.B \-fno\-unsigned\-char\c
-\&\|', which is
-the negative form of `\|\c
-.B \-funsigned\-char\c
-\&\|'. Likewise,
-`\|\c
-.B \-fno\-signed\-char\c
-\&\|' is equivalent to `\|\c
-.B \-funsigned\-char\c
-\&\|'.
-.TP
-.B \-fsigned\-bitfields
-.TP
-.B \-funsigned\-bitfields
-.TP
-.B \-fno\-signed\-bitfields
-.TP
-.B \-fno\-unsigned\-bitfields
-These options control whether a bitfield is
-signed or unsigned, when declared with no explicit `\|\c
-.B signed\c
-\&\|' or `\|\c
-.B unsigned\c
-\&\|' qualifier. By default, such a bitfield is
-signed, because this is consistent: the basic integer types such as
-.B int\c
-\& are signed types.
-.Sp
-However, when you specify `\|\c
-.B \-traditional\c
-\&\|', bitfields are all unsigned
-no matter what.
-.TP
-.B \-fwritable\-strings
-Store string constants in the writable data segment and don't uniquize
-them. This is for compatibility with old programs which assume they
-can write into string constants. `\|\c
-.B \-traditional\c
-\&\|' also has this
-effect.
-.Sp
-Writing into string constants is a very bad idea; \*(lqconstants\*(rq should
-be constant.
-.SH PREPROCESSOR OPTIONS
-These options control the C preprocessor, which is run on each C source
-file before actual compilation.
-.PP
-If you use the `\|\c
-.B \-E\c
-\&\|' option, GCC does nothing except preprocessing.
-Some of these options make sense only together with `\|\c
-.B \-E\c
-\&\|' because
-they cause the preprocessor output to be unsuitable for actual
-compilation.
-.TP
-.BI "\-include " "file"
-Process \c
-.I file\c
-\& as input before processing the regular input file.
-In effect, the contents of \c
-.I file\c
-\& are compiled first. Any `\|\c
-.B \-D\c
-\&\|'
-and `\|\c
-.B \-U\c
-\&\|' options on the command line are always processed before
-`\|\c
-.B \-include \c
-.I file\c
-\&\c
-\&\|', regardless of the order in which they are
-written. All the `\|\c
-.B \-include\c
-\&\|' and `\|\c
-.B \-imacros\c
-\&\|' options are
-processed in the order in which they are written.
-.TP
-.BI "\-imacros " file
-Process \c
-.I file\c
-\& as input, discarding the resulting output, before
-processing the regular input file. Because the output generated from
-.I file\c
-\& is discarded, the only effect of `\|\c
-.B \-imacros \c
-.I file\c
-\&\c
-\&\|' is to
-make the macros defined in \c
-.I file\c
-\& available for use in the main
-input. The preprocessor evaluates any `\|\c
-.B \-D\c
-\&\|' and `\|\c
-.B \-U\c
-\&\|' options
-on the command line before processing `\|\c
-.B \-imacros\c
-.I file\c
-\&\|', regardless of the order in
-which they are written. All the `\|\c
-.B \-include\c
-\&\|' and `\|\c
-.B \-imacros\c
-\&\|'
-options are processed in the order in which they are written.
-.TP
-.BI "\-idirafter " "dir"
-Add the directory \c
-.I dir\c
-\& to the second include path. The directories
-on the second include path are searched when a header file is not found
-in any of the directories in the main include path (the one that
-`\|\c
-.B \-I\c
-\&\|' adds to).
-.TP
-.BI "\-iprefix " "prefix"
-Specify \c
-.I prefix\c
-\& as the prefix for subsequent `\|\c
-.B \-iwithprefix\c
-\&\|'
-options.
-.TP
-.BI "\-iwithprefix " "dir"
-Add a directory to the second include path. The directory's name is
-made by concatenating \c
-.I prefix\c
-\& and \c
-.I dir\c
-\&, where \c
-.I prefix
-was specified previously with `\|\c
-.B \-iprefix\c
-\&\|'.
-.TP
-.B \-nostdinc
-Do not search the standard system directories for header files. Only
-the directories you have specified with `\|\c
-.B \-I\c
-\&\|' options (and the
-current directory, if appropriate) are searched.
-.Sp
-By using both `\|\c
-.B \-nostdinc\c
-\&\|' and `\|\c
-.B \-I\-\c
-\&\|', you can limit the include-file search file to only those
-directories you specify explicitly.
-.TP
-.B \-nostdinc++
-Do not search for header files in the C++\-specific standard directories,
-but do still search the other standard directories.
-(This option is used when building `\|\c
-.B libg++\c
-\&\|'.)
-.TP
-.B \-undef
-Do not predefine any nonstandard macros. (Including architecture flags).
-.TP
-.B \-E
-Run only the C preprocessor. Preprocess all the C source files
-specified and output the results to standard output or to the
-specified output file.
-.TP
-.B \-C
-Tell the preprocessor not to discard comments. Used with the
-`\|\c
-.B \-E\c
-\&\|' option.
-.TP
-.B \-P
-Tell the preprocessor not to generate `\|\c
-.B #line\c
-\&\|' commands.
-Used with the `\|\c
-.B \-E\c
-\&\|' option.
-.TP
-.B \-M\ [ \-MG ]
-Tell the preprocessor to output a rule suitable for \c
-.B make
-describing the dependencies of each object file. For each source file,
-the preprocessor outputs one \c
-.B make\c
-\&-rule whose target is the object
-file name for that source file and whose dependencies are all the files
-`\|\c
-.B #include\c
-\&\|'d in it. This rule may be a single line or may be
-continued with `\|\c
-.B \e\c
-\&\|'-newline if it is long. The list of rules is
-printed on standard output instead of the preprocessed C program.
-.Sp
-`\|\c
-.B \-M\c
-\&\|' implies `\|\c
-.B \-E\c
-\&\|'.
-.Sp
-`\|\c
-.B \-MG\c
-\&\|' says to treat missing header files as generated files and assume \c
-they live in the same directory as the source file. It must be specified \c
-in addition to `\|\c
-.B \-M\c
-\&\|'.
-.TP
-.B \-MM\ [ \-MG ]
-Like `\|\c
-.B \-M\c
-\&\|' but the output mentions only the user header files
-included with `\|\c
-.B #include "\c
-.I file\c
-\&"\c
-\&\|'. System header files
-included with `\|\c
-.B #include <\c
-.I file\c
-\&>\c
-\&\|' are omitted.
-.TP
-.B \-MD
-Like `\|\c
-.B \-M\c
-\&\|' but the dependency information is written to files with
-names made by replacing `\|\c
-.B .o\c
-\&\|' with `\|\c
-.B .d\c
-\&\|' at the end of the
-output file names. This is in addition to compiling the file as
-specified\(em\&`\|\c
-.B \-MD\c
-\&\|' does not inhibit ordinary compilation the way
-`\|\c
-.B \-M\c
-\&\|' does.
-.Sp
-The Mach utility `\|\c
-.B md\c
-\&\|' can be used to merge the `\|\c
-.B .d\c
-\&\|' files
-into a single dependency file suitable for using with the `\|\c
-.B make\c
-\&\|'
-command.
-.TP
-.B \-MMD
-Like `\|\c
-.B \-MD\c
-\&\|' except mention only user header files, not system
-header files.
-.TP
-.B \-H
-Print the name of each header file used, in addition to other normal
-activities.
-.TP
-.BI "\-A" "question" ( answer )
-Assert the answer
-.I answer
-for
-.I question\c
-\&, in case it is tested
-with a preprocessor conditional such as `\|\c
-.BI "#if #" question ( answer )\c
-\&\|'. `\|\c
-.B \-A\-\c
-\&\|' disables the standard
-assertions that normally describe the target machine.
-.TP
-.BI "\-A" "question"\c
-\&(\c
-.I answer\c
-\&)
-Assert the answer \c
-.I answer\c
-\& for \c
-.I question\c
-\&, in case it is tested
-with a preprocessor conditional such as `\|\c
-.B #if
-#\c
-.I question\c
-\&(\c
-.I answer\c
-\&)\c
-\&\|'. `\|\c
-.B \-A-\c
-\&\|' disables the standard
-assertions that normally describe the target machine.
-.TP
-.BI \-D macro
-Define macro \c
-.I macro\c
-\& with the string `\|\c
-.B 1\c
-\&\|' as its definition.
-.TP
-.BI \-D macro = defn
-Define macro \c
-.I macro\c
-\& as \c
-.I defn\c
-\&. All instances of `\|\c
-.B \-D\c
-\&\|' on
-the command line are processed before any `\|\c
-.B \-U\c
-\&\|' options.
-.TP
-.BI \-U macro
-Undefine macro \c
-.I macro\c
-\&. `\|\c
-.B \-U\c
-\&\|' options are evaluated after all `\|\c
-.B \-D\c
-\&\|' options, but before any `\|\c
-.B \-include\c
-\&\|' and `\|\c
-.B \-imacros\c
-\&\|' options.
-.TP
-.B \-dM
-Tell the preprocessor to output only a list of the macro definitions
-that are in effect at the end of preprocessing. Used with the `\|\c
-.B \-E\c
-\&\|'
-option.
-.TP
-.B \-dD
-Tell the preprocessor to pass all macro definitions into the output, in
-their proper sequence in the rest of the output.
-.TP
-.B \-dN
-Like `\|\c
-.B \-dD\c
-\&\|' except that the macro arguments and contents are omitted.
-Only `\|\c
-.B #define \c
-.I name\c
-\&\c
-\&\|' is included in the output.
-.SH ASSEMBLER OPTION
-.TP
-.BI "\-Wa," "option"
-Pass \c
-.I option\c
-\& as an option to the assembler. If \c
-.I option
-contains commas, it is split into multiple options at the commas.
-.SH LINKER OPTIONS
-These options come into play when the compiler links object files into
-an executable output file. They are meaningless if the compiler is
-not doing a link step.
-.TP
-.I object-file-name
-A file name that does not end in a special recognized suffix is
-considered to name an object file or library. (Object files are
-distinguished from libraries by the linker according to the file
-contents.) If GCC does a link step, these object files are used as input
-to the linker.
-.TP
-.BI \-l library
-Use the library named \c
-.I library\c
-\& when linking.
-.Sp
-The linker searches a standard list of directories for the library,
-which is actually a file named `\|\c
-.B lib\c
-.I library\c
-\&.a\c
-\&\|'. The linker
-then uses this file as if it had been specified precisely by name.
-.Sp
-The directories searched include several standard system directories
-plus any that you specify with `\|\c
-.B \-L\c
-\&\|'.
-.Sp
-Normally the files found this way are library files\(em\&archive files
-whose members are object files. The linker handles an archive file by
-scanning through it for members which define symbols that have so far
-been referenced but not defined. However, if the linker finds an
-ordinary object file rather than a library, the object file is linked
-in the usual fashion. The only difference between using an `\|\c
-.B \-l\c
-\&\|' option and specifying a file
-name is that `\|\c
-.B \-l\c
-\&\|' surrounds
-.I library
-with `\|\c
-.B lib\c
-\&\|' and `\|\c
-.B .a\c
-\&\|' and searches several directories.
-.TP
-.B \-lobjc
-You need this special case of the
-.B \-l
-option in order to link an Objective C program.
-.TP
-.B \-nostartfiles
-Do not use the standard system startup files when linking.
-The standard libraries are used normally.
-.TP
-.B \-nostdlib
-Don't use the standard system libraries and startup files when linking.
-Only the files you specify will be passed to the linker.
-.TP
-.B \-static
-On systems that support dynamic linking, this prevents linking with the shared
-libraries. On other systems, this option has no effect.
-.TP
-.B \-shared
-Produce a shared object which can then be linked with other objects to
-form an executable. Only a few systems support this option.
-.TP
-.B \-symbolic
-Bind references to global symbols when building a shared object. Warn
-about any unresolved references (unless overridden by the link editor
-option `\|\c
-.B
-\-Xlinker \-z \-Xlinker defs\c
-\&\|'). Only a few systems support
-this option.
-.TP
-.BI "\-Xlinker " "option"
-Pass \c
-.I option
-as an option to the linker. You can use this to
-supply system-specific linker options which GNU CC does not know how to
-recognize.
-.Sp
-If you want to pass an option that takes an argument, you must use
-`\|\c
-.B \-Xlinker\c
-\&\|' twice, once for the option and once for the argument.
-For example, to pass `\|\c
-.B
-\-assert definitions\c
-\&\|', you must write
-`\|\c
-.B
-\-Xlinker \-assert \-Xlinker definitions\c
-\&\|'. It does not work to write
-`\|\c
-.B
-\-Xlinker "\-assert definitions"\c
-\&\|', because this passes the entire
-string as a single argument, which is not what the linker expects.
-.TP
-.BI "\-Wl," "option"
-Pass \c
-.I option\c
-\& as an option to the linker. If \c
-.I option\c
-\& contains
-commas, it is split into multiple options at the commas.
-.TP
-.BI "\-u " "symbol"
-Pretend the symbol
-.I symbol
-is undefined, to force linking of
-library modules to define it. You can use `\|\c
-.B \-u\c
-\&\|' multiple times with
-different symbols to force loading of additional library modules.
-.SH DIRECTORY OPTIONS
-These options specify directories to search for header files, for
-libraries and for parts of the compiler:
-.TP
-.BI "\-I" "dir"
-Append directory \c
-.I dir\c
-\& to the list of directories searched for include files.
-.TP
-.B \-I\-
-Any directories you specify with `\|\c
-.B \-I\c
-\&\|' options before the `\|\c
-.B \-I\-\c
-\&\|'
-option are searched only for the case of `\|\c
-.B
-#include "\c
-.I file\c
-.B
-\&"\c
-\&\|';
-they are not searched for `\|\c
-.B #include <\c
-.I file\c
-\&>\c
-\&\|'.
-.Sp
-If additional directories are specified with `\|\c
-.B \-I\c
-\&\|' options after
-the `\|\c
-.B \-I\-\c
-\&\|', these directories are searched for all `\|\c
-.B #include\c
-\&\|'
-directives. (Ordinarily \c
-.I all\c
-\& `\|\c
-.B \-I\c
-\&\|' directories are used
-this way.)
-.Sp
-In addition, the `\|\c
-.B \-I\-\c
-\&\|' option inhibits the use of the current
-directory (where the current input file came from) as the first search
-directory for `\|\c
-.B
-#include "\c
-.I file\c
-.B
-\&"\c
-\&\|'. There is no way to
-override this effect of `\|\c
-.B \-I\-\c
-\&\|'. With `\|\c
-.B \-I.\c
-\&\|' you can specify
-searching the directory which was current when the compiler was
-invoked. That is not exactly the same as what the preprocessor does
-by default, but it is often satisfactory.
-.Sp
-`\|\c
-.B \-I\-\c
-\&\|' does not inhibit the use of the standard system directories
-for header files. Thus, `\|\c
-.B \-I\-\c
-\&\|' and `\|\c
-.B \-nostdinc\c
-\&\|' are
-independent.
-.TP
-.BI "\-L" "dir"
-Add directory \c
-.I dir\c
-\& to the list of directories to be searched
-for `\|\c
-.B \-l\c
-\&\|'.
-.TP
-.BI "\-B" "prefix"
-This option specifies where to find the executables, libraries and
-data files of the compiler itself.
-.Sp
-The compiler driver program runs one or more of the subprograms
-`\|\c
-.B cpp\c
-\&\|', `\|\c
-.B cc1\c
-\&\|' (or, for C++, `\|\c
-.B cc1plus\c
-\&\|'), `\|\c
-.B as\c
-\&\|' and `\|\c
-.B ld\c
-\&\|'. It tries
-.I prefix\c
-\& as a prefix for each program it tries to run, both with and
-without `\|\c
-.I machine\c
-.B /\c
-.I version\c
-.B /\c
-\&\|'.
-.Sp
-For each subprogram to be run, the compiler driver first tries the
-`\|\c
-.B \-B\c
-\&\|' prefix, if any. If that name is not found, or if `\|\c
-.B \-B\c
-\&\|'
-was not specified, the driver tries two standard prefixes, which are
-`\|\c
-.B /usr/lib/gcc/\c
-\&\|' and `\|\c
-.B /usr/local/lib/gcc-lib/\c
-\&\|'. If neither of
-those results in a file name that is found, the compiler driver
-searches for the unmodified program
-name, using the directories specified in your
-`\|\c
-.B PATH\c
-\&\|' environment variable.
-.Sp
-The run-time support file `\|\c
-.B libgcc.a\c
-\&\|' is also searched for using the
-`\|\c
-.B \-B\c
-\&\|' prefix, if needed. If it is not found there, the two
-standard prefixes above are tried, and that is all. The file is left
-out of the link if it is not found by those means. Most of the time,
-on most machines, `\|\c
-.B libgcc.a\c
-\&\|' is not actually necessary.
-.Sp
-You can get a similar result from the environment variable
-.B GCC_EXEC_PREFIX\c
-\&; if it is defined, its value is used as a prefix
-in the same way. If both the `\|\c
-.B \-B\c
-\&\|' option and the
-.B GCC_EXEC_PREFIX\c
-\& variable are present, the `\|\c
-.B \-B\c
-\&\|' option is
-used first and the environment variable value second.
-.SH WARNING OPTIONS
-Warnings are diagnostic messages that report constructions which
-are not inherently erroneous but which are risky or suggest there
-may have been an error.
-.Sp
-These options control the amount and kinds of warnings produced by GNU
-CC:
-.TP
-.B \-fsyntax\-only
-Check the code for syntax errors, but don't emit any output.
-.TP
-.B \-w
-Inhibit all warning messages.
-.TP
-.B \-Wno\-import
-Inhibit warning messages about the use of
-.BR #import .
-.TP
-.B \-pedantic
-Issue all the warnings demanded by strict ANSI standard C; reject
-all programs that use forbidden extensions.
-.Sp
-Valid ANSI standard C programs should compile properly with or without
-this option (though a rare few will require `\|\c
-.B \-ansi\c
-\&\|'). However,
-without this option, certain GNU extensions and traditional C features
-are supported as well. With this option, they are rejected. There is
-no reason to \c
-.I use\c
-\& this option; it exists only to satisfy pedants.
-.Sp
-`\|\c
-.B \-pedantic\c
-\&\|' does not cause warning messages for use of the
-alternate keywords whose names begin and end with `\|\c
-.B _\|_\c
-\&\|'. Pedantic
-warnings are also disabled in the expression that follows
-.B _\|_extension_\|_\c
-\&. However, only system header files should use
-these escape routes; application programs should avoid them.
-.TP
-.B \-pedantic\-errors
-Like `\|\c
-.B \-pedantic\c
-\&\|', except that errors are produced rather than
-warnings.
-.TP
-.B \-W
-Print extra warning messages for these events:
-.TP
-\ \ \ \(bu
-A nonvolatile automatic variable might be changed by a call to
-.B longjmp\c
-\&. These warnings are possible only in
-optimizing compilation.
-.Sp
-The compiler sees only the calls to \c
-.B setjmp\c
-\&. It cannot know
-where \c
-.B longjmp\c
-\& will be called; in fact, a signal handler could
-call it at any point in the code. As a result, you may get a warning
-even when there is in fact no problem because \c
-.B longjmp\c
-\& cannot
-in fact be called at the place which would cause a problem.
-.TP
-\ \ \ \(bu
-A function can return either with or without a value. (Falling
-off the end of the function body is considered returning without
-a value.) For example, this function would evoke such a
-warning:
-.Sp
-.nf
-foo (a)
-{
- if (a > 0)
- return a;
-}
-.Sp
-.fi
-Spurious warnings can occur because GNU CC does not realize that
-certain functions (including \c
-.B abort\c
-\& and \c
-.B longjmp\c
-\&)
-will never return.
-.TP
-\ \ \ \(bu
-An expression-statement or the left-hand side of a comma expression
-contains no side effects.
-To suppress the warning, cast the unused expression to void.
-For example, an expression such as `\|\c
-.B x[i,j]\c
-\&\|' will cause a warning,
-but `\|\c
-.B x[(void)i,j]\c
-\&\|' will not.
-.TP
-\ \ \ \(bu
-An unsigned value is compared against zero with `\|\c
-.B >\c
-\&\|' or `\|\c
-.B <=\c
-\&\|'.
-.PP
-.TP
-.B \-Wimplicit-int
-Warn whenever a declaration does not specify a type.
-.TP
-.B \-Wimplicit-function-declaration
-Warn whenever a function is used before being declared.
-.TP
-.B \-Wimplicit
-Same as -Wimplicit-int and -Wimplicit-function-declaration.
-.TP
-.B \-Wmain
-Warn if the
-.B main
-function is declared or defined with a suspicious type.
-Typically, it is a function with external linkage, returning
-.B int\c
-\&, and
-taking zero or two arguments.
-
-.TP
-.B \-Wreturn\-type
-Warn whenever a function is defined with a return-type that defaults
-to \c
-.B int\c
-\&. Also warn about any \c
-.B return\c
-\& statement with no
-return-value in a function whose return-type is not \c
-.B void\c
-\&.
-.TP
-.B \-Wunused
-Warn whenever a local variable is unused aside from its declaration,
-whenever a function is declared static but never defined, and whenever
-a statement computes a result that is explicitly not used.
-.TP
-.B \-Wswitch
-Warn whenever a \c
-.B switch\c
-\& statement has an index of enumeral type
-and lacks a \c
-.B case\c
-\& for one or more of the named codes of that
-enumeration. (The presence of a \c
-.B default\c
-\& label prevents this
-warning.) \c
-.B case\c
-\& labels outside the enumeration range also
-provoke warnings when this option is used.
-.TP
-.B \-Wcomment
-Warn whenever a comment-start sequence `\|\c
-.B /\(**\c
-\&\|' appears in a comment.
-.TP
-.B \-Wtrigraphs
-Warn if any trigraphs are encountered (assuming they are enabled).
-.TP
-.B \-Wformat
-Check calls to \c
-.B printf\c
-\& and \c
-.B scanf\c
-\&, etc., to make sure that
-the arguments supplied have types appropriate to the format string
-specified.
-.TP
-.B \-Wchar\-subscripts
-Warn if an array subscript has type
-.BR char .
-This is a common cause of error, as programmers often forget that this
-type is signed on some machines.
-.TP
-.B \-Wuninitialized
-An automatic variable is used without first being initialized.
-.Sp
-These warnings are possible only in optimizing compilation,
-because they require data flow information that is computed only
-when optimizing. If you don't specify `\|\c
-.B \-O\c
-\&\|', you simply won't
-get these warnings.
-.Sp
-These warnings occur only for variables that are candidates for
-register allocation. Therefore, they do not occur for a variable that
-is declared \c
-.B volatile\c
-\&, or whose address is taken, or whose size
-is other than 1, 2, 4 or 8 bytes. Also, they do not occur for
-structures, unions or arrays, even when they are in registers.
-.Sp
-Note that there may be no warning about a variable that is used only
-to compute a value that itself is never used, because such
-computations may be deleted by data flow analysis before the warnings
-are printed.
-.Sp
-These warnings are made optional because GNU CC is not smart
-enough to see all the reasons why the code might be correct
-despite appearing to have an error. Here is one example of how
-this can happen:
-.Sp
-.nf
-{
- int x;
- switch (y)
- {
- case 1: x = 1;
- break;
- case 2: x = 4;
- break;
- case 3: x = 5;
- }
- foo (x);
-}
-.Sp
-.fi
-If the value of \c
-.B y\c
-\& is always 1, 2 or 3, then \c
-.B x\c
-\& is
-always initialized, but GNU CC doesn't know this. Here is
-another common case:
-.Sp
-.nf
-{
- int save_y;
- if (change_y) save_y = y, y = new_y;
- .\|.\|.
- if (change_y) y = save_y;
-}
-.Sp
-.fi
-This has no bug because \c
-.B save_y\c
-\& is used only if it is set.
-.Sp
-Some spurious warnings can be avoided if you declare as
-.B volatile\c
-\& all the functions you use that never return.
-.TP
-.B \-Wparentheses
-Warn if parentheses are omitted in certain contexts.
-.TP
-.B \-Wtemplate\-debugging
-When using templates in a C++ program, warn if debugging is not yet
-fully available (C++ only).
-.TP
-.B \-Wall
-All of the above `\|\c
-.B \-W\c
-\&\|' options combined. These are all the
-options which pertain to usage that we recommend avoiding and that we
-believe is easy to avoid, even in conjunction with macros.
-.PP
-The remaining `\|\c
-.B \-W.\|.\|.\c
-\&\|' options are not implied by `\|\c
-.B \-Wall\c
-\&\|'
-because they warn about constructions that we consider reasonable to
-use, on occasion, in clean programs.
-.TP
-.B \-Wtraditional
-Warn about certain constructs that behave differently in traditional and
-ANSI C.
-.TP
-\ \ \ \(bu
-Macro arguments occurring within string constants in the macro body.
-These would substitute the argument in traditional C, but are part of
-the constant in ANSI C.
-.TP
-\ \ \ \(bu
-A function declared external in one block and then used after the end of
-the block.
-.TP
-\ \ \ \(bu
-A \c
-.B switch\c
-\& statement has an operand of type \c
-.B long\c
-\&.
-.PP
-.TP
-.B \-Wshadow
-Warn whenever a local variable shadows another local variable.
-.TP
-.BI "\-Wid\-clash\-" "len"
-Warn whenever two distinct identifiers match in the first \c
-.I len
-characters. This may help you prepare a program that will compile
-with certain obsolete, brain-damaged compilers.
-.TP
-.B \-Wpointer\-arith
-Warn about anything that depends on the \*(lqsize of\*(rq a function type or
-of \c
-.B void\c
-\&. GNU C assigns these types a size of 1, for
-convenience in calculations with \c
-.B void \(**\c
-\& pointers and pointers
-to functions.
-.TP
-.B \-Wcast\-qual
-Warn whenever a pointer is cast so as to remove a type qualifier from
-the target type. For example, warn if a \c
-.B const char \(**\c
-\& is cast
-to an ordinary \c
-.B char \(**\c
-\&.
-.TP
-.B \-Wcast\-align
-Warn whenever a pointer is cast such that the required alignment of the
-target is increased. For example, warn if a \c
-.B char \(**\c
-\& is cast to
-an \c
-.B int \(**\c
-\& on machines where integers can only be accessed at
-two- or four-byte boundaries.
-.TP
-.B \-Wwrite\-strings
-Give string constants the type \c
-.B const char[\c
-.I length\c
-.B ]\c
-\& so that
-copying the address of one into a non-\c
-.B const\c
-\& \c
-.B char \(**
-pointer will get a warning. These warnings will help you find at
-compile time code that can try to write into a string constant, but
-only if you have been very careful about using \c
-.B const\c
-\& in
-declarations and prototypes. Otherwise, it will just be a nuisance;
-this is why we did not make `\|\c
-.B \-Wall\c
-\&\|' request these warnings.
-.TP
-.B \-Wconversion
-Warn if a prototype causes a type conversion that is different from what
-would happen to the same argument in the absence of a prototype. This
-includes conversions of fixed point to floating and vice versa, and
-conversions changing the width or signedness of a fixed point argument
-except when the same as the default promotion.
-.TP
-.B \-Waggregate\-return
-Warn if any functions that return structures or unions are defined or
-called. (In languages where you can return an array, this also elicits
-a warning.)
-.TP
-.B \-Wstrict\-prototypes
-Warn if a function is declared or defined without specifying the
-argument types. (An old-style function definition is permitted without
-a warning if preceded by a declaration which specifies the argument
-types.)
-.TP
-.B \-Wmissing\-prototypes
-Warn if a global function is defined without a previous prototype
-declaration. This warning is issued even if the definition itself
-provides a prototype. The aim is to detect global functions that fail
-to be declared in header files.
-.TP
-.B \-Wmissing\-declarations
-Warn if a global function is defined without a previous declaration.
-Do so even if the definition itself provides a prototype.
-Use this option to detect global functions that are not declared in
-header files.
-.TP
-.B \-Wredundant-decls
-Warn if anything is declared more than once in the same scope, even in
-cases where multiple declaration is valid and changes nothing.
-.TP
-.B \-Wnested-externs
-Warn if an \c
-.B extern\c
-\& declaration is encountered within an function.
-.TP
-.B \-Wenum\-clash
-Warn about conversion between different enumeration types (C++ only).
-.TP
-.B \-Wlong-long
-Warn if
-.B long long \c
-type is used. This is default. To inhibit
-the warning messages, use flag `\|\c
-.B \-Wno\-long\-long\c
-\&\|'. Flags `\|\c
-.B \-W\-long\-long\c
-\&\|' and `\|\c
-.B \-Wno\-long\-long\c
-\&\|' are taken into account only when flag `\|\c
-.B \-pedantic\c
-\&\|' is used.
-.TP
-.B \-Woverloaded\-virtual
-(C++ only.)
-In a derived class, the definitions of virtual functions must match
-the type signature of a virtual function declared in the base class.
-Use this option to request warnings when a derived class declares a
-function that may be an erroneous attempt to define a virtual
-function: that is, warn when a function with the same name as a
-virtual function in the base class, but with a type signature that
-doesn't match any virtual functions from the base class.
-.TP
-.B \-Winline
-Warn if a function can not be inlined, and either it was declared as inline,
-or else the
-.B \-finline\-functions
-option was given.
-.TP
-.B \-Werror
-Treat warnings as errors; abort compilation after any warning.
-.SH DEBUGGING OPTIONS
-GNU CC has various special options that are used for debugging
-either your program or GCC:
-.TP
-.B \-g
-Produce debugging information in the operating system's native format
-(stabs, COFF, XCOFF, or DWARF). GDB can work with this debugging
-information.
-.Sp
-On most systems that use stabs format, `\|\c
-.B \-g\c
-\&\|' enables use of extra
-debugging information that only GDB can use; this extra information
-makes debugging work better in GDB but will probably make other debuggers
-crash or
-refuse to read the program. If you want to control for certain whether
-to generate the extra information, use `\|\c
-.B \-gstabs+\c
-\&\|', `\|\c
-.B \-gstabs\c
-\&\|',
-`\|\c
-.B \-gxcoff+\c
-\&\|', `\|\c
-.B \-gxcoff\c
-\&\|', `\|\c
-.B \-gdwarf+\c
-\&\|', or `\|\c
-.B \-gdwarf\c
-\&\|'
-(see below).
-.Sp
-Unlike most other C compilers, GNU CC allows you to use `\|\c
-.B \-g\c
-\&\|' with
-`\|\c
-.B \-O\c
-\&\|'. The shortcuts taken by optimized code may occasionally
-produce surprising results: some variables you declared may not exist
-at all; flow of control may briefly move where you did not expect it;
-some statements may not be executed because they compute constant
-results or their values were already at hand; some statements may
-execute in different places because they were moved out of loops.
-.Sp
-Nevertheless it proves possible to debug optimized output. This makes
-it reasonable to use the optimizer for programs that might have bugs.
-.PP
-The following options are useful when GNU CC is generated with the
-capability for more than one debugging format.
-.TP
-.B \-ggdb
-Produce debugging information in the native format (if that is supported),
-including GDB extensions if at all possible.
-.TP
-.B \-gstabs
-Produce debugging information in stabs format (if that is supported),
-without GDB extensions. This is the format used by DBX on most BSD
-systems.
-.TP
-.B \-gstabs+
-Produce debugging information in stabs format (if that is supported),
-using GNU extensions understood only by the GNU debugger (GDB). The
-use of these extensions is likely to make other debuggers crash or
-refuse to read the program.
-.TP
-.B \-gcoff
-Produce debugging information in COFF format (if that is supported).
-This is the format used by SDB on most System V systems prior to
-System V Release 4.
-.TP
-.B \-gxcoff
-Produce debugging information in XCOFF format (if that is supported).
-This is the format used by the DBX debugger on IBM RS/6000 systems.
-.TP
-.B \-gxcoff+
-Produce debugging information in XCOFF format (if that is supported),
-using GNU extensions understood only by the GNU debugger (GDB). The
-use of these extensions is likely to make other debuggers crash or
-refuse to read the program.
-.TP
-.B \-gdwarf
-Produce debugging information in DWARF format (if that is supported).
-This is the format used by SDB on most System V Release 4 systems.
-.TP
-.B \-gdwarf+
-Produce debugging information in DWARF format (if that is supported),
-using GNU extensions understood only by the GNU debugger (GDB). The
-use of these extensions is likely to make other debuggers crash or
-refuse to read the program.
-.PP
-.BI "\-g" "level"
-.br
-.BI "\-ggdb" "level"
-.br
-.BI "\-gstabs" "level"
-.br
-.BI "\-gcoff" "level"
-.BI "\-gxcoff" "level"
-.TP
-.BI "\-gdwarf" "level"
-Request debugging information and also use \c
-.I level\c
-\& to specify how
-much information. The default level is 2.
-.Sp
-Level 1 produces minimal information, enough for making backtraces in
-parts of the program that you don't plan to debug. This includes
-descriptions of functions and external variables, but no information
-about local variables and no line numbers.
-.Sp
-Level 3 includes extra information, such as all the macro definitions
-present in the program. Some debuggers support macro expansion when
-you use `\|\c
-.B \-g3\c
-\&\|'.
-.TP
-.B \-p
-Generate extra code to write profile information suitable for the
-analysis program \c
-.B prof\c
-\&.
-.TP
-.B \-pg
-Generate extra code to write profile information suitable for the
-analysis program \c
-.B gprof\c
-\&.
-.TP
-.B \-a
-Generate extra code to write profile information for basic blocks,
-which will record the number of times each basic block is executed.
-This data could be analyzed by a program like \c
-.B tcov\c
-\&. Note,
-however, that the format of the data is not what \c
-.B tcov\c
-\& expects.
-Eventually GNU \c
-.B gprof\c
-\& should be extended to process this data.
-.TP
-.B \-ax
-Generate extra code to read basic block profiling parameters from
-file `bb.in' and write profiling results to file `bb.out'.
-`bb.in' contains a list of functions. Whenever a function on the list
-is entered, profiling is turned on. When the outmost function is left,
-profiling is turned off. If a function name is prefixed with `-'
-the function is excluded from profiling. If a function name is not
-unique it can be disambiguated by writing
-`/path/filename.d:functionname'. `bb.out' will list some available
-filenames.
-Four function names have a special meaning:
-`__bb_jumps__' will cause jump frequencies to be written to `bb.out'.
-`__bb_trace__' will cause the sequence of basic blocks to be piped
-into `gzip' and written to file `bbtrace.gz'.
-`__bb_hidecall__' will cause call instructions to be excluded from
-the trace.
-`__bb_showret__' will cause return instructions to be included in
-the trace.
-.TP
-.BI "\-d" "letters"
-Says to make debugging dumps during compilation at times specified by
-.I letters\c
-\&. This is used for debugging the compiler. The file names
-for most of the dumps are made by appending a word to the source file
-name (e.g. `\|\c
-.B foo.c.rtl\c
-\&\|' or `\|\c
-.B foo.c.jump\c
-\&\|').
-.TP
-.B \-dM
-Dump all macro definitions, at the end of preprocessing, and write no
-output.
-.TP
-.B \-dN
-Dump all macro names, at the end of preprocessing.
-.TP
-.B \-dD
-Dump all macro definitions, at the end of preprocessing, in addition to
-normal output.
-.TP
-.B \-dy
-Dump debugging information during parsing, to standard error.
-.TP
-.B \-dr
-Dump after RTL generation, to `\|\c
-.I file\c
-.B \&.rtl\c
-\&\|'.
-.TP
-.B \-dx
-Just generate RTL for a function instead of compiling it. Usually used
-with `\|\c
-.B r\c
-\&\|'.
-.TP
-.B \-dj
-Dump after first jump optimization, to `\|\c
-.I file\c
-.B \&.jump\c
-\&\|'.
-.TP
-.B \-ds
-Dump after CSE (including the jump optimization that sometimes
-follows CSE), to `\|\c
-.I file\c
-.B \&.cse\c
-\&\|'.
-.TP
-.B \-dL
-Dump after loop optimization, to `\|\c
-.I file\c
-.B \&.loop\c
-\&\|'.
-.TP
-.B \-dt
-Dump after the second CSE pass (including the jump optimization that
-sometimes follows CSE), to `\|\c
-.I file\c
-.B \&.cse2\c
-\&\|'.
-.TP
-.B \-df
-Dump after flow analysis, to `\|\c
-.I file\c
-.B \&.flow\c
-\&\|'.
-.TP
-.B \-dc
-Dump after instruction combination, to `\|\c
-.I file\c
-.B \&.combine\c
-\&\|'.
-.TP
-.B \-dS
-Dump after the first instruction scheduling pass, to
-`\|\c
-.I file\c
-.B \&.sched\c
-\&\|'.
-.TP
-.B \-dl
-Dump after local register allocation, to `\|\c
-.I file\c
-.B \&.lreg\c
-\&\|'.
-.TP
-.B \-dg
-Dump after global register allocation, to `\|\c
-.I file\c
-.B \&.greg\c
-\&\|'.
-.TP
-.B \-dR
-Dump after the second instruction scheduling pass, to
-`\|\c
-.I file\c
-.B \&.sched2\c
-\&\|'.
-.TP
-.B \-dJ
-Dump after last jump optimization, to `\|\c
-.I file\c
-.B \&.jump2\c
-\&\|'.
-.TP
-.B \-dd
-Dump after delayed branch scheduling, to `\|\c
-.I file\c
-.B \&.dbr\c
-\&\|'.
-.TP
-.B \-dk
-Dump after conversion from registers to stack, to `\|\c
-.I file\c
-.B \&.stack\c
-\&\|'.
-.TP
-.B \-da
-Produce all the dumps listed above.
-.TP
-.B \-dm
-Print statistics on memory usage, at the end of the run, to
-standard error.
-.TP
-.B \-dp
-Annotate the assembler output with a comment indicating which
-pattern and alternative was used.
-.TP
-.B \-fpretend\-float
-When running a cross-compiler, pretend that the target machine uses the
-same floating point format as the host machine. This causes incorrect
-output of the actual floating constants, but the actual instruction
-sequence will probably be the same as GNU CC would make when running on
-the target machine.
-.TP
-.B \-save\-temps
-Store the usual \*(lqtemporary\*(rq intermediate files permanently; place them
-in the current directory and name them based on the source file. Thus,
-compiling `\|\c
-.B foo.c\c
-\&\|' with `\|\c
-.B \-c \-save\-temps\c
-\&\|' would produce files
-`\|\c
-.B foo.cpp\c
-\&\|' and `\|\c
-.B foo.s\c
-\&\|', as well as `\|\c
-.B foo.o\c
-\&\|'.
-.TP
-.BI "\-print\-file\-name=" "library"
-Print the full absolute name of the library file \|\c
-.nh
-.I library
-.hy
-\&\| that
-would be used when linking\(em\&and do not do anything else. With this
-option, GNU CC does not compile or link anything; it just prints the
-file name.
-.TP
-.B \-print\-libgcc\-file\-name
-Same as `\|\c
-.B \-print\-file\-name=libgcc.a\c
-\&\|'.
-.TP
-.BI "\-print\-prog\-name=" "program"
-Like `\|\c
-.B \-print\-file\-name\c
-\&\|', but searches for a program such as `\|\c
-cpp\c
-\&\|'.
-.SH OPTIMIZATION OPTIONS
-These options control various sorts of optimizations:
-.TP
-.B \-O
-.TP
-.B \-O1
-Optimize. Optimizing compilation takes somewhat more time, and a lot
-more memory for a large function.
-.Sp
-Without `\|\c
-.B \-O\c
-\&\|', the compiler's goal is to reduce the cost of
-compilation and to make debugging produce the expected results.
-Statements are independent: if you stop the program with a breakpoint
-between statements, you can then assign a new value to any variable or
-change the program counter to any other statement in the function and
-get exactly the results you would expect from the source code.
-.Sp
-Without `\|\c
-.B \-O\c
-\&\|', only variables declared \c
-.B register\c
-\& are
-allocated in registers. The resulting compiled code is a little worse
-than produced by PCC without `\|\c
-.B \-O\c
-\&\|'.
-.Sp
-With `\|\c
-.B \-O\c
-\&\|', the compiler tries to reduce code size and execution
-time.
-.Sp
-When you specify `\|\c
-.B \-O\c
-\&\|', the two options `\|\c
-.B \-fthread\-jumps\c
-\&\|' and `\|\c
-.B \-fdefer\-pop\c
-\&\|' are turned on. On machines that have delay slots, the `\|\c
-.B \-fdelayed\-branch\c
-\&\|' option is turned on. For those machines that can support debugging even
-without a frame pointer, the `\|\c
-.B \-fomit\-frame\-pointer\c
-\&\|' option is turned on. On some machines other flags may also be turned on.
-.TP
-.B \-O2
-Optimize even more. Nearly all supported optimizations that do not
-involve a space-speed tradeoff are performed. Loop unrolling and function
-inlining are not done, for example. As compared to
-.B \-O\c
-\&,
-this option increases both compilation time and the performance of the
-generated code.
-.TP
-.B \-O3
-Optimize yet more. This turns on everything
-.B \-O2
-does, along with also turning on
-.B \-finline\-functions.
-.TP
-.B \-O0
-Do not optimize.
-.Sp
-If you use multiple
-.B \-O
-options, with or without level numbers, the last such option is the
-one that is effective.
-.PP
-Options of the form `\|\c
-.B \-f\c
-.I flag\c
-\&\c
-\&\|' specify machine-independent
-flags. Most flags have both positive and negative forms; the negative
-form of `\|\c
-.B \-ffoo\c
-\&\|' would be `\|\c
-.B \-fno\-foo\c
-\&\|'. The following list shows
-only one form\(em\&the one which is not the default.
-You can figure out the other form by either removing `\|\c
-.B no\-\c
-\&\|' or
-adding it.
-.TP
-.B \-ffloat\-store
-Do not store floating point variables in registers. This
-prevents undesirable excess precision on machines such as the
-68000 where the floating registers (of the 68881) keep more
-precision than a \c
-.B double\c
-\& is supposed to have.
-.Sp
-For most programs, the excess precision does only good, but a few
-programs rely on the precise definition of IEEE floating point.
-Use `\|\c
-.B \-ffloat\-store\c
-\&\|' for such programs.
-.TP
-.B \-fmemoize\-lookups
-.TP
-.B \-fsave\-memoized
-Use heuristics to compile faster (C++ only). These heuristics are not
-enabled by default, since they are only effective for certain input
-files. Other input files compile more slowly.
-.Sp
-The first time the compiler must build a call to a member function (or
-reference to a data member), it must (1) determine whether the class
-implements member functions of that name; (2) resolve which member
-function to call (which involves figuring out what sorts of type
-conversions need to be made); and (3) check the visibility of the member
-function to the caller. All of this adds up to slower compilation.
-Normally, the second time a call is made to that member function (or
-reference to that data member), it must go through the same lengthy
-process again. This means that code like this
-.Sp
-\& cout << "This " << p << " has " << n << " legs.\en";
-.Sp
-makes six passes through all three steps. By using a software cache,
-a \*(lqhit\*(rq significantly reduces this cost. Unfortunately, using the
-cache introduces another layer of mechanisms which must be implemented,
-and so incurs its own overhead. `\|\c
-.B \-fmemoize\-lookups\c
-\&\|' enables
-the software cache.
-.Sp
-Because access privileges (visibility) to members and member functions
-may differ from one function context to the next,
-.B g++
-may need to flush the cache. With the `\|\c
-.B \-fmemoize\-lookups\c
-\&\|' flag, the cache is flushed after every
-function that is compiled. The `\|\c
-\-fsave\-memoized\c
-\&\|' flag enables the same software cache, but when the compiler
-determines that the context of the last function compiled would yield
-the same access privileges of the next function to compile, it
-preserves the cache.
-This is most helpful when defining many member functions for the same
-class: with the exception of member functions which are friends of
-other classes, each member function has exactly the same access
-privileges as every other, and the cache need not be flushed.
-.TP
-.B \-fno\-default\-inline
-Don't make member functions inline by default merely because they are
-defined inside the class scope (C++ only).
-.TP
-.B \-fno\-defer\-pop
-Always pop the arguments to each function call as soon as that
-function returns. For machines which must pop arguments after a
-function call, the compiler normally lets arguments accumulate on the
-stack for several function calls and pops them all at once.
-.TP
-.B \-fforce\-mem
-Force memory operands to be copied into registers before doing
-arithmetic on them. This may produce better code by making all
-memory references potential common subexpressions. When they are
-not common subexpressions, instruction combination should
-eliminate the separate register-load. I am interested in hearing
-about the difference this makes.
-.TP
-.B \-fforce\-addr
-Force memory address constants to be copied into registers before
-doing arithmetic on them. This may produce better code just as
-`\|\c
-.B \-fforce\-mem\c
-\&\|' may. I am interested in hearing about the
-difference this makes.
-.TP
-.B \-fomit\-frame\-pointer
-Don't keep the frame pointer in a register for functions that
-don't need one. This avoids the instructions to save, set up and
-restore frame pointers; it also makes an extra register available
-in many functions. \c
-.I It also makes debugging impossible on most machines\c
-\&.
-.Sp
-On some machines, such as the Vax, this flag has no effect, because
-the standard calling sequence automatically handles the frame pointer
-and nothing is saved by pretending it doesn't exist. The
-machine-description macro \c
-.B FRAME_POINTER_REQUIRED\c
-\& controls
-whether a target machine supports this flag.
-.TP
-.B \-finline\-functions
-Integrate all simple functions into their callers. The compiler
-heuristically decides which functions are simple enough to be worth
-integrating in this way.
-.Sp
-If all calls to a given function are integrated, and the function is
-declared \c
-.B static\c
-\&, then GCC normally does not output the function as
-assembler code in its own right.
-.TP
-.B \-fcaller\-saves
-Enable values to be allocated in registers that will be clobbered by
-function calls, by emitting extra instructions to save and restore the
-registers around such calls. Such allocation is done only when it
-seems to result in better code than would otherwise be produced.
-.Sp
-This option is enabled by default on certain machines, usually those
-which have no call-preserved registers to use instead.
-.TP
-.B \-fkeep\-inline\-functions
-Even if all calls to a given function are integrated, and the function
-is declared \c
-.B static\c
-\&, nevertheless output a separate run-time
-callable version of the function.
-.TP
-.B \-fno\-function\-cse
-Do not put function addresses in registers; make each instruction that
-calls a constant function contain the function's address explicitly.
-.Sp
-This option results in less efficient code, but some strange hacks
-that alter the assembler output may be confused by the optimizations
-performed when this option is not used.
-.TP
-.B \-fno\-peephole
-Disable any machine-specific peephole optimizations.
-.TP
-.B \-ffast-math
-This option allows GCC to violate some ANSI or IEEE rules/specifications
-in the interest of optimizing code for speed. For example, it allows
-the compiler to assume arguments to the \c
-.B sqrt\c
-\& function are
-non-negative numbers.
-.Sp
-This option should never be turned on by any `\|\c
-.B \-O\c
-\&\|' option since
-it can result in incorrect output for programs which depend on
-an exact implementation of IEEE or ANSI rules/specifications for
-math functions.
-.PP
-The following options control specific optimizations. The `\|\c
-.B \-O2\c
-\&\|'
-option turns on all of these optimizations except `\|\c
-.B \-funroll\-loops\c
-\&\|'
-and `\|\c
-.B \-funroll\-all\-loops\c
-\&\|'.
-.PP
-The `\|\c
-.B \-O\c
-\&\|' option usually turns on
-the `\|\c
-.B \-fthread\-jumps\c
-\&\|' and `\|\c
-.B \-fdelayed\-branch\c
-\&\|' options, but
-specific machines may change the default optimizations.
-.PP
-You can use the following flags in the rare cases when \*(lqfine-tuning\*(rq
-of optimizations to be performed is desired.
-.TP
-.B \-fstrength\-reduce
-Perform the optimizations of loop strength reduction and
-elimination of iteration variables.
-.TP
-.B \-fthread\-jumps
-Perform optimizations where we check to see if a jump branches to a
-location where another comparison subsumed by the first is found. If
-so, the first branch is redirected to either the destination of the
-second branch or a point immediately following it, depending on whether
-the condition is known to be true or false.
-.TP
-.B \-funroll\-loops
-Perform the optimization of loop unrolling. This is only done for loops
-whose number of iterations can be determined at compile time or run time.
-.TP
-.B \-funroll\-all\-loops
-Perform the optimization of loop unrolling. This is done for all loops.
-This usually makes programs run more slowly.
-.TP
-.B \-fcse\-follow\-jumps
-In common subexpression elimination, scan through jump instructions
-when the target of the jump is not reached by any other path. For
-example, when CSE encounters an \c
-.B if\c
-\& statement with an
-.B else\c
-\& clause, CSE will follow the jump when the condition
-tested is false.
-.TP
-.B \-fcse\-skip\-blocks
-This is similar to `\|\c
-.B \-fcse\-follow\-jumps\c
-\&\|', but causes CSE to
-follow jumps which conditionally skip over blocks. When CSE
-encounters a simple \c
-.B if\c
-\& statement with no else clause,
-`\|\c
-.B \-fcse\-skip\-blocks\c
-\&\|' causes CSE to follow the jump around the
-body of the \c
-.B if\c
-\&.
-.TP
-.B \-frerun\-cse\-after\-loop
-Re-run common subexpression elimination after loop optimizations has been
-performed.
-.TP
-.B \-felide\-constructors
-Elide constructors when this seems plausible (C++ only). With this
-flag, GNU C++ initializes \c
-.B y\c
-\& directly from the call to \c
-.B foo
-without going through a temporary in the following code:
-.Sp
-A foo ();
-A y = foo ();
-.Sp
-Without this option, GNU C++ first initializes \c
-.B y\c
-\& by calling the
-appropriate constructor for type \c
-.B A\c
-\&; then assigns the result of
-.B foo\c
-\& to a temporary; and, finally, replaces the initial value of
-`\|\c
-.B y\c
-\&\|' with the temporary.
-.Sp
-The default behavior (`\|\c
-.B \-fno\-elide\-constructors\c
-\&\|') is specified by
-the draft ANSI C++ standard. If your program's constructors have side
-effects, using `\|\c
-.B \-felide-constructors\c
-\&\|' can make your program act
-differently, since some constructor calls may be omitted.
-.TP
-.B \-fexpensive\-optimizations
-Perform a number of minor optimizations that are relatively expensive.
-.TP
-.B \-fdelayed\-branch
-If supported for the target machine, attempt to reorder instructions
-to exploit instruction slots available after delayed branch
-instructions.
-.TP
-.B \-fschedule\-insns
-If supported for the target machine, attempt to reorder instructions to
-eliminate execution stalls due to required data being unavailable. This
-helps machines that have slow floating point or memory load instructions
-by allowing other instructions to be issued until the result of the load
-or floating point instruction is required.
-.TP
-.B \-fschedule\-insns2
-Similar to `\|\c
-.B \-fschedule\-insns\c
-\&\|', but requests an additional pass of
-instruction scheduling after register allocation has been done. This is
-especially useful on machines with a relatively small number of
-registers and where memory load instructions take more than one cycle.
-.SH TARGET OPTIONS
-By default, GNU CC compiles code for the same type of machine that you
-are using. However, it can also be installed as a cross-compiler, to
-compile for some other type of machine. In fact, several different
-configurations of GNU CC, for different target machines, can be
-installed side by side. Then you specify which one to use with the
-`\|\c
-.B \-b\c
-\&\|' option.
-.PP
-In addition, older and newer versions of GNU CC can be installed side
-by side. One of them (probably the newest) will be the default, but
-you may sometimes wish to use another.
-.TP
-.BI "\-b " "machine"
-The argument \c
-.I machine\c
-\& specifies the target machine for compilation.
-This is useful when you have installed GNU CC as a cross-compiler.
-.Sp
-The value to use for \c
-.I machine\c
-\& is the same as was specified as the
-machine type when configuring GNU CC as a cross-compiler. For
-example, if a cross-compiler was configured with `\|\c
-.B configure
-i386v\c
-\&\|', meaning to compile for an 80386 running System V, then you
-would specify `\|\c
-.B \-b i386v\c
-\&\|' to run that cross compiler.
-.Sp
-When you do not specify `\|\c
-.B \-b\c
-\&\|', it normally means to compile for
-the same type of machine that you are using.
-.TP
-.BI "\-V " "version"
-The argument \c
-.I version\c
-\& specifies which version of GNU CC to run.
-This is useful when multiple versions are installed. For example,
-.I version\c
-\& might be `\|\c
-.B 2.0\c
-\&\|', meaning to run GNU CC version 2.0.
-.Sp
-The default version, when you do not specify `\|\c
-.B \-V\c
-\&\|', is controlled
-by the way GNU CC is installed. Normally, it will be a version that
-is recommended for general use.
-.SH MACHINE DEPENDENT OPTIONS
-Each of the target machine types can have its own special options,
-starting with `\|\c
-.B \-m\c
-\&\|', to choose among various hardware models or
-configurations\(em\&for example, 68010 vs 68020, floating coprocessor or
-none. A single installed version of the compiler can compile for any
-model or configuration, according to the options specified.
-.PP
-Some configurations of the compiler also support additional special
-options, usually for command-line compatibility with other compilers on
-the same platform.
-.PP
-These are the `\|\c
-.B \-m\c
-\&\|' options defined for the 68000 series:
-.TP
-.B \-m68000
-.TP
-.B \-mc68000
-Generate output for a 68000. This is the default when the compiler is
-configured for 68000-based systems.
-.TP
-.B \-m68020
-.TP
-.B \-mc68020
-Generate output for a 68020 (rather than a 68000). This is the
-default when the compiler is configured for 68020-based systems.
-.TP
-.B \-m68881
-Generate output containing 68881 instructions for floating point.
-This is the default for most 68020-based systems unless
-.B \-nfp
-was specified when the compiler was configured.
-.TP
-.B \-m68030
-Generate output for a 68030. This is the default when the compiler is
-configured for 68030-based systems.
-.TP
-.B \-m68040
-Generate output for a 68040. This is the default when the compiler is
-configured for 68040-based systems.
-.TP
-.B \-m68020\-40
-Generate output for a 68040, without using any of the new instructions.
-This results in code which can run relatively efficiently on either a
-68020/68881 or a 68030 or a 68040.
-.TP
-.B \-mfpa
-Generate output containing Sun FPA instructions for floating point.
-.TP
-.B \-msoft\-float
-Generate output containing library calls for floating point.
-.I
-WARNING:
-the requisite libraries are not part of GNU CC. Normally the
-facilities of the machine's usual C compiler are used, but this can't
-be done directly in cross-compilation. You must make your own
-arrangements to provide suitable library functions for cross-compilation.
-.TP
-.B \-mshort
-Consider type \c
-.B int\c
-\& to be 16 bits wide, like \c
-.B short int\c
-\&.
-.TP
-.B \-mnobitfield
-Do not use the bit-field instructions. `\|\c
-.B \-m68000\c
-\&\|' implies
-`\|\c
-.B \-mnobitfield\c
-\&\|'.
-.TP
-.B \-mbitfield
-Do use the bit-field instructions. `\|\c
-.B \-m68020\c
-\&\|' implies
-`\|\c
-.B \-mbitfield\c
-\&\|'. This is the default if you use the unmodified
-sources.
-.TP
-.B \-mrtd
-Use a different function-calling convention, in which functions
-that take a fixed number of arguments return with the \c
-.B rtd
-instruction, which pops their arguments while returning. This
-saves one instruction in the caller since there is no need to pop
-the arguments there.
-.Sp
-This calling convention is incompatible with the one normally
-used on Unix, so you cannot use it if you need to call libraries
-compiled with the Unix compiler.
-.Sp
-Also, you must provide function prototypes for all functions that
-take variable numbers of arguments (including \c
-.B printf\c
-\&);
-otherwise incorrect code will be generated for calls to those
-functions.
-.Sp
-In addition, seriously incorrect code will result if you call a
-function with too many arguments. (Normally, extra arguments are
-harmlessly ignored.)
-.Sp
-The \c
-.B rtd\c
-\& instruction is supported by the 68010 and 68020
-processors, but not by the 68000.
-.PP
-These `\|\c
-.B \-m\c
-\&\|' options are defined for the Vax:
-.TP
-.B \-munix
-Do not output certain jump instructions (\c
-.B aobleq\c
-\& and so on)
-that the Unix assembler for the Vax cannot handle across long
-ranges.
-.TP
-.B \-mgnu
-Do output those jump instructions, on the assumption that you
-will assemble with the GNU assembler.
-.TP
-.B \-mg
-Output code for g-format floating point numbers instead of d-format.
-.PP
-These `\|\c
-.B \-m\c
-\&\|' switches are supported on the SPARC:
-.PP
-.B \-mfpu
-.TP
-.B \-mhard\-float
-Generate output containing floating point instructions. This is the
-default.
-.PP
-.B \-mno\-fpu
-.TP
-.B \-msoft\-float
-Generate output containing library calls for floating point.
-.I Warning:
-there is no GNU floating-point library for SPARC.
-Normally the facilities of the machine's usual C compiler are used, but
-this cannot be done directly in cross-compilation. You must make your
-own arrangements to provide suitable library functions for
-cross-compilation.
-.Sp
-.B \-msoft\-float
-changes the calling convention in the output file;
-therefore, it is only useful if you compile
-.I all
-of a program with this option.
-.PP
-.B \-mno\-epilogue
-.TP
-.B \-mepilogue
-With
-.B \-mepilogue
-(the default), the compiler always emits code for
-function exit at the end of each function. Any function exit in
-the middle of the function (such as a return statement in C) will
-generate a jump to the exit code at the end of the function.
-.Sp
-With
-.BR \-mno\-epilogue ,
-the compiler tries to emit exit code inline at every function exit.
-.PP
-.B \-mno\-v8
-.TP
-.B \-mv8
-.TP
-.B \-msparclite
-These three options select variations on the SPARC architecture.
-.Sp
-By default (unless specifically configured for the Fujitsu SPARClite),
-GCC generates code for the v7 variant of the SPARC architecture.
-.Sp
-.B \-mv8
-will give you SPARC v8 code. The only difference from v7
-code is that the compiler emits the integer multiply and integer
-divide instructions which exist in SPARC v8 but not in SPARC v7.
-.Sp
-.B \-msparclite
-will give you SPARClite code. This adds the integer
-multiply, integer divide step and scan (ffs) instructions which
-exist in SPARClite but not in SPARC v7.
-.PP
-.B \-mcypress
-.TP
-.B \-msupersparc
-These two options select the processor for which the code is optimised.
-.Sp
-With
-.B \-mcypress
-(the default), the compiler optimises code for the Cypress CY7C602 chip, as
-used in the SparcStation/SparcServer 3xx series. This is also appropriate for
-the older SparcStation 1, 2, IPX etc.
-.Sp
-With
-.B \-msupersparc
-the compiler optimises code for the SuperSparc cpu, as used in the SparcStation
-10, 1000 and 2000 series. This flag also enables use of the full SPARC v8
-instruction set.
-.PP
-These `\|\c
-.B \-m\c
-\&\|' options are defined for the Convex:
-.TP
-.B \-mc1
-Generate output for a C1. This is the default when the compiler is
-configured for a C1.
-.TP
-.B \-mc2
-Generate output for a C2. This is the default when the compiler is
-configured for a C2.
-.TP
-.B \-margcount
-Generate code which puts an argument count in the word preceding each
-argument list. Some nonportable Convex and Vax programs need this word.
-(Debuggers don't, except for functions with variable-length argument
-lists; this info is in the symbol table.)
-.TP
-.B \-mnoargcount
-Omit the argument count word. This is the default if you use the
-unmodified sources.
-.PP
-These `\|\c
-.B \-m\c
-\&\|' options are defined for the AMD Am29000:
-.TP
-.B \-mdw
-Generate code that assumes the DW bit is set, i.e., that byte and
-halfword operations are directly supported by the hardware. This is the
-default.
-.TP
-.B \-mnodw
-Generate code that assumes the DW bit is not set.
-.TP
-.B \-mbw
-Generate code that assumes the system supports byte and halfword write
-operations. This is the default.
-.TP
-.B \-mnbw
-Generate code that assumes the systems does not support byte and
-halfword write operations. This implies `\|\c
-.B \-mnodw\c
-\&\|'.
-.TP
-.B \-msmall
-Use a small memory model that assumes that all function addresses are
-either within a single 256 KB segment or at an absolute address of less
-than 256K. This allows the \c
-.B call\c
-\& instruction to be used instead
-of a \c
-.B const\c
-\&, \c
-.B consth\c
-\&, \c
-.B calli\c
-\& sequence.
-.TP
-.B \-mlarge
-Do not assume that the \c
-.B call\c
-\& instruction can be used; this is the
-default.
-.TP
-.B \-m29050
-Generate code for the Am29050.
-.TP
-.B \-m29000
-Generate code for the Am29000. This is the default.
-.TP
-.B \-mkernel\-registers
-Generate references to registers \c
-.B gr64-gr95\c
-\& instead of
-.B gr96-gr127\c
-\&. This option can be used when compiling kernel code
-that wants a set of global registers disjoint from that used by
-user-mode code.
-.Sp
-Note that when this option is used, register names in `\|\c
-.B \-f\c
-\&\|' flags
-must use the normal, user-mode, names.
-.TP
-.B \-muser\-registers
-Use the normal set of global registers, \c
-.B gr96-gr127\c
-\&. This is the
-default.
-.TP
-.B \-mstack\-check
-Insert a call to \c
-.B _\|_msp_check\c
-\& after each stack adjustment. This
-is often used for kernel code.
-.PP
-These `\|\c
-.B \-m\c
-\&\|' options are defined for Motorola 88K architectures:
-.TP
-.B \-m88000
-Generate code that works well on both the m88100 and the
-m88110.
-.TP
-.B \-m88100
-Generate code that works best for the m88100, but that also
-runs on the m88110.
-.TP
-.B \-m88110
-Generate code that works best for the m88110, and may not run
-on the m88100.
-.TP
-.B \-midentify\-revision
-Include an \c
-.B ident\c
-\& directive in the assembler output recording the
-source file name, compiler name and version, timestamp, and compilation
-flags used.
-.TP
-.B \-mno\-underscores
-In assembler output, emit symbol names without adding an underscore
-character at the beginning of each name. The default is to use an
-underscore as prefix on each name.
-.TP
-.B \-mno\-check\-zero\-division
-.TP
-.B \-mcheck\-zero\-division
-Early models of the 88K architecture had problems with division by zero;
-in particular, many of them didn't trap. Use these options to avoid
-including (or to include explicitly) additional code to detect division
-by zero and signal an exception. All GCC configurations for the 88K use
-`\|\c
-.B \-mcheck\-zero\-division\c
-\&\|' by default.
-.TP
-.B \-mocs\-debug\-info
-.TP
-.B \-mno\-ocs\-debug\-info
-Include (or omit) additional debugging information (about
-registers used in each stack frame) as specified in the 88Open Object
-Compatibility Standard, \*(lqOCS\*(rq. This extra information is not needed
-by GDB. The default for DG/UX, SVr4, and Delta 88 SVr3.2 is to
-include this information; other 88k configurations omit this information
-by default.
-.TP
-.B \-mocs\-frame\-position
-.TP
-.B \-mno\-ocs\-frame\-position
-Force (or do not require) register values to be stored in a particular
-place in stack frames, as specified in OCS. The DG/UX, Delta88 SVr3.2,
-and BCS configurations use `\|\c
-.B \-mocs\-frame\-position\c
-\&\|'; other 88k
-configurations have the default `\|\c
-.B \-mno\-ocs\-frame\-position\c
-\&\|'.
-.TP
-.B \-moptimize\-arg\-area
-.TP
-.B \-mno\-optimize\-arg\-area
-Control how to store function arguments in stack frames.
-`\|\c
-.B \-moptimize\-arg\-area\c
-\&\|' saves space, but may break some
-debuggers (not GDB). `\|\c
-.B \-mno\-optimize\-arg\-area\c
-\&\|' conforms better to
-standards. By default GCC does not optimize the argument area.
-.TP
-.BI "\-mshort\-data\-" "num"
-.I num
-Generate smaller data references by making them relative to \c
-.B r0\c
-\&,
-which allows loading a value using a single instruction (rather than the
-usual two). You control which data references are affected by
-specifying \c
-.I num\c
-\& with this option. For example, if you specify
-`\|\c
-.B \-mshort\-data\-512\c
-\&\|', then the data references affected are those
-involving displacements of less than 512 bytes.
-`\|\c
-.B \-mshort\-data\-\c
-.I num\c
-\&\c
-\&\|' is not effective for \c
-.I num\c
-\& greater
-than 64K.
-.PP
-.B \-mserialize-volatile
-.TP
-.B \-mno-serialize-volatile
-Do, or do not, generate code to guarantee sequential consistency of
-volatile memory references.
-.Sp
-GNU CC always guarantees consistency by default, for the preferred
-processor submodel. How this is done depends on the submodel.
-.Sp
-The m88100 processor does not reorder memory references and so always
-provides sequential consistency. If you use `\|\c
-.B \-m88100\c
-\&\|', GNU CC does
-not generate any special instructions for sequential consistency.
-.Sp
-The order of memory references made by the m88110 processor does not
-always match the order of the instructions requesting those references.
-In particular, a load instruction may execute before a preceding store
-instruction. Such reordering violates sequential consistency of
-volatile memory references, when there are multiple processors. When
-you use `\|\c
-.B \-m88000\c
-\&\|' or `\|\c
-.B \-m88110\c
-\&\|', GNU CC generates special
-instructions when appropriate, to force execution in the proper order.
-.Sp
-The extra code generated to guarantee consistency may affect the
-performance of your application. If you know that you can safely forgo
-this guarantee, you may use the option `\|\c
-.B \-mno-serialize-volatile\c
-\&\|'.
-.Sp
-If you use the `\|\c
-.B \-m88100\c
-\&\|' option but require sequential consistency
-when running on the m88110 processor, you should use
-`\|\c
-.B \-mserialize-volatile\c
-\&\|'.
-.PP
-.B \-msvr4
-.TP
-.B \-msvr3
-Turn on (`\|\c
-.B \-msvr4\c
-\&\|') or off (`\|\c
-.B \-msvr3\c
-\&\|') compiler extensions
-related to System V release 4 (SVr4). This controls the following:
-.TP
-\ \ \ \(bu
-Which variant of the assembler syntax to emit (which you can select
-independently using `\|\c
-.B \-mversion\-03.00\c
-\&\|').
-.TP
-\ \ \ \(bu
-`\|\c
-.B \-msvr4\c
-\&\|' makes the C preprocessor recognize `\|\c
-.B #pragma weak\c
-\&\|'
-.TP
-\ \ \ \(bu
-`\|\c
-.B \-msvr4\c
-\&\|' makes GCC issue additional declaration directives used in
-SVr4.
-.PP
-`\|\c
-.B \-msvr3\c
-\&\|' is the default for all m88K configurations except
-the SVr4 configuration.
-.TP
-.B \-mtrap\-large\-shift
-.TP
-.B \-mhandle\-large\-shift
-Include code to detect bit-shifts of more than 31 bits; respectively,
-trap such shifts or emit code to handle them properly. By default GCC
-makes no special provision for large bit shifts.
-.TP
-.B \-muse\-div\-instruction
-Very early models of the 88K architecture didn't have a divide
-instruction, so GCC avoids that instruction by default. Use this option
-to specify that it's safe to use the divide instruction.
-.TP
-.B \-mversion\-03.00
-In the DG/UX configuration, there are two flavors of SVr4. This option
-modifies
-.B \-msvr4
-to select whether the hybrid-COFF or real-ELF
-flavor is used. All other configurations ignore this option.
-.TP
-.B \-mwarn\-passed\-structs
-Warn when a function passes a struct as an argument or result.
-Structure-passing conventions have changed during the evolution of the C
-language, and are often the source of portability problems. By default,
-GCC issues no such warning.
-.PP
-These options are defined for the IBM RS6000:
-.PP
-.B \-mfp\-in\-toc
-.TP
-.B \-mno\-fp\-in\-toc
-Control whether or not floating-point constants go in the Table of
-Contents (TOC), a table of all global variable and function addresses. By
-default GCC puts floating-point constants there; if the TOC overflows,
-`\|\c
-.B \-mno\-fp\-in\-toc\c
-\&\|' will reduce the size of the TOC, which may avoid
-the overflow.
-.PP
-These `\|\c
-.B \-m\c
-\&\|' options are defined for the IBM RT PC:
-.TP
-.B \-min\-line\-mul
-Use an in-line code sequence for integer multiplies. This is the
-default.
-.TP
-.B \-mcall\-lib\-mul
-Call \c
-.B lmul$$\c
-\& for integer multiples.
-.TP
-.B \-mfull\-fp\-blocks
-Generate full-size floating point data blocks, including the minimum
-amount of scratch space recommended by IBM. This is the default.
-.TP
-.B \-mminimum\-fp\-blocks
-Do not include extra scratch space in floating point data blocks. This
-results in smaller code, but slower execution, since scratch space must
-be allocated dynamically.
-.TP
-.B \-mfp\-arg\-in\-fpregs
-Use a calling sequence incompatible with the IBM calling convention in
-which floating point arguments are passed in floating point registers.
-Note that \c
-.B varargs.h\c
-\& and \c
-.B stdargs.h\c
-\& will not work with
-floating point operands if this option is specified.
-.TP
-.B \-mfp\-arg\-in\-gregs
-Use the normal calling convention for floating point arguments. This is
-the default.
-.TP
-.B \-mhc\-struct\-return
-Return structures of more than one word in memory, rather than in a
-register. This provides compatibility with the MetaWare HighC (hc)
-compiler. Use `\|\c
-.B \-fpcc\-struct\-return\c
-\&\|' for compatibility with the
-Portable C Compiler (pcc).
-.TP
-.B \-mnohc\-struct\-return
-Return some structures of more than one word in registers, when
-convenient. This is the default. For compatibility with the
-IBM-supplied compilers, use either `\|\c
-.B \-fpcc\-struct\-return\c
-\&\|' or
-`\|\c
-.B \-mhc\-struct\-return\c
-\&\|'.
-.PP
-These `\|\c
-.B \-m\c
-\&\|' options are defined for the MIPS family of computers:
-.TP
-.BI "\-mcpu=" "cpu-type"
-Assume the defaults for the machine type
-.I cpu-type
-when
-scheduling instructions. The default
-.I cpu-type
-is
-.BR default ,
-which picks the longest cycles times for any of the machines, in order
-that the code run at reasonable rates on all MIPS cpu's. Other
-choices for
-.I cpu-type
-are
-.BR r2000 ,
-.BR r3000 ,
-.BR r4000 ,
-and
-.BR r6000 .
-While picking a specific
-.I cpu-type
-will schedule things appropriately for that particular chip, the
-compiler will not generate any code that does not meet level 1 of the
-MIPS ISA (instruction set architecture) without the
-.B \-mips2
-or
-.B \-mips3
-switches being used.
-.TP
-.B \-mips2
-Issue instructions from level 2 of the MIPS ISA (branch likely, square
-root instructions). The
-.B \-mcpu=r4000
-or
-.B \-mcpu=r6000
-switch must be used in conjunction with
-.BR \-mips2 .
-.TP
-.B \-mips3
-Issue instructions from level 3 of the MIPS ISA (64 bit instructions).
-The
-.B \-mcpu=r4000
-switch must be used in conjunction with
-.BR \-mips2 .
-.TP
-.B \-mint64
-.TP
-.B \-mlong64
-.TP
-.B \-mlonglong128
-These options don't work at present.
-.TP
-.B \-mmips\-as
-Generate code for the MIPS assembler, and invoke
-.B mips\-tfile
-to add normal debug information. This is the default for all
-platforms except for the OSF/1 reference platform, using the OSF/rose
-object format. If any of the
-.BR \-ggdb ,
-.BR \-gstabs ,
-or
-.B \-gstabs+
-switches are used, the
-.B mips\-tfile
-program will encapsulate the stabs within MIPS ECOFF.
-.TP
-.B \-mgas
-Generate code for the GNU assembler. This is the default on the OSF/1
-reference platform, using the OSF/rose object format.
-.TP
-.B \-mrnames
-.TP
-.B \-mno\-rnames
-The
-.B \-mrnames
-switch says to output code using the MIPS software names for the
-registers, instead of the hardware names (ie,
-.B a0
-instead of
-.BR $4 ).
-The GNU assembler does not support the
-.B \-mrnames
-switch, and the MIPS assembler will be instructed to run the MIPS C
-preprocessor over the source file. The
-.B \-mno\-rnames
-switch is default.
-.TP
-.B \-mgpopt
-.TP
-.B \-mno\-gpopt
-The
-.B \-mgpopt
-switch says to write all of the data declarations before the
-instructions in the text section, to all the MIPS assembler to
-generate one word memory references instead of using two words for
-short global or static data items. This is on by default if
-optimization is selected.
-.TP
-.B \-mstats
-.TP
-.B \-mno\-stats
-For each non-inline function processed, the
-.B \-mstats
-switch causes the compiler to emit one line to the standard error file
-to print statistics about the program (number of registers saved,
-stack size, etc.).
-.TP
-.B \-mmemcpy
-.TP
-.B \-mno\-memcpy
-The
-.B \-mmemcpy
-switch makes all block moves call the appropriate string function
-.RB ( memcpy
-or
-.BR bcopy )
-instead of possibly generating inline code.
-.TP
-.B \-mmips\-tfile
-.TP
-.B \-mno\-mips\-tfile
-The
-.B \-mno\-mips\-tfile
-switch causes the compiler not postprocess the object file with the
-.B mips\-tfile
-program, after the MIPS assembler has generated it to add debug
-support. If
-.B mips\-tfile
-is not run, then no local variables will be available to the debugger.
-In addition,
-.B stage2
-and
-.B stage3
-objects will have the temporary file names passed to the assembler
-embedded in the object file, which means the objects will not compare
-the same.
-.TP
-.B \-msoft\-float
-Generate output containing library calls for floating point.
-.I
-WARNING:
-the requisite libraries are not part of GNU CC. Normally the
-facilities of the machine's usual C compiler are used, but this can't
-be done directly in cross-compilation. You must make your own
-arrangements to provide suitable library functions for cross-compilation.
-.TP
-.B \-mhard\-float
-Generate output containing floating point instructions. This is the
-default if you use the unmodified sources.
-.TP
-.B \-mfp64
-Assume that the
-.B FR
-bit in the status word is on, and that there are 32 64-bit floating
-point registers, instead of 32 32-bit floating point registers. You
-must also specify the
-.B \-mcpu=r4000
-and
-.B \-mips3
-switches.
-.TP
-.B \-mfp32
-Assume that there are 32 32-bit floating point registers. This is the
-default.
-.PP
-.B \-mabicalls
-.TP
-.B \-mno\-abicalls
-Emit (or do not emit) the
-.BR \&.abicalls ,
-.BR \&.cpload ,
-and
-.B \&.cprestore
-pseudo operations that some System V.4 ports use for position
-independent code.
-.TP
-.B \-mhalf\-pic
-.TP
-.B \-mno\-half\-pic
-The
-.B \-mhalf\-pic
-switch says to put pointers to extern references into the data section
-and load them up, rather than put the references in the text section.
-This option does not work at present.
-.B
-.BI \-G num
-Put global and static items less than or equal to
-.I num
-bytes into the small data or bss sections instead of the normal data
-or bss section. This allows the assembler to emit one word memory
-reference instructions based on the global pointer
-.RB ( gp
-or
-.BR $28 ),
-instead of the normal two words used. By default,
-.I num
-is 8 when the MIPS assembler is used, and 0 when the GNU
-assembler is used. The
-.BI \-G num
-switch is also passed to the assembler and linker. All modules should
-be compiled with the same
-.BI \-G num
-value.
-.TP
-.B \-nocpp
-Tell the MIPS assembler to not run its preprocessor over user
-assembler files (with a `\|\c
-.B .s\c
-\&\|' suffix) when assembling them.
-.PP
-These `\|\c
-.B \-m\c
-\&\|' options are defined for the Intel 80386 family of computers:
-.B \-m486
-.TP
-.B \-mno\-486
-Control whether or not code is optimized for a 486 instead of an
-386. Code generated for a 486 will run on a 386 and vice versa.
-.TP
-.B \-msoft\-float
-Generate output containing library calls for floating point.
-.I Warning:
-the requisite libraries are not part of GNU CC.
-Normally the facilities of the machine's usual C compiler are used, but
-this can't be done directly in cross-compilation. You must make your
-own arrangements to provide suitable library functions for
-cross-compilation.
-.Sp
-On machines where a function returns floating point results in the 80387
-register stack, some floating point opcodes may be emitted even if
-`\|\c
-.B \-msoft-float\c
-\&\|' is used.
-.TP
-.B \-mno-fp-ret-in-387
-Do not use the FPU registers for return values of functions.
-.Sp
-The usual calling convention has functions return values of types
-.B float\c
-\& and \c
-.B double\c
-\& in an FPU register, even if there
-is no FPU. The idea is that the operating system should emulate
-an FPU.
-.Sp
-The option `\|\c
-.B \-mno-fp-ret-in-387\c
-\&\|' causes such values to be returned
-in ordinary CPU registers instead.
-.PP
-These `\|\c
-.B \-m\c
-\&\|' options are defined for the HPPA family of computers:
-.TP
-.B \-mpa-risc-1-0
-Generate code for a PA 1.0 processor.
-.TP
-.B \-mpa-risc-1-1
-Generate code for a PA 1.1 processor.
-.TP
-.B \-mkernel
-Generate code which is suitable for use in kernels. Specifically, avoid
-.B add\c
-\& instructions in which one of the arguments is the DP register;
-generate \c
-.B addil\c
-\& instructions instead. This avoids a rather serious
-bug in the HP-UX linker.
-.TP
-.B \-mshared-libs
-Generate code that can be linked against HP-UX shared libraries. This option
-is not fully function yet, and is not on by default for any PA target. Using
-this option can cause incorrect code to be generated by the compiler.
-.TP
-.B \-mno-shared-libs
-Don't generate code that will be linked against shared libraries. This is
-the default for all PA targets.
-.TP
-.B \-mlong-calls
-Generate code which allows calls to functions greater than 256K away from
-the caller when the caller and callee are in the same source file. Do
-not turn this option on unless code refuses to link with \*(lqbranch out of
-range errors\*('' from the linker.
-.TP
-.B \-mdisable-fpregs
-Prevent floating point registers from being used in any manner. This is
-necessary for compiling kernels which perform lazy context switching of
-floating point registers. If you use this option and attempt to perform
-floating point operations, the compiler will abort.
-.TP
-.B \-mdisable-indexing
-Prevent the compiler from using indexing address modes. This avoids some
-rather obscure problems when compiling MIG generated code under MACH.
-.TP
-.B \-mtrailing-colon
-Add a colon to the end of label definitions (for ELF assemblers).
-.PP
-These `\|\c
-.B \-m\c
-\&\|' options are defined for the Intel 80960 family of computers:
-.TP
-.BI "\-m" "cpu-type"
-Assume the defaults for the machine type
-.I cpu-type
-for instruction and addressing-mode availability and alignment.
-The default
-.I cpu-type
-is
-.BR kb ;
-other choices are
-.BR ka ,
-.BR mc ,
-.BR ca ,
-.BR cf ,
-.BR sa ,
-and
-.BR sb .
-.TP
-.B \-mnumerics
-.TP
-.B \-msoft\-float
-The
-.B \-mnumerics
-option indicates that the processor does support
-floating-point instructions. The
-.B \-msoft\-float
-option indicates
-that floating-point support should not be assumed.
-.TP
-.B \-mleaf\-procedures
-.TP
-.B \-mno\-leaf\-procedures
-Do (or do not) attempt to alter leaf procedures to be callable with the
-.I bal
-instruction as well as
-.IR call .
-This will result in more
-efficient code for explicit calls when the
-.I bal
-instruction can be
-substituted by the assembler or linker, but less efficient code in other
-cases, such as calls via function pointers, or using a linker that doesn't
-support this optimization.
-.TP
-.B \-mtail\-call
-.TP
-.B \-mno\-tail\-call
-Do (or do not) make additional attempts (beyond those of the
-machine-independent portions of the compiler) to optimize tail-recursive
-calls into branches. You may not want to do this because the detection of
-cases where this is not valid is not totally complete. The default is
-.BR \-mno\-tail\-call .
-.TP
-.B \-mcomplex\-addr
-.TP
-.B \-mno\-complex\-addr
-Assume (or do not assume) that the use of a complex addressing mode is a
-win on this implementation of the i960. Complex addressing modes may not
-be worthwhile on the K-series, but they definitely are on the C-series.
-The default is currently
-.B \-mcomplex\-addr
-for all processors except
-the CB and CC.
-.TP
-.B \-mcode\-align
-.TP
-.B \-mno\-code\-align
-Align code to 8-byte boundaries for faster fetching (or don't bother).
-Currently turned on by default for C-series implementations only.
-.TP
-.B \-mic\-compat
-.TP
-.B \-mic2.0\-compat
-.TP
-.B \-mic3.0\-compat
-Enable compatibility with iC960 v2.0 or v3.0.
-.TP
-.B \-masm\-compat
-.TP
-.B \-mintel\-asm
-Enable compatibility with the iC960 assembler.
-.TP
-.B \-mstrict\-align
-.TP
-.B \-mno\-strict\-align
-Do not permit (do permit) unaligned accesses.
-.TP
-.B \-mold\-align
-Enable structure-alignment compatibility with Intel's gcc release version
-1.3 (based on gcc 1.37). Currently this is buggy in that
-.B #pragma align 1
-is always assumed as well, and cannot be turned off.
-.PP
-These `\|\c
-.B \-m\c
-\&\|' options are defined for the DEC Alpha implementations:
-.TP
-.B \-mno-soft-float
-.TP
-.B \-msoft-float
-Use (do not use) the hardware floating-point instructions for
-floating-point operations. When \c
-.B \-msoft-float\c
-\& is specified,
-functions in `\|\c
-.B libgcc1.c\c
-\&\|' will be used to perform floating-point
-operations. Unless they are replaced by routines that emulate the
-floating-point operations, or compiled in such a way as to call such
-emulations routines, these routines will issue floating-point
-operations. If you are compiling for an Alpha without floating-point
-operations, you must ensure that the library is built so as not to call
-them.
-.Sp
-Note that Alpha implementations without floating-point operations are
-required to have floating-point registers.
-.TP
-.B \-mfp-reg
-.TP
-.B \-mno-fp-regs
-Generate code that uses (does not use) the floating-point register set.
-.B \-mno-fp-regs\c
-\& implies \c
-.B \-msoft-float\c
-\&. If the floating-point
-register set is not used, floating point operands are passed in integer
-registers as if they were integers and floating-point results are passed
-in $0 instead of $f0. This is a non-standard calling sequence, so any
-function with a floating-point argument or return value called by code
-compiled with \c
-.B \-mno-fp-regs\c
-\& must also be compiled with that
-option.
-.Sp
-A typical use of this option is building a kernel that does not use,
-and hence need not save and restore, any floating-point registers.
-.PP
-These additional options are available on System V Release 4 for
-compatibility with other compilers on those systems:
-.TP
-.B \-G
-On SVr4 systems, \c
-.B gcc\c
-\& accepts the option `\|\c
-.B \-G\c
-\&\|' (and passes
-it to the system linker), for compatibility with other compilers.
-However, we suggest you use `\|\c
-.B \-symbolic\c
-\&\|' or `\|\c
-.B \-shared\c
-\&\|' as
-appropriate, instead of supplying linker options on the \c
-.B gcc
-command line.
-.TP
-.B \-Qy
-Identify the versions of each tool used by the compiler, in a
-.B .ident\c
-\& assembler directive in the output.
-.TP
-.B \-Qn
-Refrain from adding \c
-.B .ident\c
-\& directives to the output file (this is
-the default).
-.TP
-.BI "\-YP," "dirs"
-Search the directories \c
-.I dirs\c
-\&, and no others, for libraries
-specified with `\|\c
-.B \-l\c
-\&\|'. You can separate directory entries in
-.I dirs\c
-\& from one another with colons.
-.TP
-.BI "\-Ym," "dir"
-Look in the directory \c
-.I dir\c
-\& to find the M4 preprocessor.
-The assembler uses this option.
-.SH CODE GENERATION OPTIONS
-These machine-independent options control the interface conventions
-used in code generation.
-.PP
-Most of them begin with `\|\c
-\-f\c
-\&\|'. These options have both positive and negative forms; the negative form
-of `\|\c
-.B \-ffoo\c
-\&\|' would be `\|\c
-.B \-fno\-foo\c
-\&\|'. In the table below, only
-one of the forms is listed\(em\&the one which is not the default. You
-can figure out the other form by either removing `\|\c
-.B no\-\c
-\&\|' or adding
-it.
-.TP
-.B \-fnonnull\-objects
-Assume that objects reached through references are not null
-(C++ only).
-.Sp
-Normally, GNU C++ makes conservative assumptions about objects reached
-through references. For example, the compiler must check that \c
-.B a
-is not null in code like the following:
-.Sp
-obj &a = g ();
-a.f (2);
-.Sp
-Checking that references of this sort have non-null values requires
-extra code, however, and it is unnecessary for many programs. You can
-use `\|\c
-.B \-fnonnull-objects\c
-\&\|' to omit the checks for null, if your
-program doesn't require checking.
-.TP
-.B \-fpcc\-struct\-return
-Use the same convention for returning \c
-.B struct\c
-\& and \c
-.B union
-values that is used by the usual C compiler on your system. This
-convention is less efficient for small structures, and on many
-machines it fails to be reentrant; but it has the advantage of
-allowing intercallability between GCC-compiled code and PCC-compiled
-code.
-.TP
-.B \-freg\-struct\-return
-Use the convention that
-.B struct
-and
-.B union
-values are returned in registers when possible. This is more
-efficient for small structures than
-.BR \-fpcc\-struct\-return .
-.Sp
-If you specify neither
-.B \-fpcc\-struct\-return
-nor
-.BR \-freg\-struct\-return ,
-GNU CC defaults to whichever convention is standard for the target.
-If there is no standard convention, GNU CC defaults to
-.BR \-fpcc\-struct\-return .
-.TP
-.B \-fshort\-enums
-Allocate to an \c
-.B enum\c
-\& type only as many bytes as it needs for the
-declared range of possible values. Specifically, the \c
-.B enum\c
-\& type
-will be equivalent to the smallest integer type which has enough room.
-.TP
-.B \-fshort\-double
-Use the same size for
-.B double
-as for
-.B float
-\&.
-.TP
-.B \-fshared\-data
-Requests that the data and non-\c
-.B const\c
-\& variables of this
-compilation be shared data rather than private data. The distinction
-makes sense only on certain operating systems, where shared data is
-shared between processes running the same program, while private data
-exists in one copy per process.
-.TP
-.B \-fno\-common
-Allocate even uninitialized global variables in the bss section of the
-object file, rather than generating them as common blocks. This has the
-effect that if the same variable is declared (without \c
-.B extern\c
-\&) in
-two different compilations, you will get an error when you link them.
-The only reason this might be useful is if you wish to verify that the
-program will work on other systems which always work this way.
-.TP
-.B \-fno\-ident
-Ignore the `\|\c
-.B #ident\c
-\&\|' directive.
-.TP
-.B \-fno\-gnu\-linker
-Do not output global initializations (such as C++ constructors and
-destructors) in the form used by the GNU linker (on systems where the GNU
-linker is the standard method of handling them). Use this option when
-you want to use a non-GNU linker, which also requires using the
-.B collect2\c
-\& program to make sure the system linker includes
-constructors and destructors. (\c
-.B collect2\c
-\& is included in the GNU CC
-distribution.) For systems which \c
-.I must\c
-\& use \c
-.B collect2\c
-\&, the
-compiler driver \c
-.B gcc\c
-\& is configured to do this automatically.
-.TP
-.B \-finhibit-size-directive
-Don't output a \c
-.B .size\c
-\& assembler directive, or anything else that
-would cause trouble if the function is split in the middle, and the
-two halves are placed at locations far apart in memory. This option is
-used when compiling `\|\c
-.B crtstuff.c\c
-\&\|'; you should not need to use it
-for anything else.
-.TP
-.B \-fverbose-asm
-Put extra commentary information in the generated assembly code to
-make it more readable. This option is generally only of use to those
-who actually need to read the generated assembly code (perhaps while
-debugging the compiler itself).
-.TP
-.B \-fvolatile
-Consider all memory references through pointers to be volatile.
-.TP
-.B \-fvolatile\-global
-Consider all memory references to extern and global data items to
-be volatile.
-.TP
-.B \-fpic
-If supported for the target machines, generate position-independent code,
-suitable for use in a shared library.
-.TP
-.B \-fPIC
-If supported for the target machine, emit position-independent code,
-suitable for dynamic linking, even if branches need large displacements.
-.TP
-.BI "\-ffixed\-" "reg"
-Treat the register named \c
-.I reg\c
-\& as a fixed register; generated code
-should never refer to it (except perhaps as a stack pointer, frame
-pointer or in some other fixed role).
-.Sp
-.I reg\c
-\& must be the name of a register. The register names accepted
-are machine-specific and are defined in the \c
-.B REGISTER_NAMES
-macro in the machine description macro file.
-.Sp
-This flag does not have a negative form, because it specifies a
-three-way choice.
-.TP
-.BI "\-fcall\-used\-" "reg"
-Treat the register named \c
-.I reg\c
-\& as an allocable register that is
-clobbered by function calls. It may be allocated for temporaries or
-variables that do not live across a call. Functions compiled this way
-will not save and restore the register \c
-.I reg\c
-\&.
-.Sp
-Use of this flag for a register that has a fixed pervasive role in the
-machine's execution model, such as the stack pointer or frame pointer,
-will produce disastrous results.
-.Sp
-This flag does not have a negative form, because it specifies a
-three-way choice.
-.TP
-.BI "\-fcall\-saved\-" "reg"
-Treat the register named \c
-.I reg\c
-\& as an allocable register saved by
-functions. It may be allocated even for temporaries or variables that
-live across a call. Functions compiled this way will save and restore
-the register \c
-.I reg\c
-\& if they use it.
-.Sp
-Use of this flag for a register that has a fixed pervasive role in the
-machine's execution model, such as the stack pointer or frame pointer,
-will produce disastrous results.
-.Sp
-A different sort of disaster will result from the use of this flag for
-a register in which function values may be returned.
-.Sp
-This flag does not have a negative form, because it specifies a
-three-way choice.
-.SH PRAGMAS
-Two `\|\c
-.B #pragma\c
-\&\|' directives are supported for GNU C++, to permit using the same
-header file for two purposes: as a definition of interfaces to a given
-object class, and as the full definition of the contents of that object class.
-.TP
-.B #pragma interface
-(C++ only.)
-Use this directive in header files that define object classes, to save
-space in most of the object files that use those classes. Normally,
-local copies of certain information (backup copies of inline member
-functions, debugging information, and the internal tables that
-implement virtual functions) must be kept in each object file that
-includes class definitions. You can use this pragma to avoid such
-duplication. When a header file containing `\|\c
-.B #pragma interface\c
-\&\|' is included in a compilation, this auxiliary information
-will not be generated (unless the main input source file itself uses
-`\|\c
-.B #pragma implementation\c
-\&\|'). Instead, the object files will contain references to be
-resolved at link time.
-.TP
-.B #pragma implementation
-.TP
-\fB#pragma implementation "\fP\fIobjects\fP\fB.h"\fP
-(C++ only.)
-Use this pragma in a main input file, when you want full output from
-included header files to be generated (and made globally visible).
-The included header file, in turn, should use `\|\c
-.B #pragma interface\c
-\&\|'.
-Backup copies of inline member functions, debugging information, and
-the internal tables used to implement virtual functions are all
-generated in implementation files.
-.Sp
-If you use `\|\c
-.B #pragma implementation\c
-\&\|' with no argument, it applies to an include file with the same
-basename as your source file; for example, in `\|\c
-.B allclass.cc\c
-\&\|', `\|\c
-.B #pragma implementation\c
-\&\|' by itself is equivalent to `\|\c
-.B
-#pragma implementation "allclass.h"\c
-\&\|'. Use the string argument if you want a single implementation
-file to include code from multiple header files.
-.Sp
-There is no way to split up the contents of a single header file into
-multiple implementation files.
-.SH FILES
-.nf
-.ta \w'LIBDIR/g++\-include 'u
-file.c C source file
-file.h C header (preprocessor) file
-file.i preprocessed C source file
-file.C C++ source file
-file.cc C++ source file
-file.cxx C++ source file
-file.m Objective-C source file
-file.s assembly language file
-file.o object file
-a.out link edited output
-\fITMPDIR\fR/cc\(** temporary files
-\fILIBDIR\fR/cpp preprocessor
-\fILIBDIR\fR/cc1 compiler for C
-\fILIBDIR\fR/cc1plus compiler for C++
-\fILIBDIR\fR/collect linker front end needed on some machines
-\fILIBDIR\fR/libgcc.a GCC subroutine library
-/lib/crt[01n].o start-up routine
-\fILIBDIR\fR/ccrt0 additional start-up routine for C++
-/lib/libc.a standard C library, see
-.IR intro (3)
-/usr/include standard directory for \fB#include\fP files
-\fILIBDIR\fR/include standard gcc directory for \fB#include\fP files
-\fILIBDIR\fR/g++\-include additional g++ directory for \fB#include\fP
-.Sp
-.fi
-.I LIBDIR
-is usually
-.B /usr/local/lib/\c
-.IR machine / version .
-.br
-.I TMPDIR
-comes from the environment variable
-.B TMPDIR
-(default
-.B /usr/tmp
-if available, else
-.B /tmp\c
-\&).
-.SH "SEE ALSO"
-cpp(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1).
-.br
-.RB "`\|" gcc "\|', `\|" cpp \|',
-.RB "`\|" as "\|', `\|" ld \|',
-and
-.RB `\| gdb \|'
-entries in
-.B info\c
-\&.
-.br
-.I
-Using and Porting GNU CC (for version 2.0)\c
-, Richard M. Stallman;
-.I
-The C Preprocessor\c
-, Richard M. Stallman;
-.I
-Debugging with GDB: the GNU Source-Level Debugger\c
-, Richard M. Stallman and Roland H. Pesch;
-.I
-Using as: the GNU Assembler\c
-, Dean Elsner, Jay Fenlason & friends;
-.I
-ld: the GNU linker\c
-, Steve Chamberlain and Roland Pesch.
-.SH BUGS
-For instructions on reporting bugs, see the GCC manual.
-.SH COPYING
-Copyright
-.if t \(co
-1991, 1992, 1993 Free Software Foundation, Inc.
-.PP
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-.PP
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-.PP
-Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be included in
-translations approved by the Free Software Foundation instead of in
-the original English.
-.SH AUTHORS
-See the GNU CC Manual for the contributors to GNU CC.
diff --git a/contrib/gcc/objc/sendmsg.c b/contrib/gcc/objc/sendmsg.c
deleted file mode 100644
index 245b8b9eaf794..0000000000000
--- a/contrib/gcc/objc/sendmsg.c
+++ /dev/null
@@ -1,651 +0,0 @@
-/* GNU Objective C Runtime message lookup
- Copyright (C) 1993, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
- Contributed by Kresten Krab Thorup
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify it under the
-terms of the GNU General Public License as published by the Free Software
-Foundation; either version 2, or (at your option) any later version.
-
-GNU CC is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-details.
-
-You should have received a copy of the GNU General Public License along with
-GNU CC; see the file COPYING. If not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
-
-/* As a special exception, if you link this library with files compiled with
- GCC to produce an executable, this does not cause the resulting executable
- to be covered by the GNU General Public License. This exception does not
- however invalidate any other reasons why the executable file might be
- covered by the GNU General Public License. */
-
-#include "../tconfig.h"
-#include "runtime.h"
-#include "sarray.h"
-#include "encoding.h"
-#include "runtime-info.h"
-
-/* this is how we hack STRUCT_VALUE to be 1 or 0 */
-#define gen_rtx(args...) 1
-#define gen_rtx_MEM(args...) 1
-#define rtx int
-
-#if !defined(STRUCT_VALUE) || STRUCT_VALUE == 0
-#define INVISIBLE_STRUCT_RETURN 1
-#else
-#define INVISIBLE_STRUCT_RETURN 0
-#endif
-
-/* The uninstalled dispatch table */
-struct sarray* __objc_uninstalled_dtable = 0; /* !T:MUTEX */
-
-/* Send +initialize to class */
-static void __objc_send_initialize(Class);
-
-static void __objc_install_dispatch_table_for_class (Class);
-
-/* Forward declare some functions */
-static void __objc_init_install_dtable(id, SEL);
-
-/* Various forwarding functions that are used based upon the
- return type for the selector.
- __objc_block_forward for structures.
- __objc_double_forward for floats/doubles.
- __objc_word_forward for pointers or types that fit in registers.
- */
-static double __objc_double_forward(id, SEL, ...);
-static id __objc_word_forward(id, SEL, ...);
-typedef struct { id many[8]; } __big;
-#if INVISIBLE_STRUCT_RETURN
-static __big
-#else
-static id
-#endif
-__objc_block_forward(id, SEL, ...);
-static Method_t search_for_method_in_hierarchy (Class class, SEL sel);
-Method_t search_for_method_in_list(MethodList_t list, SEL op);
-id nil_method(id, SEL, ...);
-
-/* Given a selector, return the proper forwarding implementation. */
-__inline__
-IMP
-__objc_get_forward_imp (SEL sel)
-{
- const char *t = sel->sel_types;
-
- if (t && (*t == '[' || *t == '(' || *t == '{')
-#ifdef OBJC_MAX_STRUCT_BY_VALUE
- && objc_sizeof_type(t) > OBJC_MAX_STRUCT_BY_VALUE
-#endif
- )
- return (IMP)__objc_block_forward;
- else if (t && (*t == 'f' || *t == 'd'))
- return (IMP)__objc_double_forward;
- else
- return (IMP)__objc_word_forward;
-}
-
-/* Given a class and selector, return the selector's implementation. */
-__inline__
-IMP
-get_imp (Class class, SEL sel)
-{
- void* res = sarray_get_safe (class->dtable, (size_t) sel->sel_id);
- if (res == 0)
- {
- /* Not a valid method */
- if(class->dtable == __objc_uninstalled_dtable)
- {
- /* The dispatch table needs to be installed. */
- objc_mutex_lock(__objc_runtime_mutex);
- __objc_install_dispatch_table_for_class (class);
- objc_mutex_unlock(__objc_runtime_mutex);
- /* Call ourselves with the installed dispatch table
- and get the real method */
- res = get_imp(class, sel);
- }
- else
- {
- /* The dispatch table has been installed so the
- method just doesn't exist for the class.
- Return the forwarding implementation. */
- res = __objc_get_forward_imp(sel);
- }
- }
- return res;
-}
-
-/* Query if an object can respond to a selector, returns YES if the
-object implements the selector otherwise NO. Does not check if the
-method can be forwarded. */
-__inline__
-BOOL
-__objc_responds_to (id object, SEL sel)
-{
- void* res;
-
- /* Install dispatch table if need be */
- if (object->class_pointer->dtable == __objc_uninstalled_dtable)
- {
- objc_mutex_lock(__objc_runtime_mutex);
- __objc_install_dispatch_table_for_class (object->class_pointer);
- objc_mutex_unlock(__objc_runtime_mutex);
- }
-
- /* Get the method from the dispatch table */
- res = sarray_get_safe (object->class_pointer->dtable, (size_t) sel->sel_id);
- return (res != 0);
-}
-
-/* This is the lookup function. All entries in the table are either a
- valid method *or* zero. If zero then either the dispatch table
- needs to be installed or it doesn't exist and forwarding is attempted. */
-__inline__
-IMP
-objc_msg_lookup(id receiver, SEL op)
-{
- IMP result;
- if(receiver)
- {
- result = sarray_get_safe (receiver->class_pointer->dtable,
- (sidx)op->sel_id);
- if (result == 0)
- {
- /* Not a valid method */
- if(receiver->class_pointer->dtable == __objc_uninstalled_dtable)
- {
- /* The dispatch table needs to be installed.
- This happens on the very first method call to the class. */
- __objc_init_install_dtable(receiver, op);
-
- /* Get real method for this in newly installed dtable */
- result = get_imp(receiver->class_pointer, op);
- }
- else
- {
- /* The dispatch table has been installed so the
- method just doesn't exist for the class.
- Attempt to forward the method. */
- result = __objc_get_forward_imp(op);
- }
- }
- return result;
- }
- else
- return nil_method;
-}
-
-IMP
-objc_msg_lookup_super (Super_t super, SEL sel)
-{
- if (super->self)
- return get_imp (super->class, sel);
- else
- return nil_method;
-}
-
-int method_get_sizeof_arguments (Method*);
-
-retval_t
-objc_msg_sendv(id object, SEL op, arglist_t arg_frame)
-{
- Method* m = class_get_instance_method(object->class_pointer, op);
- const char *type;
- *((id*)method_get_first_argument (m, arg_frame, &type)) = object;
- *((SEL*)method_get_next_argument (arg_frame, &type)) = op;
- return __builtin_apply((apply_t)m->method_imp,
- arg_frame,
- method_get_sizeof_arguments (m));
-}
-
-void
-__objc_init_dispatch_tables()
-{
- __objc_uninstalled_dtable
- = sarray_new(200, 0);
-}
-
-/* This function is called by objc_msg_lookup when the
- dispatch table needs to be installed; thus it is called once
- for each class, namely when the very first message is sent to it. */
-static void
-__objc_init_install_dtable(id receiver, SEL op)
-{
- /* This may happen, if the programmer has taken the address of a
- method before the dtable was initialized... too bad for him! */
- if(receiver->class_pointer->dtable != __objc_uninstalled_dtable)
- return;
-
- objc_mutex_lock(__objc_runtime_mutex);
-
- if(CLS_ISCLASS(receiver->class_pointer))
- {
- /* receiver is an ordinary object */
- assert(CLS_ISCLASS(receiver->class_pointer));
-
- /* install instance methods table */
- __objc_install_dispatch_table_for_class (receiver->class_pointer);
-
- /* call +initialize -- this will in turn install the factory
- dispatch table if not already done :-) */
- __objc_send_initialize(receiver->class_pointer);
- }
- else
- {
- /* receiver is a class object */
- assert(CLS_ISCLASS((Class)receiver));
- assert(CLS_ISMETA(receiver->class_pointer));
-
- /* Install real dtable for factory methods */
- __objc_install_dispatch_table_for_class (receiver->class_pointer);
-
- if (strcmp (sel_get_name (op), "initialize"))
- __objc_send_initialize((Class)receiver);
- else
- CLS_SETINITIALIZED((Class)receiver);
- }
- objc_mutex_unlock(__objc_runtime_mutex);
-}
-
-/* Install dummy table for class which causes the first message to
- that class (or instances hereof) to be initialized properly */
-void
-__objc_install_premature_dtable(Class class)
-{
- assert(__objc_uninstalled_dtable);
- class->dtable = __objc_uninstalled_dtable;
-}
-
-/* Send +initialize to class if not already done */
-static void
-__objc_send_initialize(Class class)
-{
- /* This *must* be a class object */
- assert(CLS_ISCLASS(class));
- assert(!CLS_ISMETA(class));
-
- if (!CLS_ISINITIALIZED(class))
- {
- CLS_SETINITIALIZED(class);
- CLS_SETINITIALIZED(class->class_pointer);
-
- if(class->super_class)
- __objc_send_initialize(class->super_class);
-
- {
- SEL op = sel_register_name ("initialize");
- Class tmpclass = class;
- IMP imp = 0;
-
- while (!imp && tmpclass) {
- MethodList_t method_list = tmpclass->class_pointer->methods;
-
- while(!imp && method_list) {
- int i;
- Method_t method;
-
- for (i=0;imethod_count;i++) {
- method = &(method_list->method_list[i]);
- if (method->method_name
- && method->method_name->sel_id == op->sel_id) {
- imp = method->method_imp;
- break;
- }
- }
-
- method_list = method_list->method_next;
-
- }
-
- tmpclass = tmpclass->super_class;
- }
- if (imp)
- (*imp)((id)class, op);
-
- }
- }
-}
-
-/* Walk on the methods list of class and install the methods in the reverse
- order of the lists. Since methods added by categories are before the methods
- of class in the methods list, this allows categories to substitute methods
- declared in class. However if more than one category replaces the same
- method nothing is guaranteed about what method will be used.
- Assumes that __objc_runtime_mutex is locked down. */
-static void
-__objc_install_methods_in_dtable (Class class, MethodList_t method_list)
-{
- int i;
-
- if (!method_list)
- return;
-
- if (method_list->method_next)
- __objc_install_methods_in_dtable (class, method_list->method_next);
-
- for (i = 0; i < method_list->method_count; i++)
- {
- Method_t method = &(method_list->method_list[i]);
- sarray_at_put_safe (class->dtable,
- (sidx) method->method_name->sel_id,
- method->method_imp);
- }
-}
-
-/* Assumes that __objc_runtime_mutex is locked down. */
-static void
-__objc_install_dispatch_table_for_class (Class class)
-{
- Class super;
-
- /* If the class has not yet had its class links resolved, we must
- re-compute all class links */
- if(!CLS_ISRESOLV(class))
- __objc_resolve_class_links();
-
- super = class->super_class;
-
- if (super != 0 && (super->dtable == __objc_uninstalled_dtable))
- __objc_install_dispatch_table_for_class (super);
-
- /* Allocate dtable if necessary */
- if (super == 0)
- {
- objc_mutex_lock(__objc_runtime_mutex);
- class->dtable = sarray_new (__objc_selector_max_index, 0);
- objc_mutex_unlock(__objc_runtime_mutex);
- }
- else
- class->dtable = sarray_lazy_copy (super->dtable);
-
- __objc_install_methods_in_dtable (class, class->methods);
-}
-
-void
-__objc_update_dispatch_table_for_class (Class class)
-{
- Class next;
- struct sarray *arr;
-
- /* not yet installed -- skip it */
- if (class->dtable == __objc_uninstalled_dtable)
- return;
-
- objc_mutex_lock(__objc_runtime_mutex);
-
- arr = class->dtable;
- __objc_install_premature_dtable (class); /* someone might require it... */
- sarray_free (arr); /* release memory */
-
- /* could have been lazy... */
- __objc_install_dispatch_table_for_class (class);
-
- if (class->subclass_list) /* Traverse subclasses */
- for (next = class->subclass_list; next; next = next->sibling_class)
- __objc_update_dispatch_table_for_class (next);
-
- objc_mutex_unlock(__objc_runtime_mutex);
-}
-
-
-/* This function adds a method list to a class. This function is
- typically called by another function specific to the run-time. As
- such this function does not worry about thread safe issues.
-
- This one is only called for categories. Class objects have their
- methods installed right away, and their selectors are made into
- SEL's by the function __objc_register_selectors_from_class. */
-void
-class_add_method_list (Class class, MethodList_t list)
-{
- int i;
-
- /* Passing of a linked list is not allowed. Do multiple calls. */
- assert (!list->method_next);
-
- /* Check for duplicates. */
- for (i = 0; i < list->method_count; ++i)
- {
- Method_t method = &list->method_list[i];
-
- if (method->method_name) /* Sometimes these are NULL */
- {
- /* This is where selector names are transmogrified to SEL's */
- method->method_name =
- sel_register_typed_name ((const char*)method->method_name,
- method->method_types);
- }
- }
-
- /* Add the methods to the class's method list. */
- list->method_next = class->methods;
- class->methods = list;
-
- /* Update the dispatch table of class */
- __objc_update_dispatch_table_for_class (class);
-}
-
-Method_t
-class_get_instance_method(Class class, SEL op)
-{
- return search_for_method_in_hierarchy(class, op);
-}
-
-Method_t
-class_get_class_method(MetaClass class, SEL op)
-{
- return search_for_method_in_hierarchy(class, op);
-}
-
-
-/* Search for a method starting from the current class up its hierarchy.
- Return a pointer to the method's method structure if found. NULL
- otherwise. */
-
-static Method_t
-search_for_method_in_hierarchy (Class cls, SEL sel)
-{
- Method_t method = NULL;
- Class class;
-
- if (! sel_is_mapped (sel))
- return NULL;
-
- /* Scan the method list of the class. If the method isn't found in the
- list then step to its super class. */
- for (class = cls; ((! method) && class); class = class->super_class)
- method = search_for_method_in_list (class->methods, sel);
-
- return method;
-}
-
-
-
-/* Given a linked list of method and a method's name. Search for the named
- method's method structure. Return a pointer to the method's method
- structure if found. NULL otherwise. */
-Method_t
-search_for_method_in_list (MethodList_t list, SEL op)
-{
- MethodList_t method_list = list;
-
- if (! sel_is_mapped (op))
- return NULL;
-
- /* If not found then we'll search the list. */
- while (method_list)
- {
- int i;
-
- /* Search the method list. */
- for (i = 0; i < method_list->method_count; ++i)
- {
- Method_t method = &method_list->method_list[i];
-
- if (method->method_name)
- if (method->method_name->sel_id == op->sel_id)
- return method;
- }
-
- /* The method wasn't found. Follow the link to the next list of
- methods. */
- method_list = method_list->method_next;
- }
-
- return NULL;
-}
-
-static retval_t __objc_forward (id object, SEL sel, arglist_t args);
-
-/* Forwarding pointers/integers through the normal registers */
-static id
-__objc_word_forward (id rcv, SEL op, ...)
-{
- void *args, *res;
-
- args = __builtin_apply_args ();
- res = __objc_forward (rcv, op, args);
- if (res)
- __builtin_return (res);
- else
- return res;
-}
-
-/* Specific routine for forwarding floats/double because of
- architectural differences on some processors. i386s for
- example which uses a floating point stack versus general
- registers for floating point numbers. This forward routine
- makes sure that GCC restores the proper return values */
-static double
-__objc_double_forward (id rcv, SEL op, ...)
-{
- void *args, *res;
-
- args = __builtin_apply_args ();
- res = __objc_forward (rcv, op, args);
- __builtin_return (res);
-}
-
-#if INVISIBLE_STRUCT_RETURN
-static __big
-#else
-static id
-#endif
-__objc_block_forward (id rcv, SEL op, ...)
-{
- void *args, *res;
-
- args = __builtin_apply_args ();
- res = __objc_forward (rcv, op, args);
- if (res)
- __builtin_return (res);
- else
-#if INVISIBLE_STRUCT_RETURN
- return (__big) {{0, 0, 0, 0, 0, 0, 0, 0}};
-#else
- return nil;
-#endif
-}
-
-
-/* This function is installed in the dispatch table for all methods which are
- not implemented. Thus, it is called when a selector is not recognized. */
-static retval_t
-__objc_forward (id object, SEL sel, arglist_t args)
-{
- IMP imp;
- static SEL frwd_sel = 0; /* !T:SAFE2 */
- SEL err_sel;
-
- /* first try if the object understands forward:: */
- if (!frwd_sel)
- frwd_sel = sel_get_any_uid("forward::");
-
- if (__objc_responds_to (object, frwd_sel))
- {
- imp = get_imp(object->class_pointer, frwd_sel);
- return (*imp)(object, frwd_sel, sel, args);
- }
-
- /* If the object recognizes the doesNotRecognize: method then we're going
- to send it. */
- err_sel = sel_get_any_uid ("doesNotRecognize:");
- if (__objc_responds_to (object, err_sel))
- {
- imp = get_imp (object->class_pointer, err_sel);
- return (*imp) (object, err_sel, sel);
- }
-
- /* The object doesn't recognize the method. Check for responding to
- error:. If it does then sent it. */
- {
- size_t strlen (const char*);
- char msg[256 + strlen ((const char*)sel_get_name (sel))
- + strlen ((const char*)object->class_pointer->name)];
-
- sprintf (msg, "(%s) %s does not recognize %s",
- (CLS_ISMETA(object->class_pointer)
- ? "class"
- : "instance" ),
- object->class_pointer->name, sel_get_name (sel));
-
- err_sel = sel_get_any_uid ("error:");
- if (__objc_responds_to (object, err_sel))
- {
- imp = get_imp (object->class_pointer, err_sel);
- return (*imp) (object, sel_get_any_uid ("error:"), msg);
- }
-
- /* The object doesn't respond to doesNotRecognize: or error:; Therefore,
- a default action is taken. */
- objc_error (object, OBJC_ERR_UNIMPLEMENTED, "%s\n", msg);
-
- return 0;
- }
-}
-
-void
-__objc_print_dtable_stats()
-{
- int total = 0;
-
- objc_mutex_lock(__objc_runtime_mutex);
-
- printf("memory usage: (%s)\n",
-#ifdef OBJC_SPARSE2
- "2-level sparse arrays"
-#else
- "3-level sparse arrays"
-#endif
- );
-
- printf("arrays: %d = %ld bytes\n", narrays,
- (long)narrays*sizeof(struct sarray));
- total += narrays*sizeof(struct sarray);
- printf("buckets: %d = %ld bytes\n", nbuckets,
- (long)nbuckets*sizeof(struct sbucket));
- total += nbuckets*sizeof(struct sbucket);
-
- printf("idxtables: %d = %ld bytes\n", idxsize, (long)idxsize*sizeof(void*));
- total += idxsize*sizeof(void*);
- printf("-----------------------------------\n");
- printf("total: %d bytes\n", total);
- printf("===================================\n");
-
- objc_mutex_unlock(__objc_runtime_mutex);
-}
-
-/* Returns the uninstalled dispatch table indicator.
- If a class' dispatch table points to __objc_uninstalled_dtable
- then that means it needs its dispatch table to be installed. */
-__inline__
-struct sarray*
-objc_get_uninstalled_dtable()
-{
- return __objc_uninstalled_dtable;
-}
diff --git a/contrib/libf2c/ChangeLog.egcs b/contrib/libf2c/ChangeLog.egcs
deleted file mode 100644
index e0802612e68b4..0000000000000
--- a/contrib/libf2c/ChangeLog.egcs
+++ /dev/null
@@ -1,200 +0,0 @@
-Thu Jul 16 00:58:52 1998 Jeffrey A Law (law@cygnus.com)
-
- * libU77/Makefile.in: Missed one config.h.in -> config.hin change.
-
- * g2c.hin: Renamed from g2c.h.in.
- * Makefile.in, configure.in: Changed as needed.
- * configure: Rebuilt.
-
- * libU77/config.hin: Renamed from libU77/config.h.in.
- * Makefile.in, configure.in: Changed as needed.
- * configure: Rebuilt.
-
-Tue Jul 14 21:35:30 1998 Gerald Pfeifer
-
- * Makefile.in (all): Invoke $(MAKE) instead of just make.
-
-Tue Jul 14 02:16:34 1998 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in: stamp-lib* -> s-lib*.
- * libU77/Makefile.in: Likewise.
- * libF77/Makefile.in: Likewise.
- * libI77/Makefile.in: Likewise.
-
- * libU77/Makefile.in (ALL_CFLAGS): Add -I$(F2C_H_DIR).
-
-1998-07-06 Mike Stump
-
- * Makefile.in (clean): Don't remove Makefiles, that is done in
- distclean.
-
-Sat Jun 27 23:04:49 1998 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (FLAGS_TO_PASS, case G2C_H_DIR): Use $(TARGET_SUBDIR)
- instead of hardcoding "libraries".
-
-1998-06-26 Manfred Hollstein
-
- * Makefile.in (gcc_version_trigger): Add new macro.
- (config.status): Add dependency upon $(gcc_version_trigger).
-
- * configure.in (gcc_version_trigger): New variable; initialize
- using value from toplevel configure; add AC_SUBST for it.
- (gcc_version): Change initialization to use this new variable.
- * configure: Regenerate.
-
-1998-06-24 Manfred Hollstein
-
- * Makefile.in (version): Rename to gcc_version.
- * configure.in (version): Likewise.
- (gcc_version): Add code to use an option passed from parent configure.
- * configure: Regenerate.
-
-1998-06-21 Dave Love
-
- * configure.in (version, target_alias): Define.
-
- * Makefile.in (version, target_alias, libsubdir): Define.
- (install): Remove check for libsubdir.
-
-Mon Apr 27 22:52:31 1998 Richard Henderson
-
- * libU77/ltime_.c: Bounce the ftnint argument through a local time_t.
- * libU77/gmtime_.c: Likewise.
-
-Sun Apr 26 18:07:56 1998 Richard Henderson
-
- * configure.in: Adjust include paths in F2C_INTEGER and F2C_LONGINT
- tests to work out of the build directory.
-
-1998-02-17 Dave Love
-
- * libU77/u77-test.f: Tweak some o/p.
-
- * libU77/Makefile.in (check): Use -L for new directory structure.
-
- * Makefile.in (check): Run the u77 check.
- (config.status, Makefile): New targets.
-
-Wed Feb 11 01:46:20 1998 Manfred Hollstein
-
- * Makefile.in ($(lib)): Call $(AR) repeatedly to avoid overflowing
- argument size limit on ancious System V.
-
-Sun Feb 8 00:32:17 1998 Manfred Hollstein
-
- * Makefile.in: Add `info install-info clean-info check dvi' targets.
-
-Mon Feb 2 11:08:49 1998 Richard Henderson
-
- * configure.in: Update F2C_INTEGER and F2C_LONGINT tests
- for the new placement in the hierarchy.
-
-Sun Feb 1 02:36:33 1998 Richard Henderson
-
- * Previous contents of gcc/f/runtime moved into toplevel
- "libf2c" directory.
-
-Sun Feb 1 01:42:47 1998 Mumit Khan
-
- * libU77/configure.in (getlogin,getgid,getuid, kill,link,ttyname):
- Check.
- * libU77/config.h.in (HAVE_GETLOGIN, HAVE_GETGID, HAVE_GETUID,
- HAVE_KILL, HAVE_LINK, HAVE_TTYNAME): New defs.
- * libU77/getlog_.c: Conditionalize for target platform. Set errno
- to ENOSYS if target libc doesn't have the function.
- * libU77/getgid_.c: Likewise.
- * libU77/getuid_.c: Likewise.
- * libU77/kill_.c: Likewise.
- * libU77/link_.c: Likewise.
- * libU77/ttynam_.c: Likewise.
-
-Sun Jan 18 20:01:37 1998 Toon Moene
-
- * libI77/backspace.c: (f_back): Use type `uiolen' to determine size
- of record length specifier.
-
-Sat Jan 17 22:40:31 1998 Mumit Khan
-
- * libU77/configure.in (sys/param.h,sys/times.h): Check.
- (times,alarm): Likewise.
- * libU77/config.h.in (HAVE_SYS_PARAM_H, HAVE_SYS_TIMES_H,
- HAVE_ALARM, HAVE_TIMES): New defs.
- * libU77/alarm_.c: Conditionalize for target platform. Set errno
- to ENOSYS if target libc doesn't have the function.
- * libU77/dtime_.c: Likewise.
- * libU77/etime_.c: Likewise.
- * libU77/sys_clock_.c: Likewise.
-
- * configure.in (NON_UNIX_STDIO): Define if MINGW32.
- (NON_ANSI_RW_MODE): Do not define for CYGWIN32 or MINGW32.
-
- * libI77/rawio.h: Don't providing conflicting declarations for
- read() and write(). MINGW32 header files use "const" quals.
-
- * libF77/s_paus.c: _WIN32 does not have pause().
-
-Tue Nov 18 09:49:04 1997 Mumit Khan (khan@xraylith.wisc.edu)
-
- * libI77/close.c (f_exit): Reset f__init so that f_clos does not
- (incorrectly) think there is an I/O recursion when program is
- interrupted.
-
-Sat Nov 1 18:03:42 1997 Jeffrey A Law (law@cygnus.com)
-
- * libF77/signal_.c: Undo last change until we can fix it right.
-
-Wed Oct 15 10:06:29 1997 Richard Henderson
-
- * libF77/signal_.c (G77_signal_0): Make return type sig_pf as well.
- * libI77/fio.h: Include if STDC_HEADERS.
- * libU77/chmod_.c: Likewise.
-
-Tue Oct 7 18:22:10 1997 Richard Henderson
-
- * Makefile.in (CGFLAGS): Don't force -g0.
- * libF77/Makefile.in, libI77/Makefile.in, libU77/Makefile.in: Likewise.
-
-Mon Oct 6 14:16:46 1997 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (distclean): Do a better job at cleaning up.
-
-Wed Oct 1 01:46:16 1997 Philippe De Muyter
-
- * libU77/sys_clock_.c: File renamed from system_clock_.c.
- * libU77/Makefile.in, Makefile.in : Reference sys_clock_.*, not
- system_clock_.*.
- * libU77/dtime_.c (clk_tck): Try also HZ macro.
- * libU77/access.c (G77_access_0): Check malloc return value against 0,
- not NULL.
- * libU77/getlog_.c, libU77/ttynam_.c, libU77/chdir_.c: Ditto.
- * libU77/chmod_.c, libU77/rename_.c: Ditto.
-
-1997-09-19 Dave Love
-
- * libU77/dtime_.c (G77_dtime_0): Fix types in HAVE_GETRUSAGE case
- so as not to truncate results to integer values.
- * libU77/Version.c: Bump.
-
-Thu Sep 18 16:58:46 1997 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (stamp-lib): Don't use '$?', explicitly
- list the variables containing the object files to include
- in libf2c.a
-
-Fri Sep 5 00:18:17 1997 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (clean): Don't remove config.cache.
- (distclean): Do it here instead.
-
-Tue Aug 26 20:14:08 1997 Robert Lipe (robertl@dgii.com)
-
- * hostnm_.c: Include errno.h
-
-Mon Aug 25 23:26:05 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
-
- * Makefile.in (mostlyclean, clean): Check if Makefile exists
- before using it. Remove stamp-*.
- (stamp-libi77, stamp-libf77, stamp-libu77): New.
- (stamp-lib): Only depend on stamp-libi77 stamp-libf77
- stamp-libu77
diff --git a/contrib/libf2c/libI77/rawio.h b/contrib/libf2c/libI77/rawio.h
deleted file mode 100644
index f3a59fdab4dc1..0000000000000
--- a/contrib/libf2c/libI77/rawio.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef KR_headers
-#if defined (MSDOS) && !defined (GO32)
-#include "io.h"
-#ifndef WATCOM
-#define close _close
-#define creat _creat
-#define open _open
-#define read _read
-#define write _write
-#endif /*WATCOM*/
-#endif /*MSDOS*/
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if !(defined (MSDOS) && !defined (GO32))
-#ifdef OPEN_DECL
-extern int creat(const char*,int), open(const char*,int);
-#endif
-extern int close(int);
-#if !(defined(_WIN32) && !defined(__CYGWIN32__))
-extern int read(int,void*,size_t), write(int,void*,size_t);
-#endif
-extern int unlink(const char*);
-#ifndef _POSIX_SOURCE
-#ifndef NON_UNIX_STDIO
-extern FILE *fdopen(int, const char*);
-#endif
-#endif
-#endif /*KR_HEADERS*/
-
-extern char *mktemp(char*);
-
-#ifdef __cplusplus
- }
-#endif
-#endif
-
-#ifndef NO_FCNTL
-#include
-#endif
-
-#ifndef O_WRONLY
-#define O_RDONLY 0
-#define O_WRONLY 1
-#endif
diff --git a/contrib/libg++/COPYING b/contrib/libg++/COPYING
deleted file mode 100644
index a43ea2126fb6b..0000000000000
--- a/contrib/libg++/COPYING
+++ /dev/null
@@ -1,339 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C) 19yy
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- , 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/contrib/libg++/COPYING.LIB b/contrib/libg++/COPYING.LIB
deleted file mode 100644
index eb685a5ec981b..0000000000000
--- a/contrib/libg++/COPYING.LIB
+++ /dev/null
@@ -1,481 +0,0 @@
- GNU LIBRARY GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the library GPL. It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it. You can use it for
-your libraries, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if
-you distribute copies of the library, or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
- Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library. If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software. To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
- Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs. This
-license, the GNU Library General Public License, applies to certain
-designated libraries. This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
- The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it. Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program. However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
- Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries. We
-concluded that weaker conditions might promote sharing better.
-
- However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves. This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them. (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.) The hope is that this
-will lead to faster development of free libraries.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, while the latter only
-works together with the library.
-
- Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-
- GNU LIBRARY GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License"). Each licensee is
-addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- c) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- d) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Library General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- , 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/contrib/libg++/include/ChangeLog b/contrib/libg++/include/ChangeLog
deleted file mode 100644
index 228edd5a9be46..0000000000000
--- a/contrib/libg++/include/ChangeLog
+++ /dev/null
@@ -1,990 +0,0 @@
-Tue Jun 4 18:58:16 1996 Ian Lance Taylor
-
- * bfdlink.h (struct bfd_link_info): Add notice_all field.
-
-Fri Apr 26 10:33:12 1996 Doug Evans
-
- * demangle.h (#ifdef IN_GCC): #include "gansidecl.h".
- (PROTO,PTR,const): Delete.
-
-Mon Apr 22 17:27:42 1996 Ian Lance Taylor
-
- * bfdlink.h (struct bfd_link_info): Add traditional_format field.
-
-Mon Apr 15 15:16:56 1996 Doug Evans
-
- * libiberty.h (choose_temp_base): Add prototype.
-
-Tue Mar 12 17:29:46 1996 Ian Lance Taylor
-
- * bfdlink.h (bfd_wrapped_link_hash_lookup): Declare.
- (struct bfd_link_info): Add wrap_hash field.
-
-Wed Feb 14 16:49:17 1996 Martin Anantharaman
-
- * ieee.h (ieee_record_enum_type): Define
- ieee_external_reference_info_enum.
-
-Fri Feb 2 17:09:25 1996 Doug Evans
-
- * dis-asm.h (DISASM_RAW_INSN): Delete.
-
-Tue Jan 23 09:21:47 1996 Doug Evans
-
- * dis-asm.h (INIT_DISASSEMBLE_INFO): Set endian to BFD_ENDIAN_UNKNOWN.
- New argument FPRINTF_FUNC.
-
-Mon Jan 22 16:37:59 1996 Doug Evans
-
- * dis-asm.h (disassemble_info): New members arch, mach, endian.
- (INIT_DISASSEMBLE_INFO): Initialize them.
- (DISASM_RAW_INSN{,FLAG}): Define.
-
-Thu Jan 18 11:32:38 1996 Ian Lance Taylor
-
- * demangle.h (cplus_demangle_opname): Change opname parameter to
- const char *.
- (cplus_mangle_opname): Change return type and opname parameter to
- const char *.
-
-Fri Jan 5 00:01:22 1996 Ian Lance Taylor
-
- * ieee.h (enum ieee_record): Add ieee_asn_record_enum,
- ieee_at_record_enum, ieee_ty_record_enum, ieee_atn_record_enum,
- ieee_bb_record_enum, and ieee_be_record_enum.
-
-Wed Jan 3 13:12:09 1996 Fred Fish
-
- * obstack.h: Update copyright to 1996.
- (_obstack_memory_used): Declare.
- (obstack_memory_used): Define macro.
-
-Thu Dec 28 11:42:12 1995 Ian Lance Taylor
-
- * libiberty.h (xstrdup): Declare.
-
-Thu Dec 21 14:47:17 1995 Michael Meissner
-
- * wait.h: Protect all macros with #ifndef.
-
-Tue Oct 24 21:45:40 1995 Ian Lance Taylor
-
- * bfdlink.h (struct bfd_link_info): Add static_link field.
-
-Tue Sep 12 16:28:04 1995 Ian Lance Taylor
-
- * bfdlink.h (struct bfd_link_callbacks): Add symbol parameter to
- warning callback.
-
-Fri Sep 1 13:11:51 1995 Ian Lance Taylor
-
- * bfdlink.h (struct bfd_link_callbacks): Change warning callback
- to take BFD, section, and address arguments.
-
-Thu Aug 31 16:45:12 1995 steve chamberlain
-
- * bfdlink.h (struct bfd_link_info): Remove PE stuff.
-
-Tue Aug 22 03:18:23 1995 Ken Raeburn
-
- * libiberty.h: Declare xstrerror. From Pat Rankin.
-
-Mon Aug 21 18:11:36 1995 steve chamberlain
-
- * bfdlink.h (struct bfd_link_info): Remove PE stuff.
-
-Wed Aug 2 08:14:12 1995 Doug Evans
-
- * dis-asm.h (print_insn_sparc64): Declare.
-
-Mon Jul 10 13:26:49 1995 Eric Youngdale
-
- * bfdlink.h (struct bfd_link_info): Add new field symbolic.
-
-Sun Jul 2 17:48:40 1995 Ian Lance Taylor
-
- * bfdlink.h (struct bfd_link_info): Change type of base_file to
- PTR.
-
-Thu Jun 29 00:02:45 1995 Steve Chamberlain
-
- * bfdlink.h (struct bfd_link_info): Added base_file member.
-
-Tue Jun 20 16:40:04 1995 Steve Chamberlain
-
- * ansidecl.h: win32s is ANSI enough.
-
-Thu May 18 04:25:50 1995 Ken Raeburn
-
- Wed May 10 14:28:16 1995 Richard Earnshaw (rearnsha@armltd.co.uk)
-
- * dis-asm.h (print_insn_arm): Delete declaration.
- (print_insn_{little,big}_arm): New declarations.
-
- * floatformat.h (floatformat_arm_ext): Declare.
-
-Sat May 13 10:14:08 1995 Steve Chamberlain
-
- * coff/pe.h: New file.
- * bfdlink.h (subsytem, stack_heap_parameters): New.
- * coff/i386.h (NT_SECTION_ALIGNMENT, NT_FILE_ALIGNMENT,
- NT_DEF_RESERVE, NT_DEF_COMMIT): New.
- * coff/internal.h (internal_filehdr): New fields for PE.
- (IMAGE_DATA_DIRECTORY): New.
- (internal_aouthdr): New fields for PE.
-
-Thu May 4 14:36:42 1995 Jason Merrill
-
- * demangle.h: Don't include ansidecl.h if IN_GCC.
-
-
-Tue Feb 21 00:37:28 1995 Jeff Law (law@snake.cs.utah.edu)
-
- * hp-symtab.h: Don't use bitfield enumerations, the HP C compiler
- does not handle them correctly.
-
-
-Thu Feb 9 14:20:27 1995 Ian Lance Taylor
-
- * libiberty.h (basename): Don't declare parameter type; some
- systems have this in their header files.
-
-Wed Feb 8 17:35:38 1995 Ian Lance Taylor
-
- * bfdlink.h (struct bfd_link_hash_entry): Change format of common
- symbol information, to remove restrictions on maximum size and
- alignment power, by using a pointer to a structure instead.
-
-Mon Feb 6 14:55:32 1995 Ian Lance Taylor
-
- * bfdlink.h (enum bfd_link_hash_type): Rename bfd_link_hash_weak
- to bfd_link_hash_undefweak. Add bfd_link_hash_defweak.
-
-Mon Jan 16 21:00:23 1995 Stan Shebs
-
- * dis-asm.h (GDB_INIT_DISASSEMBLE_INFO, etc): Remove all
- GDB-specific definitions.
-
-Sun Jan 15 18:39:35 1995 Steve Chamberlain
-
- * dis-asm.h (print_insn_w65): Declare.
-
-Thu Jan 12 17:51:17 1995 Ken Raeburn
-
- * libiberty.h (hex_p): Fix sense of test.
-
-Wed Jan 11 22:36:40 1995 Ken Raeburn
-
- * libiberty.h (_hex_array_size, _hex_bad, _hex_value, hex_init,
- hex_p, hex_value): New macros and declarations, for hex.c.
-
-Fri Jan 6 17:44:14 1995 Ian Lance Taylor
-
- * dis-asm.h: Make idempotent.
-
-Wed Dec 14 13:08:43 1994 Stan Shebs
-
- * progress.h: New file, empty definitions for progress macros.
-
-
-Fri Nov 25 00:14:05 1994 Jeff Law (law@snake.cs.utah.edu)
-
- * hp-symtab.h: New file describing the debug symbols emitted
- by the HP C compilers.
-
-Fri Nov 11 15:48:37 1994 Ian Lance Taylor
-
- * bfdlink.h (struct bfd_link_hash_entry): Change u.c.size from 24
- to 26 bits, and change u.c.alignment_power from 8 to 6 bits. 6
- bit in the alignment power is enough for a 64 bit address space.
-
-Mon Oct 31 13:02:51 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * demangle.h (cplus_mangle_opname): Declare.
-
-Tue Oct 25 11:38:02 1994 Ian Lance Taylor
-
- * bfdlink.h (struct bfd_link_callbacks): Fix comments for
- multiple_common field.
-
-Sun Sep 04 17:58:10 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org)
-
- * aout/aout64.h: Only define QMAGIC if it isn't already defined.
-
- * dis-asm.h: Add support for the ARM.
-
-Wed Aug 10 12:51:41 1994 Doug Evans (dje@canuck.cygnus.com)
-
- * libiberty.h (strsignal): Document its existence even if we
- can't declare it.
-
-Tue Aug 2 14:40:03 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * os9k.h: Remove u_int16, u_int32, and owner_id typedefs and
- expand their uses. Those names conflict with Mach headers.
-
-Fri Jul 22 14:17:12 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * bfdlink.h (struct bfd_link_hash_entry): Change u.c.size into a
- bitfield. Add field u.c.alignment_power.
-
-Sun Jul 10 00:26:39 1994 Ian Dall (dall@hfrd.dsto.gov.au)
-
- * dis-asm.h: Add print_insn_ns32k declaration.
-
-Mon Jun 20 17:13:29 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * bfdlink.h (bfd_link_hash_table): Make creator a const pointer.
-
-Sat Jun 18 16:09:32 1994 Stan Shebs (shebs@andros.cygnus.com)
-
- * demangle.h (cplus_demangle_opname): Declare.
-
-Thu Jun 16 15:19:03 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfdlink.h (struct bfd_link_info): Add new field shared.
-
-Mon Jun 6 14:39:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfdlink.h (struct bfd_link_hash_entry): Remove written field:
- not needed for all backends.
-
-Thu Apr 28 19:06:50 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
-
- * dis-asm.h (disassembler): Declare.
-
-Fri Apr 1 00:38:17 1994 Jim Wilson (wilson@mole.gnu.ai.mit.edu)
-
- * obstack.h: Delete use of IN_GCC to control whether
- stddef.h or gstddef.h is included.
-
-Tue Mar 22 13:06:02 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfdlink.h (enum bfd_link_order_type): Add bfd_data_link_order.
- (struct bfd_link_order): Add data field to union.
-
-Mon Mar 21 18:45:26 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfdlink.h (struct bfd_link_callbacks): Change bitsize argument
- to add_to_set to reloc. Remove bitsize argument from constructor.
- Comment that reloc_overflow, reloc_dangerous and unattached_reloc
- must handle NULL pointers for reloc location.
- (enum bfd_link_order_type): Add bfd_section_reloc_link_order and
- bfd_symbol_reloc_link_order.
- (struct bfd_link_order): Add reloc field to union.
- (struct bfd_link_order_reloc): Define.
-
-Mon Mar 14 12:27:50 1994 Ian Lance Taylor (ian@cygnus.com)
-
- * ieee-float.h: Removed; no longer used.
-
-Tue Mar 1 18:10:49 1994 Kung Hsu (kung@mexican.cygnus.com)
-
- * os9k.h: os9000 target specific header file, the header of the
- object file is used now.
-
-Sun Feb 27 21:52:26 1994 Jim Kingdon (kingdon@deneb.cygnus.com)
-
- * floatformat.h: New file, intended to replace ieee-float.h.
-
-Sun Feb 20 17:15:42 1994 Ian Lance Taylor (ian@lisa.cygnus.com)
-
- * ansidecl.h (ANSI_PROTOTYPES): Define if using ANSI prototypes.
-
-Wed Feb 16 01:07:12 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * libiberty.h: Don't declare strsignal, to avoid conflicts with
- Solaris system header files.
-
-Sat Feb 12 22:11:32 1994 Jeffrey A. Law (law@snake.cs.utah.edu)
-
- * libiberty.h (xexit): Use __volatile__ to avoid losing if
- compiling with gcc -traditional.
-
-Thu Feb 10 14:05:41 1994 Ian Lance Taylor (ian@cygnus.com)
-
- * libiberty.h: New file. Declares functions provided by
- libiberty.
-
-Tue Feb 8 05:19:52 1994 David J. Mackenzie (djm@thepub.cygnus.com)
-
- Handle obstack_chunk_alloc returning NULL. This allows
- obstacks to be used by libraries, without forcing them
- to call exit or longjmp.
- * obstack.h (struct obstack): Add alloc_failed flag.
- _obstack_begin, _obstack_begin_1): Declare to return int, not void.
- (obstack_finish): If alloc_failed, return NULL.
- (obstack_base, obstack_next_free, objstack_object_size):
- If alloc_failed, return 0.
- (obstack_grow, obstack_grow0, obstack_1grow, obstack_ptr_grow,
- obstack_int_grow, obstack_blank): If alloc_failed, do nothing that
- could corrupt the obstack.
-
-Mon Jan 24 15:06:05 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfdlink.h (struct bfd_link_callbacks): Add name, reloc_name and
- addend argments to reloc_overflow callback.
-
-Fri Jan 21 19:13:12 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * dis-asm.h (print_insn_big_powerpc, print_insn_little_powerpc,
- print_insn_rs6000): Declare.
-
-Thu Jan 6 14:15:55 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfdlink.h (struct bfd_link_callbacks): Add bitsize argument to
- add_to_set field. Add new callback named constructor.
-
-Thu Dec 30 10:44:06 1993 Ian Lance Taylor (ian@rtl.cygnus.com)
-
- * bfdlink.h: New file for new BFD linker backend routines.
-
-Mon Nov 29 10:43:57 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * dis-asm.h (enum dis_insn_tyupe): Remove non-ANSI trailing comma.
-
-Sat Oct 2 20:42:26 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * dis-asm.h: Move comment to right place.
-
-Mon Aug 9 19:03:35 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * obstack.h (obstack_chunkfun, obstack_freefun): Add defns from
- previous version. Are these Cygnus local changes?
-
-Fri Aug 6 17:05:47 1993 David J. Mackenzie (djm@thepub.cygnus.com)
-
- * getopt.h, obstack.h: Update to latest FSF version.
-
-Mon Aug 2 16:37:14 1993 Stu Grossman (grossman at cygnus.com)
-
- * coff/i386.h: Add Lynx magic number.
-
-Mon Aug 2 14:45:29 1993 John Gilmore (gnu@cygnus.com)
-
- * dis-asm.h: Move enum outside of struct defn to avoid warnings.
-
-Mon Aug 2 08:49:30 1993 Stu Grossman (grossman at cygnus.com)
-
- * wait.h (WEXITSTATUS, WSTOPSIG): Mask down to 8 bits. This is
- for systems that store stuff into the high 16 bits of a wait
- status.
-
-Fri Jul 30 18:38:02 1993 John Gilmore (gnu@cygnus.com)
-
- * dis-asm.h: Add new fields insn_info_valid, branch_delay_insns,
- data_size, insn_type, target, target2. These are used to return
- information from the instruction decoders back to the calling
- program. Add comments, make more readable.
-
-Mon Jul 19 22:14:14 1993 Fred Fish (fnf@deneb.cygnus.com)
-
- * nlm: New directory containing NLM/NetWare includes.
-
-Thu Jul 15 12:10:04 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * dis-asm.h (struct disassemble_info): New field application_data.
-
-Thu Jul 15 12:41:15 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * dis-asm.h: Added declaration of print_insn_m88k.
-
-Thu Jul 8 09:05:26 1993 Doug Evans (dje@canuck.cygnus.com)
-
- * opcode/h8300.h: Lots of little fixes for the h8/300h.
-
-Fri Jul 2 10:31:59 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * ansidecl.h: Use ANSI macros if __mips and _SYSTYPE_SVR4 are
- defined, since RISC/OS cc handles ANSI declarations in SVR4 mode
- but does not define __STDC__.
-
-Sun Jun 20 18:27:52 1993 Ken Raeburn (raeburn@poseidon.cygnus.com)
-
- * dis-asm.h: Don't need to include ansidecl.h any more.
-
-Fri Jun 18 03:22:10 1993 John Gilmore (gnu@cygnus.com)
-
- * oasys.h: Eliminate "int8_type", "int16_type", "int32_type", and
- their variants. These changes are coordinated with corresponding
- changes in ../bfd/oasys.c.
-
-Wed Jun 16 10:43:08 1993 Fred Fish (fnf@cygnus.com)
-
- * bfd.h: Note that it has been removed.
-
-Tue Jun 8 12:16:03 1993 Steve Chamberlain (sac@phydeaux.cygnus.com)
-
- Support for H8/300-H
- * dis-asm.h (print_insn_h8300, print_insn_h8300h): Declare it.
- * coff/h8300.h: New magic number.
- * coff/internal.h: New relocations.
- * opcode/h8300.h: Lots of new opcodes.
-
-Tue Jun 1 07:35:03 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com)
-
- * ansidecl.h (const): Don't define it if it's already defined.
-
-Thu May 27 18:19:51 1993 Ken Raeburn (raeburn@cambridge.cygnus.com)
-
- * dis-asm.h (print_insn_hppa): Declare it.
-
- * bfd.h: Moved to bfd directory. Small stub here includes it
- without requiring "-I../bfd".
-
-Thu Apr 29 12:06:13 1993 Ken Raeburn (raeburn@deneb.cygnus.com)
-
- * bfd.h: Updated with BSF_FUNCTION.
-
-Mon Apr 26 18:15:50 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * bfd.h, dis-asm.h: Updated with Hitachi SH.
-
-Fri Apr 23 18:41:38 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * bfd.h: Updated with alpha changes.
- * dis-asm.h: Added alpha.
-
-Fri Apr 16 17:35:30 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * bfd.h: Update for signed bfd_*get_*.
-
-Thu Apr 15 09:24:21 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * bfd.h: Updated for file_truncated error.
-
-Thu Apr 8 10:53:47 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * ansidecl.h: If no ANSI, define const to be empty.
-
-Thu Apr 1 09:00:10 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * dis-asm.h: Declare a29k and i960 print_insn_*.
-
- * dis-asm.h: Add print_address_func and related stuff.
-
- * dis-asm.h (dis_asm_read_memory): Fix prototype.
-
-Wed Mar 31 17:40:16 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * dis-asm.h: Add print_insn_sparc.
-
-Wed Mar 31 17:51:42 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * bfd.h: Updated for BFD_RELOC_MIPS_GPREL and bfd_[gs]et_gp_size
- prototypes.
-
-Wed Mar 31 16:35:12 1993 Stu Grossman (grossman@cygnus.com)
-
- * dis-asm.h: (disassemble_info): Fix typo in prototype of
- dis_asm_memory_error().
-
-Tue Mar 30 19:09:23 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
-
- * dis-asm.h (disassembler_info): Add read_memory_func,
- memory_error_func, buffer, and length.
- ({GDB_,}INIT_DISASSEMBLE_INFO): Set them.
- print_insn_*: Remove second argument.
-
-Tue Mar 30 14:48:55 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * bfd.h: Update for lma field of section.
-
-Tue Mar 30 12:22:55 1993 Jim Kingdon (kingdon@cygnus.com)
-
- * ansidecl.h: Use ANSI versions on AIX regardless of __STDC__.
-
-Fri Mar 19 14:49:49 1993 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * dis-asm.h: Add h8500.
-
-Thu Mar 18 13:49:09 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * ieee-float.h: Moved from ../gdb.
- * dis-asm.h: New file. Interface to dis-assembler.
-
-Thu Mar 11 10:52:57 1993 Fred Fish (fnf@cygnus.com)
-
- * demangle.h (DMGL_NO_OPTS): Add define (set to 0) to use
- in place of bare 0, for readability reasons.
-
-Tue Mar 2 17:50:11 1993 Fred Fish (fnf@cygnus.com)
-
- * demangle.h: Replace all references to cfront with ARM.
-
-Tue Feb 23 12:21:14 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * bfd.h: Update for new elements in JUMP_TABLE.
-
-Tue Feb 16 00:51:30 1993 John Gilmore (gnu@cygnus.com)
-
- * bfd.h: Update for BFD_VERSION 2.1.
-
-Tue Jan 26 11:49:20 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * bfd.h: Update for SEC_IS_COMMON flag.
-
-Tue Jan 19 12:25:12 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfd.h: Update for bfd_asymbol_value bug fix.
-
-Fri Jan 8 16:37:18 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * bfd.h: Update to include ECOFF tdata and target_flavour.
-
-Sun Dec 27 17:52:30 1992 Fred Fish (fnf@cygnus.com)
-
- * bfd.h: Add declaration for bfd_get_size().
-
-Tue Dec 22 22:42:46 1992 Fred Fish (fnf@cygnus.com)
-
- * demangle.h: Protect file from multiple inclusions with
- #if !defined(DEMANGLE_H)...#define DEMANGLE_H...#endif.
-
-Mon Dec 21 21:25:50 1992 Stu Grossman (grossman at cygnus.com)
-
- * bfd.h: Update to get hppa_core_struct from bfd.c.
-
-Thu Dec 17 00:42:35 1992 John Gilmore (gnu@cygnus.com)
-
- * bfd.h: Update to get tekhex tdata name change from bfd.
-
-Mon Nov 9 23:55:42 1992 John Gilmore (gnu@cygnus.com)
-
- * ansidecl.h: Update comments to discourage use of EXFUN.
-
-Thu Nov 5 16:35:44 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * bfd.h: Update to bring in SEC_SHARED_LIBRARY.
-
-Thu Nov 5 03:21:32 1992 John Gilmore (gnu@cygnus.com)
-
- * bfd.h: Update to match EXFUN, bfd_seclet_struct, and SDEF
- cleanups in bfd.
-
-Wed Nov 4 07:28:05 1992 Ken Raeburn (raeburn@cygnus.com)
-
- * bout.h (N_CALLNAME, N_BALNAME): Define as char-type values, so
- widening works consistently.
-
-Fri Oct 16 03:17:08 1992 John Gilmore (gnu@cygnus.com)
-
- * getopt.h: Update to Revised Standard FSF Version.
-
-Thu Oct 15 21:43:22 1992 K. Richard Pixley (rich@sendai.cygnus.com)
-
- * getopt.h (struct option): use the provided enum for has_arg.
-
- * demangle.h (AUTO_DEMANGLING, GNU_DEMANGLING,
- LUCID_DEMANGLING): ultrix compilers require enums to be
- enums and ints to be ints and casts where they meet. cast some
- enums into ints.
-
-Thu Oct 15 04:35:51 1992 John Gilmore (gnu@cygnus.com)
-
- * bfd.h: Update after comment changes.
-
-Thu Oct 8 09:03:02 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * bfd.h (bfd_get_symbol_leading_char): new macro for getting in xvec
-
-Thu Sep 3 09:10:50 1992 Stu Grossman (grossman at cygnus.com)
-
- * bfd.h (struct reloc_howto_struct): size needs to be signed if
- it's going to hold negative values.
-
-Sun Aug 30 17:50:27 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * demangle.h: New file, moved from ../gdb. Made independent
- of gdb. Allow demangling style option to be passed as a
- parameter to cplus_demangle(), but using the
- current_demangling_style global as the default.
-
-Sat Aug 29 10:07:55 1992 Fred Fish (fnf@cygnus.com)
-
- * obstack.h: Merge comment change from current FSF version.
-
-Thu Aug 27 12:59:29 1992 Brendan Kehoe (brendan@cygnus.com)
-
- * bfd.h: add we32k
-
-Tue Aug 25 15:07:47 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * bfd.h: new after Z8000 stuff
-
-Mon Aug 17 09:01:23 1992 Ken Raeburn (raeburn@cygnus.com)
-
- * bfd.h: Regenerated after page/segment size changes.
-
-Sat Aug 1 13:46:31 1992 Fred Fish (fnf@cygnus.com)
-
- * obstack.h: Merge changes from current FSF version.
-
-Mon Jul 20 21:06:23 1992 Fred Fish (fnf@cygnus.com)
-
- * obstack.h (area_id, flags): Remove, replace with extra_arg,
- use_extra_arg, and maybe_empty_object.
- * obstack.h (OBSTACK_MAYBE_EMPTY_OBJECT, OBSTACK_MMALLOC_LIKE):
- Remove, replaced by maybe_empty_object and use_extra_arg bitfields.
- * obstack.h (obstack_full_begin, _obstack_begin): Remove area_id
- and flags arguments.
- * obstack.h (obstack_alloc_arg): New macro to set extra_arg.
-
-Thu Jul 16 08:12:44 1992 Steve Chamberlain (sac@thepub.cygnus.com)
-
- * bfd.h: new after adding BFD_IS_RELAXABLE
-
-Sat Jul 4 03:22:23 1992 John Gilmore (gnu at cygnus.com)
-
- * bfd.h: Regen after adding BSF_FILE.
-
-Mon Jun 29 14:18:36 1992 Fred Fish (fnf at sunfish)
-
- * obstack.h: Convert bcopy() use to memcpy(), which is more
- portable, more standard, and can take advantage of gcc's builtin
- functions for increased performance.
-
-Thu Jun 25 04:46:08 1992 John Gilmore (gnu at cygnus.com)
-
- * ansidecl.h (PARAMS): Incorporate this macro from gdb's defs.h.
- It's a cleaner way to forward-declare function prototypes.
-
-Fri Jun 19 15:46:32 1992 Stu Grossman (grossman at cygnus.com)
-
- * bfd.h: HPPA merge.
-
-Tue Jun 16 21:30:56 1992 K. Richard Pixley (rich@cygnus.com)
-
- * getopt.h: gratuitous white space changes merged from other prep
- releases.
-
-Thu Jun 11 01:10:55 1992 John Gilmore (gnu at cygnus.com)
-
- * bfd.h: Regen'd from bfd.c after removing elf_core_tdata_struct.
-
-Mon May 18 17:29:03 1992 K. Richard Pixley (rich@cygnus.com)
-
- * getopt.h: merged changes from make-3.62.11.
-
- * getopt.h: merged changes from grep-1.6 (alpha).
-
-Fri May 8 14:53:32 1992 K. Richard Pixley (rich@cygnus.com)
-
- * getopt.h: merged changes from bison-1.18.
-
-Sat Mar 14 17:25:20 1992 Fred Fish (fnf@cygnus.com)
-
- * obstack.h: Add "area_id" and "flags" members to obstack
- structure. Add obstack_chunkfun() and obstack_freefun() to
- set functions explicitly. Convert maybe_empty_object to
- a bit in "flags".
-
-Thu Feb 27 22:01:02 1992 Per Bothner (bothner@cygnus.com)
-
- * wait.h (WIFSTOPPED): Add IBM rs6000-specific version.
-
-Fri Feb 21 20:49:20 1992 John Gilmore (gnu at cygnus.com)
-
- * obstack.h: Add obstack_full_begin.
- * bfd.h, obstack.h: Protolint.
-
-Thu Jan 30 01:18:42 1992 John Gilmore (gnu at cygnus.com)
-
- * bfd.h: Remove comma from enum declaration.
-
-Mon Jan 27 22:01:13 1992 Steve Chamberlain (sac at cygnus.com)
-
- * bfd.h : new target entr, bfd_relax_section
-
-Wed Dec 18 17:19:44 1991 Stu Grossman (grossman at cygnus.com)
-
- * bfd.h, ieee.h, opcode/m68k.h, opcode/sparc.h: ANSIfy enums.
-
-Thu Dec 12 20:59:56 1991 John Gilmore (gnu at cygnus.com)
-
- * fopen-same.h, fopen-bin.h: New files for configuring
- whether fopen distinguishes binary files or not. For use
- by host-dependent config files.
-
-Sat Nov 30 20:46:43 1991 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * bfd.h: change the documentation format.
-
- * created coff, elf and opcode and aout directories. Moved:
-
- aout64.h ==> aout/aout64.h
- ar.h ==> aout/ar.h
- a.out.encap.h ==> aout/encap.h
- a.out.host.h ==> aout/host.h
- a.out.hp.h ==> aout/hp.h
- a.out.sun4.h ==> aout/sun4.h
- ranlib.h ==> aout/ranlib.h
- reloc.h ==> aout/reloc.h
- stab.def ==> aout/stab.def
- stab.gnu.h ==> aout/stab_gnu.h
-
- coff-a29k.h ==> coff/a29k.h
- coff-h8300.h ==> coff/h8300.h
- coff-i386.h ==> coff/i386.h
- coff-i960.h ==> coff/i960.h
- internalcoff.h ==> coff/internal.h
- coff-m68k.h ==> coff/m68k.h
- coff-m88k.h ==> coff/m88k.h
- coff-mips.h ==> coff/mips.h
- coff-rs6000.h ==> coff/rs6000.h
-
- elf-common.h ==> elf/common.h
- dwarf.h ==> elf/dwarf.h
- elf-external.h ==> elf/external.h
- elf-internal.h ==> elf/internal.h
-
- a29k-opcode.h ==> opcode/a29k.h
- arm-opcode.h ==> opcode/arm.h
- h8300-opcode.h ==> opcode/h8300.h
- i386-opcode.h ==> opcode/i386.h
- i860-opcode.h ==> opcode/i860.h
- i960-opcode.h ==> opcode/i960.h
- m68k-opcode.h ==> opcode/m68k.h
- m88k-opcode.h ==> opcode/m88k.h
- mips-opcode.h ==> opcode/mips.h
- np1-opcode.h ==> opcode/np1.h
- ns32k-opcode.h ==> opcode/ns32k.h
- pn-opcode.h ==> opcode/pn.h
- pyr-opcode.h ==> opcode/pyr.h
- sparc-opcode.h ==> opcode/sparc.h
- tahoe-opcode.h ==> opcode/tahoe.h
- vax-opcode.h ==> opcode/vax.h
-
-
-
-Wed Nov 27 10:38:31 1991 Steve Chamberlain (sac at rtl.cygnus.com)
-
- * internalcoff.h: (internal_scnhdr) took out #def dependency, now
- s_nreloc and s_nlnno are always long. (internal_reloc): allways
- has an offset field now.
-
-Fri Nov 22 08:12:58 1991 John Gilmore (gnu at cygnus.com)
-
- * coff-rs6000.h: Lint; use unsigned chars for external fields.
- * internalcoff.h: Lint; cast storage classes to signed char.
-
-Thu Nov 21 21:01:05 1991 Per Bothner (bothner at cygnus.com)
-
- * stab.def: Remove the GNU extended type codes (e.g. N_SETT).
- * aout64.h: The heuristic for distinguishing between
- sunos-style and bsd-style ZMAGIC files (wrt. where the
- text segment starts) is moved into (the default definition of)
- the macro N_HEADER_IN_TEXT. This definition is only used
- if no other definition is used - e.g. bfd/newsos3.c defines
- N_HEADER_IN_TEXT(x) to be always 0 (as before).
-
-Thu Nov 21 11:53:03 1991 John Gilmore (gnu at cygnus.com)
-
- * aout64.h (N_TXTADDR, N_TXTOFF, N_TXTSIZE): New definitions
- that should handle all uses. LOGICAL_ versions deleted.
- Eliminate N_HEADER_IN_TEXT, using a_entry to determine which
- kind of zmagic a.out file we are looking at.
- * coff-rs6000.h: Typo.
-
-Tue Nov 19 18:43:37 1991 Per Bothner (bothner at cygnus.com)
-
- (Note: This is a revised entry, as was aout64.h.)
- * aout64.h: Some cleanups of N_TXTADDR and N_TXTOFF:
- Will now work for both old- and new-style ZMAGIC files,
- depending on N_HEADER_IN_TEXT macro.
- Add LOGICAL_TXTADDR, LOICAL_TXTOFF and LOGICAL_TXTSIZE
- that don't count the exec header as part
- of the text segment, to be consistent with bfd.
- * a.out.sun4.h: Simplified/fixed for previous change.
-
-Mon Nov 18 00:02:06 1991 Fred Fish (fnf at cygnus.com)
-
- * dwarf.h: Update to DWARF draft 5 version from gcc2.
-
-Thu Nov 14 19:44:59 1991 Per Bothner (bothner at cygnus.com)
-
- * stab.def: Added defs for extended GNU symbol types,
- such as N_SETT. These are normally ifdef'd out (because
- of conflicts with a.out.gnu.h), but are used by bfb_stab_name().
-
-Thu Nov 14 19:17:03 1991 Fred Fish (fnf at cygnus.com)
-
- * elf-common.h: Add defines to support ELF symbol table code.
-
-Mon Nov 11 19:01:06 1991 Fred Fish (fnf at cygnus.com)
-
- * elf-internal.h, elf-external.h, elf-common.h: Add support for
- note sections, which are used in ELF core files to hold copies
- of various /proc structures.
-
-Thu Nov 7 08:58:26 1991 Steve Chamberlain (sac at cygnus.com)
-
- * internalcoff.h: took out the M88 dependency in the lineno
- struct.
- * coff-m88k.h: defines GET_LINENO_LNNO and PUT_LINENO_LNNO to use
- 32bit linno entries.
- * a29k-opcode.h: fixed encoding of mtacc
-
-Sun Nov 3 11:54:22 1991 Per Bothner (bothner at cygnus.com)
-
- * bfd.h: Updated from ../bfd/bfd-in.h (q.v).
-
-Fri Nov 1 11:13:53 1991 John Gilmore (gnu at cygnus.com)
-
- * internalcoff.h: Add x_csect defines.
-
-Fri Oct 25 03:18:20 1991 John Gilmore (gnu at cygnus.com)
-
- * Rename COFF-related files in `coff-ARCH.h' form.
- coff-a29k.h, coff-i386.h, coff-i960.h, coff-m68k.h, coff-m88k.h,
- coff-mips.h, coff-rs6000.h to be exact.
-
-Thu Oct 24 22:11:11 1991 John Gilmore (gnu at cygnus.com)
-
- RS/6000 support, by Metin G. Ozisik, Mimi Phûông-Thåo Võ, and
- John Gilmore.
-
- * a.out.gnu.h: Update slightly.
- * bfd.h: Add new error code, fix doc, add bfd_arch_rs6000.
- * internalcoff.h: Add more F_ codes for filehdr. Add
- rs/6000-dependent fields to aouthdr. Add storage classes
- to syments. Add 6000-specific auxent. Add r_size in reloc.
- * rs6000coff.c: New file.
-
-Thu Oct 24 04:13:20 1991 Fred Fish (fnf at cygnus.com)
-
- * dwarf.h: New file for dwarf support. Copied from gcc2
- distribution.
-
-Wed Oct 16 13:31:45 1991 John Gilmore (gnu at cygnus.com)
-
- * aout64.h: Remove PAGE_SIZE defines; they are target-dependent.
- Add N_FN_SEQ for N_FN symbol type used on Sequent machines.
- * stab.def: Include N_FN_SEQ in table.
- * bout.h: External formats of structures use unsigned chars.
-
-Fri Oct 11 12:40:43 1991 Steve Chamberlain (steve at cygnus.com)
-
- * bfd.h:upgrade from bfd.c
- * internalcoff.h: add n_name, n_zeroes and n_offset macros
- * amdcoff.h: Define OMAGIC and AOUTHDRSZ.
-
-Fri Oct 11 10:58:06 1991 Per Bothner (bothner at cygnus.com)
-
- * a.out.host.h: Change SEGMENT_SIZE to 0x1000 for Sony.
- * bfd.h (align_power): Add (actually move) comment.
-
-Tue Oct 8 15:29:32 1991 Per Bothner (bothner at cygnus.com)
-
- * sys/h-rtbsd.h: Define MISSING_VFPRINT (for binutils/bucomm.c).
-
-Sun Oct 6 19:24:39 1991 John Gilmore (gnu at cygnus.com)
-
- * aout64.h: Move struct internal_exec to ../bfd/libaout.h so
- it can be shared by all `a.out-family' code. Rename
- EXTERNAL_LIST_SIZE to EXTERNAL_NLIST_SIZE. Use basic types
- for nlist members, and make strx integral rather than pointer.
- More commentary on n_type values.
- * bout.h: Provide a struct external_exec rather than an
- internal_exec.
- * m68kcoff.h: Remove `tagentries' which snuck in from the i960
- COFF port.
-
-Fri Oct 4 01:25:59 1991 John Gilmore (gnu at cygnus.com)
-
- * h8300-opcode.h: Remove `_enum' from the typedef for an enum.
- * bfd.h: Update to match bfd changes.
-
- * sys/h-i386mach.h, sysdep.h: Add 386 Mach host support.
-
-Tue Oct 1 04:58:42 1991 John Gilmore (gnu at cygnus.com)
-
- * bfd.h, elf-common.h, elf-external.h, elf-internal.h:
- Add preliminary ELF support, sufficient for GDB, from Fred Fish.
- * sysdep.h, sys/h-amix.h: Support Amiga SVR4.
-
- * sys/h-vaxult.h: Make it work. (David Taylor )
- * a.out.vax.h: Remove unused and confusing file.
-
-Mon Sep 30 12:52:35 1991 Per Bothner (bothner at cygnus.com)
-
- * sysdep.h: Define NEWSOS3_SYS, and use it.
-
-Fri Sep 20 13:38:21 1991 John Gilmore (gnu at cygnus.com)
-
- * a.out.gnu.h (N_FN): Its value *really is* 0x1F.
- Fix it, and add comments warning about or-ing N_EXT with it
- and/or N_WARNING.
- * aout64.h (N_FN): Fix value, add comments about N_EXT.
- * stab.def (table at end): Update to show all the type
- values <0x20, including low order bits. Move N_FN to
- its rightful place.
-
-Tue Sep 17 17:41:37 1991 Stu Grossman (grossman at cygnus.com)
-
- * sys/h-irix3.h: sgi/irix support.
-
-Tue Sep 17 07:52:59 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * stab.def (N_DEFD): Add GNU Modula-2 debug stab, from Andrew
- Beers.
-
-Thu Sep 12 14:12:59 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * internalcoff.h (SYMNMLEN, FILNMLEN, DIMNUM): Define these
- for internalcoff, separately from the various external coff's.
- * amdcoff.h, bcs88kcoff.h, i386coff.h, intel-coff.h, m68kcoff.h,
- m88k-bcs.h: Prefix SYMNMLEN, FILNMLEN, and DIMNUM with E_'s for
- the external struct definitions.
- * ecoff.h: Remove these #define's, kludge no longer needed.
-
- * sys/h-ultra3.h: Add new Ultracomputer host.
- * sysdep.h: Add ULTRA3_SYM1_SYS and use it.
-
-Tue Sep 10 10:11:46 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * i386coff.h (LINESZ): Always 6, not based on sizeof().
- (Fix from Peter Schauer .)
-
-Wed Sep 4 08:58:37 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * a.out.gnu.h, aout64.h: Add N_WARNING. Change N_FN to 0x0E,
- to match SunOS and BSD. Add N_COMM as 0x12 for SunOS shared lib
- support.
- * stab.def: Add N_COMM to table, fix overlap comment.
-
-Tue Sep 3 06:29:20 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- Merge with latest FSF versions of these files.
-
- * stab.gnu.h: Add LAST_UNUSED_STAB_CODE.
- * stab.def: Update to GPL2. Move N_WARNING out, since not a
- debug symbol. Change comments, and reorder table to numeric
- order. Update final table comment.
- (N_DSLINE, N_BSLINE): Renumber from 0x66 and 0x68, to 0x46 and 0x48.
-
- * obstack.h: GPL2. Merge.
-
-Fri Aug 23 01:54:23 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * a.out.gnu.h, a.out.sun4.h: Make SEGMENT_SIZE able to depend
- on the particular a.out being examined.
- * a.out.sun4.h: Define segment sizes for Sun-3's and Sun-4's.
- * FIXME: a.out.gnu.h is almost obsolete.
- * FIXME: a.out.sun4.h should be renamed a.out.sun.h now.
-
-Wed Aug 21 20:32:13 1991 John Gilmore (gnu at cygint.cygnus.com)
-
- * Start a ChangeLog for the includes directory.
-
- * a.out.gnu.h (N_FN): Fix value -- was 15, should be 0x1E.
- * stab.def: Update allocation table in comments at end,
- to reflect reality as I know it.
-
-
-Local Variables:
-mode: indented-text
-left-margin: 8
-fill-column: 74
-version-control: never
-End:
diff --git a/contrib/libg++/include/ansidecl.h b/contrib/libg++/include/ansidecl.h
deleted file mode 100644
index be04e42d56a3b..0000000000000
--- a/contrib/libg++/include/ansidecl.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/* ANSI and traditional C compatability macros
- Copyright 1991, 1992 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-/* ANSI and traditional C compatibility macros
-
- ANSI C is assumed if __STDC__ is #defined.
-
- Macro ANSI C definition Traditional C definition
- ----- ---- - ---------- ----------- - ----------
- PTR `void *' `char *'
- LONG_DOUBLE `long double' `double'
- VOLATILE `volatile' `'
- SIGNED `signed' `'
- PTRCONST `void *const' `char *'
- ANSI_PROTOTYPES 1 not defined
-
- CONST is also defined, but is obsolete. Just use const.
-
- DEFUN (name, arglist, args)
-
- Defines function NAME.
-
- ARGLIST lists the arguments, separated by commas and enclosed in
- parentheses. ARGLIST becomes the argument list in traditional C.
-
- ARGS list the arguments with their types. It becomes a prototype in
- ANSI C, and the type declarations in traditional C. Arguments should
- be separated with `AND'. For functions with a variable number of
- arguments, the last thing listed should be `DOTS'.
-
- DEFUN_VOID (name)
-
- Defines a function NAME, which takes no arguments.
-
- obsolete -- EXFUN (name, (prototype)) -- obsolete.
-
- Replaced by PARAMS. Do not use; will disappear someday soon.
- Was used in external function declarations.
- In ANSI C it is `NAME PROTOTYPE' (so PROTOTYPE should be enclosed in
- parentheses). In traditional C it is `NAME()'.
- For a function that takes no arguments, PROTOTYPE should be `(void)'.
-
- PARAMS ((args))
-
- We could use the EXFUN macro to handle prototype declarations, but
- the name is misleading and the result is ugly. So we just define a
- simple macro to handle the parameter lists, as in:
-
- static int foo PARAMS ((int, char));
-
- This produces: `static int foo();' or `static int foo (int, char);'
-
- EXFUN would have done it like this:
-
- static int EXFUN (foo, (int, char));
-
- but the function is not external...and it's hard to visually parse
- the function name out of the mess. EXFUN should be considered
- obsolete; new code should be written to use PARAMS.
-
- For example:
- extern int printf PARAMS ((CONST char *format DOTS));
- int DEFUN(fprintf, (stream, format),
- FILE *stream AND CONST char *format DOTS) { ... }
- void DEFUN_VOID(abort) { ... }
-*/
-
-#ifndef _ANSIDECL_H
-
-#define _ANSIDECL_H 1
-
-
-/* Every source file includes this file,
- so they will all get the switch for lint. */
-/* LINTLIBRARY */
-
-
-#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(WIN32)
-/* All known AIX compilers implement these things (but don't always
- define __STDC__). The RISC/OS MIPS compiler defines these things
- in SVR4 mode, but does not define __STDC__. */
-
-#define PTR void *
-#define PTRCONST void *CONST
-#define LONG_DOUBLE long double
-
-#define AND ,
-#define NOARGS void
-#define CONST const
-#define VOLATILE volatile
-#define SIGNED signed
-#define DOTS , ...
-
-#define EXFUN(name, proto) name proto
-#define DEFUN(name, arglist, args) name(args)
-#define DEFUN_VOID(name) name(void)
-
-#define PROTO(type, name, arglist) type name arglist
-#define PARAMS(paramlist) paramlist
-#define ANSI_PROTOTYPES 1
-
-#else /* Not ANSI C. */
-
-#define PTR char *
-#define PTRCONST PTR
-#define LONG_DOUBLE double
-
-#define AND ;
-#define NOARGS
-#define CONST
-#ifndef const /* some systems define it in header files for non-ansi mode */
-#define const
-#endif
-#define VOLATILE
-#define SIGNED
-#define DOTS
-
-#define EXFUN(name, proto) name()
-#define DEFUN(name, arglist, args) name arglist args;
-#define DEFUN_VOID(name) name()
-#define PROTO(type, name, arglist) type name ()
-#define PARAMS(paramlist) ()
-
-#endif /* ANSI C. */
-
-#endif /* ansidecl.h */
diff --git a/contrib/libg++/include/demangle.h b/contrib/libg++/include/demangle.h
deleted file mode 100644
index b0254af05f76f..0000000000000
--- a/contrib/libg++/include/demangle.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Defs for interface to demanglers.
- Copyright 1992, 1995, 1996 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-
-#if !defined (DEMANGLE_H)
-#define DEMANGLE_H
-
-#ifdef IN_GCC
-#include "gansidecl.h"
-#define PARAMS(ARGS) PROTO(ARGS)
-#else /* ! IN_GCC */
-#include
-#endif /* IN_GCC */
-
-/* Options passed to cplus_demangle (in 2nd parameter). */
-
-#define DMGL_NO_OPTS 0 /* For readability... */
-#define DMGL_PARAMS (1 << 0) /* Include function args */
-#define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */
-
-#define DMGL_AUTO (1 << 8)
-#define DMGL_GNU (1 << 9)
-#define DMGL_LUCID (1 << 10)
-#define DMGL_ARM (1 << 11)
-/* If none of these are set, use 'current_demangling_style' as the default. */
-#define DMGL_STYLE_MASK (DMGL_AUTO|DMGL_GNU|DMGL_LUCID|DMGL_ARM)
-
-/* Enumeration of possible demangling styles.
-
- Lucid and ARM styles are still kept logically distinct, even though
- they now both behave identically. The resulting style is actual the
- union of both. I.E. either style recognizes both "__pt__" and "__rf__"
- for operator "->", even though the first is lucid style and the second
- is ARM style. (FIXME?) */
-
-extern enum demangling_styles
-{
- unknown_demangling = 0,
- auto_demangling = DMGL_AUTO,
- gnu_demangling = DMGL_GNU,
- lucid_demangling = DMGL_LUCID,
- arm_demangling = DMGL_ARM
-} current_demangling_style;
-
-/* Define string names for the various demangling styles. */
-
-#define AUTO_DEMANGLING_STYLE_STRING "auto"
-#define GNU_DEMANGLING_STYLE_STRING "gnu"
-#define LUCID_DEMANGLING_STYLE_STRING "lucid"
-#define ARM_DEMANGLING_STYLE_STRING "arm"
-
-/* Some macros to test what demangling style is active. */
-
-#define CURRENT_DEMANGLING_STYLE current_demangling_style
-#define AUTO_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_AUTO)
-#define GNU_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_GNU)
-#define LUCID_DEMANGLING (((int) CURRENT_DEMANGLING_STYLE) & DMGL_LUCID)
-#define ARM_DEMANGLING (CURRENT_DEMANGLING_STYLE & DMGL_ARM)
-
-extern char *
-cplus_demangle PARAMS ((const char *mangled, int options));
-
-extern int
-cplus_demangle_opname PARAMS ((const char *opname, char *result, int options));
-
-extern const char *
-cplus_mangle_opname PARAMS ((const char *opname, int options));
-
-/* Note: This sets global state. FIXME if you care about multi-threading. */
-
-extern void
-set_cplus_marker_for_demangling PARAMS ((int ch));
-
-#endif /* DEMANGLE_H */
diff --git a/contrib/libg++/include/floatformat.h b/contrib/libg++/include/floatformat.h
deleted file mode 100644
index 01e3dcb2944dd..0000000000000
--- a/contrib/libg++/include/floatformat.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* IEEE floating point support declarations, for GDB, the GNU Debugger.
- Copyright (C) 1991 Free Software Foundation, Inc.
-
-This file is part of GDB.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#if !defined (FLOATFORMAT_H)
-#define FLOATFORMAT_H 1
-
-#include "ansidecl.h"
-
-/* A floatformat consists of a sign bit, an exponent and a mantissa. Once the
- bytes are concatenated according to the byteorder flag, then each of those
- fields is contiguous. We number the bits with 0 being the most significant
- (i.e. BITS_BIG_ENDIAN type numbering), and specify which bits each field
- contains with the *_start and *_len fields. */
-
-enum floatformat_byteorders { floatformat_little, floatformat_big };
-
-enum floatformat_intbit { floatformat_intbit_yes, floatformat_intbit_no };
-
-struct floatformat
-{
- enum floatformat_byteorders byteorder;
- unsigned int totalsize; /* Total size of number in bits */
-
- /* Sign bit is always one bit long. 1 means negative, 0 means positive. */
- unsigned int sign_start;
-
- unsigned int exp_start;
- unsigned int exp_len;
- /* Amount added to "true" exponent. 0x3fff for many IEEE extendeds. */
- unsigned int exp_bias;
- /* Exponent value which indicates NaN. This is the actual value stored in
- the float, not adjusted by the exp_bias. This usually consists of all
- one bits. */
- unsigned int exp_nan;
-
- unsigned int man_start;
- unsigned int man_len;
-
- /* Is the integer bit explicit or implicit? */
- enum floatformat_intbit intbit;
-};
-
-/* floatformats for IEEE single and double, big and little endian. */
-
-extern const struct floatformat floatformat_ieee_single_big;
-extern const struct floatformat floatformat_ieee_single_little;
-extern const struct floatformat floatformat_ieee_double_big;
-extern const struct floatformat floatformat_ieee_double_little;
-
-/* floatformats for various extendeds. */
-
-extern const struct floatformat floatformat_i387_ext;
-extern const struct floatformat floatformat_m68881_ext;
-extern const struct floatformat floatformat_i960_ext;
-extern const struct floatformat floatformat_m88110_ext;
-extern const struct floatformat floatformat_arm_ext;
-
-/* Convert from FMT to a double.
- FROM is the address of the extended float.
- Store the double in *TO. */
-
-extern void
-floatformat_to_double PARAMS ((const struct floatformat *, char *, double *));
-
-/* The converse: convert the double *FROM to FMT
- and store where TO points. */
-
-extern void
-floatformat_from_double PARAMS ((const struct floatformat *,
- double *, char *));
-
-#endif /* defined (FLOATFORMAT_H) */
diff --git a/contrib/libg++/include/getopt.h b/contrib/libg++/include/getopt.h
deleted file mode 100644
index abf915383200a..0000000000000
--- a/contrib/libg++/include/getopt.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Declarations for getopt.
- Copyright (C) 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this program; if not, write to the Free Software
- Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifndef _GETOPT_H
-#define _GETOPT_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* For communication from `getopt' to the caller.
- When `getopt' finds an option that takes an argument,
- the argument value is returned here.
- Also, when `ordering' is RETURN_IN_ORDER,
- each non-option ARGV-element is returned here. */
-
-extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
- This is used for communication to and from the caller
- and for communication between successive calls to `getopt'.
-
- On entry to `getopt', zero means this is the first call; initialize.
-
- When `getopt' returns EOF, this is the index of the first of the
- non-option elements that the caller should itself scan.
-
- Otherwise, `optind' communicates from one call to the next
- how much of ARGV has been scanned so far. */
-
-extern int optind;
-
-/* Callers store zero here to inhibit the error message `getopt' prints
- for unrecognized options. */
-
-extern int opterr;
-
-/* Set to an option character which was unrecognized. */
-
-extern int optopt;
-
-/* Describe the long-named options requested by the application.
- The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
- of `struct option' terminated by an element containing a name which is
- zero.
-
- The field `has_arg' is:
- no_argument (or 0) if the option does not take an argument,
- required_argument (or 1) if the option requires an argument,
- optional_argument (or 2) if the option takes an optional argument.
-
- If the field `flag' is not NULL, it points to a variable that is set
- to the value given in the field `val' when the option is found, but
- left unchanged if the option is not found.
-
- To have a long-named option do something other than set an `int' to
- a compiled-in constant, such as set a value from `optarg', set the
- option's `flag' field to zero and its `val' field to a nonzero
- value (the equivalent single-letter option character, if there is
- one). For long options that have a zero `flag' field, `getopt'
- returns the contents of the `val' field. */
-
-struct option
-{
-#if __STDC__
- const char *name;
-#else
- char *name;
-#endif
- /* has_arg can't be an enum because some compilers complain about
- type mismatches in all the code that assumes it is an int. */
- int has_arg;
- int *flag;
- int val;
-};
-
-/* Names for the values of the `has_arg' field of `struct option'. */
-
-#define no_argument 0
-#define required_argument 1
-#define optional_argument 2
-
-#if __STDC__
-#if defined(__GNU_LIBRARY__)
-/* Many other libraries have conflicting prototypes for getopt, with
- differences in the consts, in stdlib.h. To avoid compilation
- errors, only prototype getopt for the GNU C library. */
-extern int getopt (int argc, char *const *argv, const char *shortopts);
-#else /* not __GNU_LIBRARY__ */
-extern int getopt ();
-#endif /* not __GNU_LIBRARY__ */
-extern int getopt_long (int argc, char *const *argv, const char *shortopts,
- const struct option *longopts, int *longind);
-extern int getopt_long_only (int argc, char *const *argv,
- const char *shortopts,
- const struct option *longopts, int *longind);
-
-/* Internal only. Users should not call this directly. */
-extern int _getopt_internal (int argc, char *const *argv,
- const char *shortopts,
- const struct option *longopts, int *longind,
- int long_only);
-#else /* not __STDC__ */
-extern int getopt ();
-extern int getopt_long ();
-extern int getopt_long_only ();
-
-extern int _getopt_internal ();
-#endif /* not __STDC__ */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _GETOPT_H */
diff --git a/contrib/libg++/include/libiberty.h b/contrib/libg++/include/libiberty.h
deleted file mode 100644
index 9e290125eed0e..0000000000000
--- a/contrib/libg++/include/libiberty.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/* Function declarations for libiberty.
- Written by Cygnus Support, 1994.
-
- The libiberty library provides a number of functions which are
- missing on some operating systems. We do not declare those here,
- to avoid conflicts with the system header files on operating
- systems that do support those functions. In this file we only
- declare those functions which are specific to libiberty. */
-
-#ifndef LIBIBERTY_H
-#define LIBIBERTY_H
-
-#include "ansidecl.h"
-
-/* Build an argument vector from a string. Allocates memory using
- malloc. Use freeargv to free the vector. */
-
-extern char **buildargv PARAMS ((char *));
-
-/* Free a vector returned by buildargv. */
-
-extern void freeargv PARAMS ((char **));
-
-/* Return the last component of a path name. */
-
-extern char *basename ();
-
-/* Concatenate an arbitrary number of strings, up to (char *) NULL.
- Allocates memory using xmalloc. */
-
-extern char *concat PARAMS ((const char *, ...));
-
-/* Check whether two file descriptors refer to the same file. */
-
-extern int fdmatch PARAMS ((int fd1, int fd2));
-
-/* Get the amount of time the process has run, in microseconds. */
-
-extern long get_run_time PARAMS ((void));
-
-/* Choose a temporary directory to use for scratch files. */
-
-extern char *choose_temp_base PARAMS ((void));
-
-/* Allocate memory filled with spaces. Allocates using malloc. */
-
-extern const char *spaces PARAMS ((int count));
-
-/* Return the maximum error number for which strerror will return a
- string. */
-
-extern int errno_max PARAMS ((void));
-
-/* Return the name of an errno value (e.g., strerrno (EINVAL) returns
- "EINVAL"). */
-
-extern const char *strerrno PARAMS ((int));
-
-/* Given the name of an errno value, return the value. */
-
-extern int strtoerrno PARAMS ((const char *));
-
-/* ANSI's strerror(), but more robust. */
-
-extern char *xstrerror PARAMS ((int));
-
-/* Return the maximum signal number for which strsignal will return a
- string. */
-
-extern int signo_max PARAMS ((void));
-
-/* Return a signal message string for a signal number
- (e.g., strsignal (SIGHUP) returns something like "Hangup"). */
-/* This is commented out as it can conflict with one in system headers.
- We still document its existence though. */
-
-/*extern const char *strsignal PARAMS ((int));*/
-
-/* Return the name of a signal number (e.g., strsigno (SIGHUP) returns
- "SIGHUP"). */
-
-extern const char *strsigno PARAMS ((int));
-
-/* Given the name of a signal, return its number. */
-
-extern int strtosigno PARAMS ((const char *));
-
-/* Register a function to be run by xexit. Returns 0 on success. */
-
-extern int xatexit PARAMS ((void (*fn) (void)));
-
-/* Exit, calling all the functions registered with xatexit. */
-
-#ifndef __GNUC__
-extern void xexit PARAMS ((int status));
-#else
-typedef void libiberty_voidfn PARAMS ((int status));
-__volatile__ libiberty_voidfn xexit;
-#endif
-
-/* Set the program name used by xmalloc. */
-
-extern void xmalloc_set_program_name PARAMS ((const char *));
-
-/* Allocate memory without fail. If malloc fails, this will print a
- message to stderr (using the name set by xmalloc_set_program_name,
- if any) and then call xexit.
-
- FIXME: We do not declare the parameter type (size_t) in order to
- avoid conflicts with other declarations of xmalloc that exist in
- programs which use libiberty. */
-
-extern PTR xmalloc ();
-
-/* Reallocate memory without fail. This works like xmalloc.
-
- FIXME: We do not declare the parameter types for the same reason as
- xmalloc. */
-
-extern PTR xrealloc ();
-
-/* Copy a string into a memory buffer without fail. */
-
-extern char *xstrdup PARAMS ((const char *));
-
-/* hex character manipulation routines */
-
-#define _hex_array_size 256
-#define _hex_bad 99
-extern char _hex_value[_hex_array_size];
-extern void hex_init PARAMS ((void));
-#define hex_p(c) (hex_value (c) != _hex_bad)
-/* If you change this, note well: Some code relies on side effects in
- the argument being performed exactly once. */
-#define hex_value(c) (_hex_value[(unsigned char) (c)])
-
-#endif /* ! defined (LIBIBERTY_H) */
diff --git a/contrib/libg++/include/obstack.h b/contrib/libg++/include/obstack.h
deleted file mode 100644
index 416b8bf531518..0000000000000
--- a/contrib/libg++/include/obstack.h
+++ /dev/null
@@ -1,518 +0,0 @@
-/* obstack.h - object stack macros
- Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
-
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU Library General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public License
-along with this program; if not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-/* Summary:
-
-All the apparent functions defined here are macros. The idea
-is that you would use these pre-tested macros to solve a
-very specific set of problems, and they would run fast.
-Caution: no side-effects in arguments please!! They may be
-evaluated MANY times!!
-
-These macros operate a stack of objects. Each object starts life
-small, and may grow to maturity. (Consider building a word syllable
-by syllable.) An object can move while it is growing. Once it has
-been "finished" it never changes address again. So the "top of the
-stack" is typically an immature growing object, while the rest of the
-stack is of mature, fixed size and fixed address objects.
-
-These routines grab large chunks of memory, using a function you
-supply, called `obstack_chunk_alloc'. On occasion, they free chunks,
-by calling `obstack_chunk_free'. You must define them and declare
-them before using any obstack macros.
-
-Each independent stack is represented by a `struct obstack'.
-Each of the obstack macros expects a pointer to such a structure
-as the first argument.
-
-One motivation for this package is the problem of growing char strings
-in symbol tables. Unless you are "fascist pig with a read-only mind"
---Gosper's immortal quote from HAKMEM item 154, out of context--you
-would not like to put any arbitrary upper limit on the length of your
-symbols.
-
-In practice this often means you will build many short symbols and a
-few long symbols. At the time you are reading a symbol you don't know
-how long it is. One traditional method is to read a symbol into a
-buffer, realloc()ating the buffer every time you try to read a symbol
-that is longer than the buffer. This is beaut, but you still will
-want to copy the symbol from the buffer to a more permanent
-symbol-table entry say about half the time.
-
-With obstacks, you can work differently. Use one obstack for all symbol
-names. As you read a symbol, grow the name in the obstack gradually.
-When the name is complete, finalize it. Then, if the symbol exists already,
-free the newly read name.
-
-The way we do this is to take a large chunk, allocating memory from
-low addresses. When you want to build a symbol in the chunk you just
-add chars above the current "high water mark" in the chunk. When you
-have finished adding chars, because you got to the end of the symbol,
-you know how long the chars are, and you can create a new object.
-Mostly the chars will not burst over the highest address of the chunk,
-because you would typically expect a chunk to be (say) 100 times as
-long as an average object.
-
-In case that isn't clear, when we have enough chars to make up
-the object, THEY ARE ALREADY CONTIGUOUS IN THE CHUNK (guaranteed)
-so we just point to it where it lies. No moving of chars is
-needed and this is the second win: potentially long strings need
-never be explicitly shuffled. Once an object is formed, it does not
-change its address during its lifetime.
-
-When the chars burst over a chunk boundary, we allocate a larger
-chunk, and then copy the partly formed object from the end of the old
-chunk to the beginning of the new larger chunk. We then carry on
-accreting characters to the end of the object as we normally would.
-
-A special macro is provided to add a single char at a time to a
-growing object. This allows the use of register variables, which
-break the ordinary 'growth' macro.
-
-Summary:
- We allocate large chunks.
- We carve out one object at a time from the current chunk.
- Once carved, an object never moves.
- We are free to append data of any size to the currently
- growing object.
- Exactly one object is growing in an obstack at any one time.
- You can run one obstack per control block.
- You may have as many control blocks as you dare.
- Because of the way we do it, you can `unwind' an obstack
- back to a previous state. (You may remove objects much
- as you would with a stack.)
-*/
-
-
-/* Don't do the contents of this file more than once. */
-
-#ifndef __OBSTACK_H__
-#define __OBSTACK_H__
-
-/* We use subtraction of (char *)0 instead of casting to int
- because on word-addressable machines a simple cast to int
- may ignore the byte-within-word field of the pointer. */
-
-#ifndef __PTR_TO_INT
-#define __PTR_TO_INT(P) ((P) - (char *)0)
-#endif
-
-#ifndef __INT_TO_PTR
-#define __INT_TO_PTR(P) ((P) + (char *)0)
-#endif
-
-/* We need the type of the resulting object. In ANSI C it is ptrdiff_t
- but in traditional C it is usually long. If we are in ANSI C and
- don't already have ptrdiff_t get it. */
-
-#if defined (__STDC__) && ! defined (offsetof)
-#if defined (__GNUC__) && defined (IN_GCC)
-/* On Next machine, the system's stddef.h screws up if included
- after we have defined just ptrdiff_t, so include all of stddef.h.
- Otherwise, define just ptrdiff_t, which is all we need. */
-#ifndef __NeXT__
-#define __need_ptrdiff_t
-#endif
-#endif
-
-#include
-#endif
-
-#ifdef __STDC__
-#define PTR_INT_TYPE ptrdiff_t
-#else
-#define PTR_INT_TYPE long
-#endif
-
-struct _obstack_chunk /* Lives at front of each chunk. */
-{
- char *limit; /* 1 past end of this chunk */
- struct _obstack_chunk *prev; /* address of prior chunk or NULL */
- char contents[4]; /* objects begin here */
-};
-
-struct obstack /* control current object in current chunk */
-{
- long chunk_size; /* preferred size to allocate chunks in */
- struct _obstack_chunk* chunk; /* address of current struct obstack_chunk */
- char *object_base; /* address of object we are building */
- char *next_free; /* where to add next char to current object */
- char *chunk_limit; /* address of char after current chunk */
- PTR_INT_TYPE temp; /* Temporary for some macros. */
- int alignment_mask; /* Mask of alignment for each object. */
- struct _obstack_chunk *(*chunkfun) (); /* User's fcn to allocate a chunk. */
- void (*freefun) (); /* User's function to free a chunk. */
- char *extra_arg; /* first arg for chunk alloc/dealloc funcs */
- unsigned use_extra_arg:1; /* chunk alloc/dealloc funcs take extra arg */
- unsigned maybe_empty_object:1;/* There is a possibility that the current
- chunk contains a zero-length object. This
- prevents freeing the chunk if we allocate
- a bigger chunk to replace it. */
- unsigned alloc_failed:1; /* chunk alloc func returned 0 */
-};
-
-/* Declare the external functions we use; they are in obstack.c. */
-
-#ifdef __STDC__
-extern void _obstack_newchunk (struct obstack *, int);
-extern void _obstack_free (struct obstack *, void *);
-extern int _obstack_begin (struct obstack *, int, int,
- void *(*) (), void (*) ());
-extern int _obstack_begin_1 (struct obstack *, int, int,
- void *(*) (), void (*) (), void *);
-extern int _obstack_memory_used (struct obstack *);
-#else
-extern void _obstack_newchunk ();
-extern void _obstack_free ();
-extern int _obstack_begin ();
-extern int _obstack_begin_1 ();
-extern int _obstack_memory_used ();
-#endif
-
-#ifdef __STDC__
-
-/* Do the function-declarations after the structs
- but before defining the macros. */
-
-void obstack_init (struct obstack *obstack);
-
-void * obstack_alloc (struct obstack *obstack, int size);
-
-void * obstack_copy (struct obstack *obstack, void *address, int size);
-void * obstack_copy0 (struct obstack *obstack, void *address, int size);
-
-void obstack_free (struct obstack *obstack, void *block);
-
-void obstack_blank (struct obstack *obstack, int size);
-
-void obstack_grow (struct obstack *obstack, void *data, int size);
-void obstack_grow0 (struct obstack *obstack, void *data, int size);
-
-void obstack_1grow (struct obstack *obstack, int data_char);
-void obstack_ptr_grow (struct obstack *obstack, void *data);
-void obstack_int_grow (struct obstack *obstack, int data);
-
-void * obstack_finish (struct obstack *obstack);
-
-int obstack_object_size (struct obstack *obstack);
-
-int obstack_room (struct obstack *obstack);
-void obstack_1grow_fast (struct obstack *obstack, int data_char);
-void obstack_ptr_grow_fast (struct obstack *obstack, void *data);
-void obstack_int_grow_fast (struct obstack *obstack, int data);
-void obstack_blank_fast (struct obstack *obstack, int size);
-
-void * obstack_base (struct obstack *obstack);
-void * obstack_next_free (struct obstack *obstack);
-int obstack_alignment_mask (struct obstack *obstack);
-int obstack_chunk_size (struct obstack *obstack);
-int obstack_memory_used (struct obstack *obstack);
-
-#endif /* __STDC__ */
-
-/* Non-ANSI C cannot really support alternative functions for these macros,
- so we do not declare them. */
-
-/* Pointer to beginning of object being allocated or to be allocated next.
- Note that this might not be the final address of the object
- because a new chunk might be needed to hold the final size. */
-
-#define obstack_base(h) ((h)->alloc_failed ? 0 : (h)->object_base)
-
-/* Size for allocating ordinary chunks. */
-
-#define obstack_chunk_size(h) ((h)->chunk_size)
-
-/* Pointer to next byte not yet allocated in current chunk. */
-
-#define obstack_next_free(h) ((h)->alloc_failed ? 0 : (h)->next_free)
-
-/* Mask specifying low bits that should be clear in address of an object. */
-
-#define obstack_alignment_mask(h) ((h)->alignment_mask)
-
-#define obstack_init(h) \
- _obstack_begin ((h), 0, 0, \
- (void *(*) ()) obstack_chunk_alloc, (void (*) ()) obstack_chunk_free)
-
-#define obstack_begin(h, size) \
- _obstack_begin ((h), (size), 0, \
- (void *(*) ()) obstack_chunk_alloc, (void (*) ()) obstack_chunk_free)
-
-#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
- _obstack_begin ((h), (size), (alignment), \
- (void *(*) ()) (chunkfun), (void (*) ()) (freefun))
-
-#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
- _obstack_begin_1 ((h), (size), (alignment), \
- (void *(*) ()) (chunkfun), (void (*) ()) (freefun), (arg))
-
-#define obstack_chunkfun(h, newchunkfun) \
- ((h) -> chunkfun = (struct _obstack_chunk *(*)()) (newchunkfun))
-
-#define obstack_freefun(h, newfreefun) \
- ((h) -> freefun = (void (*)()) (newfreefun))
-
-#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar)
-
-#define obstack_blank_fast(h,n) ((h)->next_free += (n))
-
-#define obstack_memory_used(h) _obstack_memory_used (h)
-
-#if defined (__GNUC__) && defined (__STDC__)
-#if __GNUC__ < 2
-#define __extension__
-#endif
-
-/* For GNU C, if not -traditional,
- we can define these macros to compute all args only once
- without using a global variable.
- Also, we can avoid using the `temp' slot, to make faster code. */
-
-#define obstack_object_size(OBSTACK) \
- __extension__ \
- ({ struct obstack *__o = (OBSTACK); \
- __o->alloc_failed ? 0 : \
- (unsigned) (__o->next_free - __o->object_base); })
-
-#define obstack_room(OBSTACK) \
- __extension__ \
- ({ struct obstack *__o = (OBSTACK); \
- (unsigned) (__o->chunk_limit - __o->next_free); })
-
-#define obstack_grow(OBSTACK,where,length) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- int __len = (length); \
- if (__o->next_free + __len > __o->chunk_limit) \
- _obstack_newchunk (__o, __len); \
- if (!__o->alloc_failed) \
- { \
- bcopy (where, __o->next_free, __len); \
- __o->next_free += __len; \
- } \
- (void) 0; })
-
-#define obstack_grow0(OBSTACK,where,length) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- int __len = (length); \
- if (__o->next_free + __len + 1 > __o->chunk_limit) \
- _obstack_newchunk (__o, __len + 1); \
- if (!__o->alloc_failed) \
- { \
- bcopy (where, __o->next_free, __len); \
- __o->next_free += __len; \
- *(__o->next_free)++ = 0; \
- } \
- (void) 0; })
-
-#define obstack_1grow(OBSTACK,datum) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- if (__o->next_free + 1 > __o->chunk_limit) \
- _obstack_newchunk (__o, 1); \
- if (!__o->alloc_failed) \
- *(__o->next_free)++ = (datum); \
- (void) 0; })
-
-/* These assume that the obstack alignment is good enough for pointers or ints,
- and that the data added so far to the current object
- shares that much alignment. */
-
-#define obstack_ptr_grow(OBSTACK,datum) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
- _obstack_newchunk (__o, sizeof (void *)); \
- if (!__o->alloc_failed) \
- *((void **)__o->next_free)++ = ((void *)datum); \
- (void) 0; })
-
-#define obstack_int_grow(OBSTACK,datum) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- if (__o->next_free + sizeof (int) > __o->chunk_limit) \
- _obstack_newchunk (__o, sizeof (int)); \
- if (!__o->alloc_failed) \
- *((int *)__o->next_free)++ = ((int)datum); \
- (void) 0; })
-
-#define obstack_ptr_grow_fast(h,aptr) (*((void **)(h)->next_free)++ = (void *)aptr)
-#define obstack_int_grow_fast(h,aint) (*((int *)(h)->next_free)++ = (int)aint)
-
-#define obstack_blank(OBSTACK,length) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- int __len = (length); \
- if (__o->chunk_limit - __o->next_free < __len) \
- _obstack_newchunk (__o, __len); \
- if (!__o->alloc_failed) \
- __o->next_free += __len; \
- (void) 0; })
-
-#define obstack_alloc(OBSTACK,length) \
-__extension__ \
-({ struct obstack *__h = (OBSTACK); \
- obstack_blank (__h, (length)); \
- obstack_finish (__h); })
-
-#define obstack_copy(OBSTACK,where,length) \
-__extension__ \
-({ struct obstack *__h = (OBSTACK); \
- obstack_grow (__h, (where), (length)); \
- obstack_finish (__h); })
-
-#define obstack_copy0(OBSTACK,where,length) \
-__extension__ \
-({ struct obstack *__h = (OBSTACK); \
- obstack_grow0 (__h, (where), (length)); \
- obstack_finish (__h); })
-
-/* The local variable is named __o1 to avoid a name conflict
- when obstack_blank is called. */
-#define obstack_finish(OBSTACK) \
-__extension__ \
-({ struct obstack *__o1 = (OBSTACK); \
- void *value; \
- if (__o1->alloc_failed) \
- value = 0; \
- else \
- { \
- value = (void *) __o1->object_base; \
- if (__o1->next_free == value) \
- __o1->maybe_empty_object = 1; \
- __o1->next_free \
- = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\
- & ~ (__o1->alignment_mask)); \
- if (__o1->next_free - (char *)__o1->chunk \
- > __o1->chunk_limit - (char *)__o1->chunk) \
- __o1->next_free = __o1->chunk_limit; \
- __o1->object_base = __o1->next_free; \
- } \
- value; })
-
-#define obstack_free(OBSTACK, OBJ) \
-__extension__ \
-({ struct obstack *__o = (OBSTACK); \
- void *__obj = (OBJ); \
- if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \
- __o->next_free = __o->object_base = __obj; \
- else (obstack_free) (__o, __obj); })
-
-#else /* not __GNUC__ or not __STDC__ */
-
-#define obstack_object_size(h) \
- (unsigned) ((h)->alloc_failed ? 0 : (h)->next_free - (h)->object_base)
-
-#define obstack_room(h) \
- (unsigned) ((h)->chunk_limit - (h)->next_free)
-
-/* Note that the call to _obstack_newchunk is enclosed in (..., 0)
- so that we can avoid having void expressions
- in the arms of the conditional expression.
- Casting the third operand to void was tried before,
- but some compilers won't accept it. */
-
-#define obstack_grow(h,where,length) \
-( (h)->temp = (length), \
- (((h)->next_free + (h)->temp > (h)->chunk_limit) \
- ? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
- ((h)->alloc_failed ? 0 : \
- (bcopy (where, (h)->next_free, (h)->temp), \
- (h)->next_free += (h)->temp)))
-
-#define obstack_grow0(h,where,length) \
-( (h)->temp = (length), \
- (((h)->next_free + (h)->temp + 1 > (h)->chunk_limit) \
- ? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0), \
- ((h)->alloc_failed ? 0 : \
- (bcopy (where, (h)->next_free, (h)->temp), \
- (h)->next_free += (h)->temp, \
- *((h)->next_free)++ = 0)))
-
-#define obstack_1grow(h,datum) \
-( (((h)->next_free + 1 > (h)->chunk_limit) \
- ? (_obstack_newchunk ((h), 1), 0) : 0), \
- ((h)->alloc_failed ? 0 : \
- (*((h)->next_free)++ = (datum))))
-
-#define obstack_ptr_grow(h,datum) \
-( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \
- ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \
- ((h)->alloc_failed ? 0 : \
- (*((char **)(((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *)datum))))
-
-#define obstack_int_grow(h,datum) \
-( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \
- ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \
- ((h)->alloc_failed ? 0 : \
- (*((int *)(((h)->next_free+=sizeof(int))-sizeof(int))) = ((int)datum))))
-
-#define obstack_ptr_grow_fast(h,aptr) (*((char **)(h)->next_free)++ = (char *)aptr)
-#define obstack_int_grow_fast(h,aint) (*((int *)(h)->next_free)++ = (int)aint)
-
-#define obstack_blank(h,length) \
-( (h)->temp = (length), \
- (((h)->chunk_limit - (h)->next_free < (h)->temp) \
- ? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
- ((h)->alloc_failed ? 0 : \
- ((h)->next_free += (h)->temp)))
-
-#define obstack_alloc(h,length) \
- (obstack_blank ((h), (length)), obstack_finish ((h)))
-
-#define obstack_copy(h,where,length) \
- (obstack_grow ((h), (where), (length)), obstack_finish ((h)))
-
-#define obstack_copy0(h,where,length) \
- (obstack_grow0 ((h), (where), (length)), obstack_finish ((h)))
-
-#define obstack_finish(h) \
-( (h)->alloc_failed ? 0 : \
- (((h)->next_free == (h)->object_base \
- ? (((h)->maybe_empty_object = 1), 0) \
- : 0), \
- (h)->temp = __PTR_TO_INT ((h)->object_base), \
- (h)->next_free \
- = __INT_TO_PTR ((__PTR_TO_INT ((h)->next_free)+(h)->alignment_mask) \
- & ~ ((h)->alignment_mask)), \
- (((h)->next_free - (char *)(h)->chunk \
- > (h)->chunk_limit - (char *)(h)->chunk) \
- ? ((h)->next_free = (h)->chunk_limit) : 0), \
- (h)->object_base = (h)->next_free, \
- __INT_TO_PTR ((h)->temp)))
-
-#ifdef __STDC__
-#define obstack_free(h,obj) \
-( (h)->temp = (char *)(obj) - (char *) (h)->chunk, \
- (((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
- ? (int) ((h)->next_free = (h)->object_base \
- = (h)->temp + (char *) (h)->chunk) \
- : (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0)))
-#else
-#define obstack_free(h,obj) \
-( (h)->temp = (char *)(obj) - (char *) (h)->chunk, \
- (((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
- ? (int) ((h)->next_free = (h)->object_base \
- = (h)->temp + (char *) (h)->chunk) \
- : (_obstack_free ((h), (h)->temp + (char *) (h)->chunk), 0)))
-#endif
-
-#endif /* not __GNUC__ or not __STDC__ */
-
-#endif /* not __OBSTACK_H__ */
diff --git a/contrib/libg++/libg++/ChangeLog b/contrib/libg++/libg++/ChangeLog
deleted file mode 100644
index 506a841abbdd2..0000000000000
--- a/contrib/libg++/libg++/ChangeLog
+++ /dev/null
@@ -1,2271 +0,0 @@
-Tue Jun 18 18:36:58 1996 Jason Merrill
-
- * Version 2.7.2.
-
-Fri Dec 1 15:35:03 1995 Per Bothner
-
- * libg++.texi: Don't document 'and' function etc, since they
- are no longer available if __STRICT__ANSI__.
-
- * Makefile.in: Generate g++FAQ.txt and g++FAQ.html from g++FAQ.texi.
- (diststuff): Also build g++FAQ.txt.
- * configure.in (REAL_CLEAN): Remove g++FAQ.{txt,html}.
- * g++FAQ.txt: Removed - now generated automatically.
-
- * configure.in (configdirs): Remove old-stream.
-
-Fri Apr 19 17:24:51 1996 Jason Merrill
-
- * Version 2.8.0b3.
-
-Wed Apr 10 02:30:52 1996 Jason Molenda (crash@phydeaux.cygnus.com)
-
- * g++FAQ.texi, g++FAQ.txt: Update to April 5 version.
-
-Mon Apr 8 15:04:37 1996 Ian Lance Taylor
-
- * configure.in: Permit --enable-shared to specify a list of
- directories.
-
-Wed Mar 27 11:54:08 1996 Jason Merrill
-
- * Version 2.8.0b2.
-
-Wed Feb 28 10:00:24 1996 Jason Merrill
-
- * Version 2.8.0b1.
-
- * *, config/*: Remove references to curses stuff.
-
- * g++FAQ.txt (Subject): Update to February 15 version.
-
-Tue Dec 19 15:13:08 1995 Jason Merrill
-
- * config/aix.ml (SHFLAGS): Add -Wl,-unix.
-
-Sun Dec 17 00:26:54 1995 Jeffrey A Law (law@cygnus.com)
-
- * Makefile.in (install): Make sure shared libraries
- are installed with mode 555.
-
-Mon Dec 4 14:07:02 1995 Jason Merrill
-
- * config/hpux.ml: HPUX has shared libcurses.
-
- * Makefile.in (install): Make symbolic links relative.
-
-Tue Nov 28 14:26:49 1995 Brendan Kehoe
-
- * Makefile.in (piclist): Use test instead of the left bracket, to
- avoid problems with some versions of make.
-
-Sat Nov 25 11:47:26 1995 Doug Evans
-
- * configure.in: Delete changing LIBIBERTY to xiberty if cross.
-
- * Makefile.in (install): Fix setting of rootme.
-
-Tue Nov 21 14:16:35 1995 Ian Lance Taylor
-
- * configure.in: Check ${with_cross_host} rather than comparing
- ${host} and ${target}.
-
-Tue Nov 14 01:34:06 1995 Doug Evans
-
- * Makefile.in (RX_OBJ): Delete MULTITOP reference.
- (SHLIB, ../librx/rx.o): Likewise.
- * configure.in: Delete call to cfg-ml-com.in. Call config-ml.in
- instead of cfg-ml-pos.in.
- * src/configure.in (XCINCLUDES): Delete MULTITOP reference.
- (config-ml.in): Call instead of cfg-ml-pos.in.
- * src/depend: Regenerated.
-
-Sun Nov 12 16:28:06 1995 Per Bothner
-
- * g++FAQ.texi, g++FAQ.txt: Update to September 15 version.
-
- * Makefile.in (VERSION), README: Update to 2.7.1.
-
-Thu Nov 9 17:45:00 1995 Jason Merrill
-
- * config/*.ml: Don't include -lcurses in LIBS. Tweak.
-
- * configure.in (MOSTLYCLEAN): Add piclist.
-
-Wed Nov 8 17:02:42 1995 Jason Merrill
-
- * Makefile.in (piclist): Don't include CursesW.o for targets that
- lack a shared libcurses.
-
-Mon Nov 6 14:18:16 1995 Jason Merrill
-
- * config/linux.ml: Be sure to get the right libstdc++.
-
-Thu Oct 26 22:51:44 1995 Per Bothner
-
- * Makefile.in (VERSION): Increase to 2.7.0.90.
-
-Tue Oct 24 15:53:59 1995 Brendan Kehoe
-
- * config/sol2shm.ml: New file, to pass -R to links.
- * configure.in: For solaris2*, use sol2shm.ml instead of elfshlibm.ml.
-
-Tue Sep 26 15:22:31 1995 Jason Merrill
-
- * config/irix5.ml: Pass -rpath to links.
-
-Fri Sep 15 00:24:52 1995 Jason Merrill
-
- * config/linux.ml: Conform to Linux shared library numbering scheme.
- * Makefile.in: Ditto.
-
-Mon Aug 21 11:46:03 1995 Jason Merrill
-
- * Makefile.in (install): Make shared library executable and
- non-writable. Tidy.
-
-Sat Jul 22 14:00:26 1995 Doug Evans
-
- * Makefile.in (list): Add multilib support.
- ($(SHLIB), rx.o, install): Likewise.
- * configure.in: Likewise.
- * src/Makefile.in (install): Likewise.
- * src/configure.in (XCINCLUDES): Likewise.
- * src/depend: Regenerated.
-
-Wed Jun 28 13:45:24 1995 Per Bothner
-
- * g++FAQ.texi, g++FAQ.txt: New versions from Joe Buck.
-
-Tue Jun 27 01:56:34 1995 Jeffrey A. Law
-
- * config/hpux.ml (SHFLAGS): Use $(PICFLAG), not $(LIBCFLAGS).
-
-Fri Jun 23 16:54:17 1995 Jason Merrill
-
- * Makefile.in (SHLINK): Force link.
- (install): Ditto.
-
- * Makefile.in (SHARLIB): Provide a default value.
-
-Fri Jun 16 15:35:33 1995 Per Bothner
-
- * g++FAQ.texi, g++FAQ.txt: New files: Joe Buck's FAQ for G++.
-
-Thu Jun 15 21:01:10 1995 Per Bothner
-
- * Makefile.in (VERSION): Set to 2.7.0
-
-Fri Jun 16 13:57:22 1995 Jason Merrill
-
- * config/aix.ml: Build both shared and archive libraries.
-
-Wed Jun 14 21:44:21 1995 Jason Merrill
-
- * configure.in (frags): Use linux.ml for Linux/ELF.
- * config/linux.ml: New file.
-
-Wed Jun 7 11:13:32 1995 Jason Merrill
-
- * configure.in (MOSTLYCLEAN): Remove stamp-picdir.
-
-Mon Jun 5 18:41:03 1995 Jason Merrill
-
- * Makefile.in (piclist): New rule.
- (SHLIB): Use it.
-
- * configure.in (MOSTLYCLEAN): Remove pic.
- (frags): Use toplevel pic frags.
-
- * config/*.ml: Build both shared and archive libraries.
-
-Mon May 22 23:36:42 1995 Per Bothner
-
- * Makefile.in (VERSION): Bump to 2.6.90.
- (install): Re-format; add missing semi-colon.
-
-Wed May 10 05:07:45 1995 Jason Merrill
-
- * config/aix.ml: New file.
-
- * configure.in (enable_shared): Support enable_shared under AIX.
-
- * Makefile.in (SHARLIB): New variable and rule for building an
- archive library containing a single shared object (for AIX).
-
-Wed Apr 19 23:22:36 1995 Jason Merrill
-
- * config/dec-osf.ml (SHDEPS): Link with -lstdc++.
-
- * Makefile.in (SHLIB): Don't link with -lstdc++.
-
-Sun Apr 16 17:54:28 1995 Per Bothner
-
- * README: Minor updates.
- * libg++.texi: Fix two typos.
-
-Wed Mar 8 16:34:44 1995 Jason Merrill
-
- * config/elf.ml (LIBS): Also link with libstdc++.
- * config/sunos4.ml: Ditto.
-
- * config/dec-osf.ml (LIBS): Pass -rpath to linker.
-
-Thu Feb 16 00:13:44 1995 Jason Merrill
-
- * Makefile.in, config/*.ml: Generate shared library on most hosts
- as libg++.so.$(VERSION), with a symlink to libg++.so, so that
- multiple versions can coexist.
-
-Fri Jan 20 01:34:04 1995 Jason Merrill
-
- * Makefile.in (list): Don't include files from libio and libiberty.
- (SHLIB): Link with libstdc++.
-
- * README.SHLIB: Add note about setting LD_LIBRARY_PATH.
-
-Mon Dec 5 19:45:21 1994 Per Bothner
-
- * README: Add note about AIX.
- * NEWS: Mention STL and shared library support.
-
-Wed Nov 9 01:24:09 1994 Jason Merrill
-
- * README.SHLIB: Update for new shared library support.
-
-Mon Nov 7 16:22:44 1994 Jason Merrill
-
- * configure.in, config/*.ml: Handle --enable-shared.
- (ALL): Reference 'libs' now.
- (MOSTLYCLEAN): Handle 'list'.
- (CLEAN): $(BUILD_LIBS) replaces $(TARGETLIB).
-
- * Makefile.in (ALL, CHECK, TARGET_LIB): Remove.
- (ARLIB): libg++.a.
- (SHLIB): libg++.so.
- (SHFLAGS): flags used when building $(SHLIB).
- (SHDEPS) : libraries linked when building $(SHLIB).
- (LIBIBERTY_OBJECTS_TO_GET): Reference file in other directory.
- (list): Build master list of objects.
- (libg++.a): Use it.
- (libg++.so): Ditto.
- (install): Only ranlib $(ARLIB).
-
-Sat Nov 5 16:09:24 1994 Per Bothner
-
- * Makefile.in (VERSION): Update to 2.6.2.
- * Makefile.in: Support for adding in ../libio/rx.o into libg++.a
- moved here from src/Makefile.in.
- * NEWS, README: Update. Libstdc++ is now enabled by default.
-
-Fri Nov 4 17:14:09 1994 Per Bothner
-
- * NEWS, TODO: Fix typos.
-
-Mon Oct 24 15:43:09 1994 Per Bothner
-
- * configure.in: Remove no-longer-used NOSTDINC setting.
- * utils/etags.c: Removed. The one in emacs-19 is better maintained.
- * utils/Makefile.in, utils/configure.in, README: Removed etags stuff.
-
-Thu Oct 20 17:07:53 1994 Per Bothner
-
- * README, NEWS: Note libstdc++. Other updates.
-
- * README.SHLIB: Update from Joseph E. Sacco .
-
-Tue Oct 18 17:52:42 1994 Per Bothner
-
- * README: Minor improvements.
- * README.SHLIB: New file. (Notes on building shared libraries.)
- * utils/c++-mode.el: Removed.
-
-Thu Oct 13 18:29:02 1994 Jason Merrill (jason@phydeaux.cygnus.com)
-
- * Makefile.in (install): Warn if we detect headers from a pre-2.5
- installation.
-
- * README: Add more information about problems from old
- installations.
-
-Wed Aug 24 12:54:04 1994 Ian Lance Taylor (ian@sanguine.cygnus.com)
-
- * configure.in: Change i[34]86-*-linux to i[345]86-*-linux.
-
-Sat Aug 20 12:12:01 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (VERSION): Increase to 2.6.1.
- * NEWS: Note use of librx.
-
-Fri Jul 22 00:09:06 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * utils/etags.c: Replace index -> strchr and rindex -> strrchr.
- Protect extern definitions of strchr, strrchr, strcpy, strncpy,
- and strcmp by #ifndef's in case they are macros.
- (This is a problem under AIX-3.2.5, as reported by
- Tom McConnell .)
- Remove commented-out definitions of index and rindex.
-
-Wed Jul 13 12:56:43 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (VERSION): Increase to 2.6.
- * README, NEWS, TODO: Some updating.
-
-Mon Jul 11 18:56:59 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * README: Update libg+.texinfo -> libg++.texi,
- Take out Doug Lea's prominent address.
-
-Tue May 31 09:25:41 1994 Mike Stump (mrs@cygnus.com)
-
- * utils/etags.c: Add #include , to avoid warning on alpha.
-
-Mon May 30 17:34:39 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (install): Various cleaning up.
- Move commands to install include files to src/Makefile.in.
-
-Wed May 25 16:00:55 1994 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (VERSION): Set to 2.5.4.
-
-Thu Mar 17 22:35:05 1994 Per Bothner (bothner@deneb.cygnus.com)
-
- * configure.in: Always set NOSTDINC in Makefiles. (Don't try
- to determine if C++ compiler can handle it. We can't really
- do that with the current configure setup.)
- * README: Recommend build using 'make all "CC=gcc -O"'.
- Note "make NOSTDIC=" is needed if using non-g++.
-
-Mon Mar 7 13:51:57 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
-
- * Makefile.in (.stmp-tests): Don't recurse into tests directory if
- it does not exist.
-
-Sun Dec 19 19:04:12 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (VERSION): Set to 2.5.3.
- * README.386bsd: Removed.
-
-Fri Nov 26 19:07:36 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (VERSION): Set to 2.5.2.
-
-Thu Nov 4 16:58:40 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (VERSION): Update to version 2.5.1.
- * Makefile.in (install): Remove code to install g++-include.
- * configure.in: Restore code to set NOSTDINC.
-
-Wed Nov 3 11:50:21 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
-
-Mon Nov 1 17:56:05 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * g++-include directory: Removed. (We assume fixproto now.)
-
-Mon Oct 25 21:08:33 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * libg++.texi: Fix typo Slater -> [Daliel] Sleator.
- Reported by Nathan Loofbourrow .
-
-Sat Oct 23 22:06:00 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (VERSION): Update to version 2.5.
- * README, NEWS: Various updates.
-
-Thu Oct 14 16:04:10 1993 Karen Christiansen (karen@deneb.cygnus.com)
-
- * configure.in: changed mv to mv -f
-
-Mon Oct 11 12:43:51 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in: Bump version number to 2.4.90.
- * README, NEWS: Update.
- * Makefile.in: Remove iostream references.
-
-Mon Oct 4 17:47:51 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * libg++.texi: Note NIHCL availability and status.
- * Makefile.in: Bump version number to 2.4.8.
-
-Wed Aug 25 13:00:55 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config/{aix3-1.mt, hpux.mt, isc.mt, sco4.mt}:
- Moved to ../libio/config (since they affect _G_config.h).
- * configure.in: Don't set my_target for sco/hpux/isc/aix.
-
-Wed Aug 18 12:23:19 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in: Use FOO.list files instead of SUBDIR/stamp.
-
-Tue Aug 17 18:36:08 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- Set up for using ../libio instead of ./iostream.
- * Makefile.in (SUBDIRS): Don't include IO_DIR.
- * utils/gen-params: Moved to ../libio.
- * Makefile.in: Don't build or use _G_config.h; use ../libio.
- * Makefile.in (stamp-libg++.a, libg++.a): Re-do to use
- $(IO_DIR)/iostream-files, where IO_DIR defaults to ../libio.
- * config.shared: Now just a stub that invokes ../libio/config.shared.
- * utils/configure.in (srctrigger): gen-params -> g++dep.sh.
-
-Wed Aug 4 17:29:14 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com)
-
- * Makefile.in (install): add some 'else true' clauses for the
- dain-bramaged DECstation Bourne shell
-
-Tue Aug 3 11:41:27 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * config.shared: Change INSTALL to use ../install.sh -c.
- * configure.in: Removed setting of INSTALL*.
- * configure.in: Removed reference to aix.mt.
- * config/aix.mt: Removed; no longer needed.
- * config/{aix3-1.mt, hpux.mt, linux.mt, sco4.mt, solaris2.mt}:
- Removed no-longer-needed setting of INSTALL*, NOSTDINC,
- HAVE_CPLUS_EXTERN, and WRAP_C_INCLUDES.
-
-Sun Jul 25 19:21:45 1993 Per Bothner (bothner@kalessin)
-
- * config.shared: Set WRAP_C_INCLUDES to no longer search
- g++-include, now that gcc has the fixproto script.
- * configure.in: Don't need -nostdinc++ flag any more,
- now that we're not using g++-include (with its #include_nexts).
- * config.shared: Restructure *clean rules, partly to
- avoid some duplication.
- * README: Various clarifications.
-
-Wed Jul 7 15:33:39 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
-
- * utils/gen-params (DOLLAR_IN_LABEL): Look for `7filebuf' instead
- of just `filebuf' on the vtable name.
-
-Tue Jun 29 13:02:39 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in (VERSION): Set to 2.4 (yeah!).
- * Makefile (install): Don't depend on all.
- * config.shared: Undo change of Jun 25.
- * configure.in: Handle *-*-solaris like *-*-solaris2.
-
-Fri Jun 25 12:23:22 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * config.shared: Make install-info depend on info.
-
-Wed Jun 23 12:56:23 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Define VERSION (for cd ..; make taz).
- * Makefile.in: Set to version 2.3.91.
- * Makefile.in (diststuff): Needed for distributions.
- * Makefile (dts): Rip out. Subsumed by stuff in ../Makefile.in.
-
-Tue Jun 22 13:16:30 1993 Per Bothner (bothner@deneb.cygnus.com)
-
- * README.386bsd: Patches for 386bsd.
- * utils/etags.c: Add AIX alloca support.
- * config.shared (CXXINCLUDES): Fix quoting bug.
- * libg++.texi: Document Integer methods fits_in_long(),
- as_long(), fits_in_double(), as_long().
-
-Tue Jun 15 11:54:42 1993 Per Bothner (bothner@deneb.cygnus.com)
-
- * config.shared (CLEAN): Default to ${TARGETPROG} ${TARGETLIB}.
- * configure.in (DISTCLEAN): Add target-mkfrag.
-
-Mon Jun 7 13:13:27 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Increase version number to 2.3.90.
- * configure.in: Always automatically generate a target Makefile
- fragment, and then posibly append the one in config/*.mt.
- This means the config/*.mt only needs to contain what is
- different from the normal case, which should ease updates.
- * config/rs6000.mt: Replace by aix3-1.mt (for buggy AIX 3.1),
- and aix.mt (for more recent versions).
- * config/isc.mt: New file.
- * configure.in: Update for above config/*.mt changes.
-
-Tue Jun 1 16:53:14 1993 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in (stamp-$(TARGETLIB)): Delegate adding the
- files from $(IODIR) to the sub-Makefile, invoking latter
- with target add-to-targetlib.
- * Makefile.in (_G_config.h): Set CC=$(CXX) when invoking
- utils/gen-params, to "force" use of C++ compiler.
-
- * no-stream/Makefile.in (add-to-targetlib): New rule.
- * utils/gen-params: Remove OLD_PLACEMENT support.
-
-Fri Jun 4 14:14:39 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (installcheck): Pass CXXFLAGS to test-install.
- * config.shared: It's .SUFFIXES, not SUFFIXES.
-
-Thu Jun 3 00:53:03 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in (install): split off the running of the installation
- tests into a new target, installcheck
-
-Wed May 12 13:39:46 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * utils/Makefile.in (etags.o, etags): Build etags via etags.o,
- rather than directly from etags.c.
-
-Tue May 11 16:32:31 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
-
- * utils/gen-params: Look for new types `int32_t' and `uint32_t'.
-
-Mon May 10 09:57:25 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * configure.in: Create target-mkfrag using move-if-change.
-
-Thu May 6 09:24:21 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (install): If TEST_INSTALL was overridden by
- configure.in, don't try to install the test-install directory.
- * configure.in: If cross, take gperf, test-install and utils out
- of configdirs. Otherwise they wind up in subdirs and get built.
- Override TEST_INSTALL to be empty rather than Makefile.
-
-Mon May 3 18:55:19 1993 Per Bothner (bothner@cygnus.com)
-
- * configure.in: If cross, use sed to hack Makefile, rather
- than appending to target_makefile_frag, since that doesn't
- work if there is a pre-existing fragment.
- * Makefile.in: Re-order INSTALLDIR.
-
-Mon May 3 11:45:41 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * config.shared: Added missing quotes around TOUCH_ON_COMPILE.
-
-Fri Apr 30 15:12:36 1993 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in (tooldir): New definition.
- * Makefile.in (install): Install _G_config in $(tooldir)/include,
- since it is the only include file that is target-dependent.
- * Makefile.in (dist-fix-Makefile): Remove no-longer-needed kludge.
- * config.shared: If TOUCH_ON_COMPILE is defined (at configure
- time), make sure to 'touch stamp' on every compile.
- This prevents unneeded re-builing of libg++.a.
-
-Wed Apr 28 11:44:05 1993 Ian Lance Taylor (ian@rtl.cygnus.com)
-
- * config.shared (MAKEOVERRIDES): Define to be empty.
-
-Tue Apr 27 15:52:19 1993 Per Bothner (bothner@cygnus.com)
-
- * config.shared (FLAGS_TO_PASS): Also pass INSTALL, INSTALL_DATA,
- and INSTALL_PROGRAM.
- * Makefile.in: Remove duplicate definition of FLAGS_TO_PASS.
- Replace uses of BASE_FLAGS_TO_PASS by FLAGS_TO_PASS.
-
-Tue Apr 27 11:09:04 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * config.shared: info depends on .info files, not .texi files.
-
-Fri Apr 23 11:31:01 1993 Brendan Kehoe (brendan@lisa.cygnus.com)
-
- * configure.in (target_makefile_frag): If there was one in srcdir,
- then reset it to include ${srcdir} so we'll copy it properly.
-
-Sun Apr 18 23:54:45 1993 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in and configure.in all directories, config.shared:
- Revamped configure scheme. See libg++/NEWS.
- * README: Some extra information, including a note
- about what it means when test-install fails.
- * libg++.texinfo: Renamed to libg++.texi.
- * gen-params: Minor improvements (we hope) here and there.
-
-Tue Mar 23 00:14:33 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: minimal support for installcheck (FIXME), some
- support for dvi target
-
-Fri Mar 19 10:35:32 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * david d `zoo' zuhn's patches for ARG_MAX:
- Makefile.in (BASE_FLAGS_TO_PASS): New variable.
- (FLAGS_TO_PASS): Use BASE_FLAGS_TO_PASS.
- (info, install-info, install): Use BASE_FLAGS_TO_PASS.
- (subdir_do): Don't echo FLAGS_TO_PASS.
-
-Fri Mar 12 18:35:02 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: recognize *-*-solaris2* instead of *-*-solaris2
-
-Fri Mar 5 11:41:15 1993 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (MAKEOVERRIDES): Override GNU make 3.63 default
- definition in order to reduce length of command line.
-
-Wed Feb 17 05:28:51 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in: when making include files non-executable, make them
- world readable as well
-
-Mon Jan 25 14:40:28 1993 Brendan Kehoe (brendan@cygnus.com)
-
- * config/alpha.mh: New file, for DEC's Alpha family.
-
-Wed Jan 13 21:17:26 1993 Mike Stump (mrs@cygnus.com)
-
- * .../Makefile.in, utils/gen-params, configure.in: Change .../gcc
- to .../xgcc.
-
-Tue Jan 5 02:38:37 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: get the xiberty kludge "working"
-
-Wed Dec 30 14:15:31 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in (info): added -I to command line, for @include
-
-Tue Dec 29 08:54:13 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * utils/gen-params: Define _G_MATH_H_INLINES. Based only on
- arguments to gen-params; no test yet.
- * config/sco4.mt, config/hpux.mt (G_CONFIG_ARGS): pass
- MATH_H_INLINES as 1.
-
- * Makefile.in: pass $(FLAGS_TO_PASS) to all calls to make.
-
-Mon Dec 28 12:07:11 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * utils/gen-params: added check for CURSES_FORMAT_ARG, which
- differs from system to system.
-
- * configure.in: for SCO 3.2v4 use sco4.
- * config/sco4.mh: new file: SCO header files are C++ ready, and
- SCO curses doesn't work with libg++ curses.
-
-Tue Dec 22 14:58:04 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * utils/gen-params: At end, delete all temporary files.
- * configure.in: Don't bother linking lgpl.texinfo.
- Clean up temp.o when done.
- * Makefile.in: Set version number to 2.3.1.
- * Makefile.in (*clean rules): Use ALL_SUBDIRS, which includes
- old-stream and no-stream.
- * Makefile.in: Add dependencies for libg++.a, to support
- parallel makes.
-
-Tue Dec 15 14:45:05 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: configure based on target, instead of host. This
- was a simple text substitution, which also involved renaming:
-
- * config/{hpux.mt,linux.mt,rs6000.mt,solaris2.mt}: renamed from .mh
-
-Sat Dec 12 00:05:42 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: No longer use HAVE_CPLUS_EXTERN; we can use
- WRAP_C_INCLUDES instead. This should be somewhat more robust,
- since we only depend on WRAP_C_INCLUDES being over-ridden.
- * configure.in: Don't generate HAVE_CPLUS_EXTERN.
-
-Wed Dec 9 15:08:34 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Set version to 2.3.
- * README, NEWS, TODO: Various updates.
-
-Fri Dec 4 17:44:40 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in (install): Pass CXX to test-install, not CC.
- * Makefile.in (dist): Use new ../etc directory for config stuff.
-
-Thu Dec 3 20:03:05 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Bump to version 2.2.95.
- * Makefile.in (distclean, realclean): Don't delete
- Makefile until *after* recursive makes.
- * Makefile.in: Add a kludge to reconcile FSF/Cygnus conflict.
-
-Fri Nov 20 15:34:27 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * Makefile.in (install): don't change permissions on all info files,
- just the ones that get installed by this Makefile
-
-Fri Nov 20 14:34:52 1992 Per Bothner (bothner@cygnus.com)
-
- * configure.in: Add etc/fib to subdirs.
- * configure.in, config/{linux,solaris2}.mh: Fix typo
- INSTALLDATA -> INSTALL_DATA.
-
-Tue Nov 17 21:48:10 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Bump to 2.2.92.
- * Makefile.in (install): Use $(FLAGS_TO_PASS).
-
- * utils/gen-params: More "robust" sed patterns for extracting
- type definitions.
-
-Sat Nov 7 19:45:42 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * config/solaris2.mh: New file, for Sun's Solaris2 OS.
- * configure.in: Use it.
-
-Thu Nov 5 18:45:53 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Bump to version 2.1.91.
- * Makefile.in, */Makefile.in, etc: Replace ${C++} and
- ${C++FLAGS} by ${CXX} and ${CXXFLAGS}. (Some versions of
- 'make' do not like '+' in variable names.)
- * Makefile.in (install): Fix typo (chmod directory).
-
-Mon Nov 2 13:20:54 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Don't pass $(NOSTDINC) as part of $(CC).
- * Makefile.in (dist): include/demangle.h is also needed.
-
-Sun Nov 1 16:25:00 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in, */Makefile.in, etc: Use ${C++} (and ${C++FLAGS})
- to compile C++ programs, not ${CC}.
- * Makefile.in: Bump to version 2.2.90.
- * Makefile.in: Use FLAGS_TO_PASS more consistently.
-
-Sat Oct 31 19:24:05 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * libg++.texinfo: Fix a number of typos (from
- meyering@cs.utexas.edu (Jim Meyering)).
-
-Fri Oct 9 16:44:30 1992 Per Bothner (bothner at PersSony)
-
- * Makefile.in: Fixed rule for building libg++.a to not do
- anything if everyting is up-to-date, using a stamp-libg++.a
- indicator file.
-
-Tue Sep 29 15:47:05 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * COPYING, COPYING-LIB: Removed (- use versions in ..).
- * README: Update accordingly.
-
-Fri Sep 25 11:28:24 1992 Per Bothner (bothner@cygnus.com)
-
- * utils/gen-params: Define the type names (such as _G_size_t)
- using typedefs, not macros.
- * utils/gen-params: Add commented-out hook for turning
- off use of templates (for old compilers).
-
-Thu Oct 1 23:53:29 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
-
- * configure.in: use cpu-vendor-os triple instead of nested cases
-
-Tue Sep 29 12:07:35 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * utils/gen-params: do the stdarg test with C++, not C, since
- otherwise a type incompatibility is only a warning.
-
-Tue Sep 15 15:43:35 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in (install): install libg++.a in $(INSTALLDIR), which
- defaults to $(libdir), not $(tooldir). Default $(gxx_includedir)
- to $(tooldir/g++-include; the g++-include directory is currently
- target dependent because of the _G_config.h file. Also, gcc now
- looks in $(tooldir) by default.
- configure.in: if cross-compiling, override $(INSTALLDIR) to
- $(tooldir)/lib.
-
-Fri Sep 11 16:05:08 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * configure.in, Makefile.in: When cross-compiling, don't build
- gperf, or the utils directory, or test-install.
-
-Thu Sep 10 22:49:34 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * utils/gen-params: test for existence of curses.h. It's not in
- newlib. Also corrected a couple of typos.
-
-Wed Sep 9 12:34:00 1992 Ian Lance Taylor (ian@cygnus.com)
-
- * Makefile.in: try to get correct version of nm for target for
- gen-params.
-
-Mon Aug 31 16:14:34 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Bump to version 2.2.3.
- * Makefile.in: Convert ${readme} to be `pwd`/ (with a
- trailing slash) (as done in iostream).
-
-Mon Aug 17 17:15:06 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * utils/gen-params: Allow command-line (e.g. HAVE_UNISTD=0)
- to override feature testing for various include files.
- * Makefile.in: Pass $(NOSTDINC) to gen-params.
- Turn off execute permission after installing data.
-
-Wed Aug 12 00:33:09 1992 Per Bothner (bothner@cygnus.com)
-
- * utils/c++-mode.el: New version.
-
- * Makefile.in: Change to version 2.2.1.
- * Makefile.in: Remove some old junk.
- Let 'install' depend on 'all'.
- Let 'install' also install gperf.
- * utils/gen-params: Test for Posix-compatible (or rather
- iostream/procbuf.C-compatible) sys/wait.h by compiling
- C++ test program, not C. Fixes NeXT problem, I hope.
- Also, fix typo when predefined DOLLAR_IN_LABEL (fixes hpux).
-
-Mon Aug 10 11:38:14 1992 Ian Lance Taylor (ian@dumbest.cygnus.com)
-
- * Makefile.in: always create installation directories.
-
-Fri Jun 26 12:26:35 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Change to version 2.2.
- * Makefile.in: Don't `cd ../libiberty; make'; since this
- may cause some confusion (with old versions of GNU make
- passing the wrong environment); instead assume that
- ../Makefile takes care of it.
- * configure.in, config/hpux.mh: hpux support.
- * utils/etags.c: stat fixes for Posix and SVR3.
- * utils/gen-params: Minor fixes.
-
-Mon Jun 22 23:54:31 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Increase to version 2.1.92.
- * utils/gen-params. Add some paranoia when trying to
- figure out a type for _G_ssize_t - make sure it doesn't
- conflict with read().
-
-Fri Jun 19 23:15:13 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Increase to version 2.1.91.
- * utils/etags.c: New version, from emacs-19.
- * utils/Makefile.in: New etags needs GNU getopt.
- * utils/gen-params: Take out _G_HAVE_UNION_WAIT testing.
- Instead, check that wait() will accept an (int*) - as
- Posix and tradition (but not NeXT) says it should -
- if it doesn't, say that we don't HAVE_SYS_WAIT.
-
-Wed Jun 17 18:48:16 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Increase version number to 2.1.90.
- * no-stream/Makefile.in: New directory and file.
- Useful for building libg++ *without* iostreams.
- * Makefile.in, */Makefile.in: Cleanup *clean rules,
- following standards.texi.
- * utils/gendepend: Remove tempoary file depend.tmp.
- * utils/gen-params: Check if defines union wait.
- * WHATS.NEW: Merge old stuff from (deleted) etc/release.log.
- * configure.in: Check that we find an install that works;
- for SYSV, also try /usr/ucb/install.
- * TODO, README, libg++.texinfo: Minor changes.
-
-Wed Jun 3 23:10:20 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Set version number to 2.1.
- * utils/gen-params: If ${NAMES_HAVE_UNDERSCORE} is non-null,
- use that value; don't bother trying to deduce it.
- Ditto for ${DOLLAR_IN_LABEL}.
- Replace sed-idiom -n -e 1,1p by -e '2,$d', because the
- former doesn't work in GNU sed.
- Add sigset_t to the list of types searched for.
- Look for and defined _G_HAVE_SYS_WAIT appropriately.
- * vms/{_G_config.h,AAAREADME.TXT}: New versions from Youngdale.
- * libg++.texinfo: Note failure behavior for String::before().
- * Makefile.in: Use FLAGS_TO_PASS variable to be more
- consistent about flags to pass to sub-makes.
- Add some hooks for people with unusual environments:
- Unually powerful C-libraries, or they don't want iostreams
- to be part of libg++.a.
- * configure.in: Test for Linux configuration.
- Avoid confusing error message when looking for ranlib.
-
-Fri May 29 13:08:12 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * utils/gen-params: Remove TMP before running a sed which
- writes to it (GNU sed supposedly has a bug where in that it
- doesn't truncate a file before writing to it).
- * Makefile.in: Include strerror.o strsignal.o (from libiberty).
-
- * Makefile.in: Bump to version 2.0.91.
- * etags.c: #undef TRUE and FALSE before defining, to
- avoid collisions. (These inevitable collisions make it
- a mistake to define TRUE and FALSE in the first place.)
- * gen-params: Test for .
- Use ${SED} instead of sed, since GNU sed may be broken.
- Check if the type we found for va_list works, and have
- a fall-back plan for when it doesn't.
- * gen-params: Check for sprintf return type.
- Don't emit unneeded _G_const.
- * config/mt-*: Remove unused and obsolete files.
- * vms directory: Updates from Eric Youngdale.
- * README: Minor fixes.
-
-Thu May 14 12:29:29 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Set version to 2.0.90.
- * Makefile.in: Pass new flags to test-install, now that
- test-install has been changed to to use ../libg++.a etc;
- override that to use -lg++ etc to get inststalled versions.
- * COPYING: Replace by version 2 GPL.
- * README: Explain what copyrights apply to what.
- * libg++.texinfo: Remove comments about gperf, since it
- is not part of libg++ proper (and is GPL, not LGPL).
-
- * util/gen-params: Re-order in a logical order.
- Change _G_NO_UNISTD_H to _G_HAVE_UNISTD for consistency.
- Add test for _G_FRIEND_BUG (if the compiler barfs on
- extern "C" functions as friends).
-
-Wed May 13 12:06:57 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * configure.in: Make sure to append 'depend' (if it exists)
- to each Makefile.
-
-Sat May 9 12:43:38 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Bump version to 2.0.9.
-
- * WHATS.NEW: Be more expansive.
- * configure.in: Fix some typos.
- * Various Makefile.in's: Pass $(NOSTDINC) when compiling.
- Also, fix some other CFLAGS problems.
-
-Wed May 6 11:48:32 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * utils/gen-params: Also #include in dummy.c,
- so we can get clock_t.
-
- * utils/gen-params: Moved argument evaluation to start.
- Pass -I${gccdir}/include if using ${gccdir}/gcc.
- * Makefile.in: Pass $(XTRAFLAGS) to gen-params.
- * vms directory: Renamed _G_CONFIG.H to _G_config.h.
-
-Sat May 2 16:48:07 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * vms directory: New files from Eric Youngdale.
-
-Thu Apr 30 13:42:59 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * Makefile.in: Bump to version 2.0.8 for "progressive" release.
- * every Makefile.in: Replace gcc -O by just gcc, for constiency.
- * utils/gen-params: Rename every temp.c -> dummy.c.
- Add test for sys/resource.h, and use that instead of the
- no-longer-meaning test for sysv.
- * Makefile.in: Install sys/*.h from g++-include, not src.
- Fix so that 'make libg++.a' does the right thing.
-
-Mon Apr 20 14:59:59 1992 Per Bothner (bothner@cygnus.com)
-
- * utils/gen-params: Add introductory commentary.
- Replace tabs by space in dummy.out, so following
- sed scripts don't have to worry about tabs.
-
-Thu Apr 30 09:06:32 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: add .NOEXPORT so that subdirs don't inherit
- bad definitions. Notably, so that libiberty doesn't inherit
- host_makefile_frag.
-
-Fri Apr 17 13:50:41 1992 Per Bothner (bothner@cygnus.com)
-
- * configure.in: Use new 'subdirs' feature of configure,
- to configure all sub-directories in one invocation of
- 'configure'. This means we can get rid of all subdir
- configure.in files, and we can share configuration files.
- * configure.in: If there is no host makefile fragment.
- generate one.
- * Makefile.in, */Makefile.in, etc: Use new configure scheme.
- Also, define CC using a test for ../gcc/gcc, not just
- a ../gcc directory. Similar for AR etc.
- * utils/gen-params: New shell script to generate a .h
- file with various system-specific parameters.
- * Makefile.in: New rule to generate _G_config.h using
- utils/gen-params. All Makefiles include the top-level
- directory in the include search path, to make sure they
- get _G_config.h (which is the the libg++ build directory,
- not the srcdir).
-
-Mon Mar 23 16:46:01 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * libg++.texinfo: Remove references to itoa and similar
- deprecated functions that return a pseudo-static buffer
- (allocated by AllocRings). Replace by reference
- to (new) printon() methods.
-
-Tue Mar 10 18:06:49 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Bump to version 2.0.
- * Makefile.in (dist): Fix to avoid symlink cycles.
-
-Sat Mar 7 19:36:35 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in (dist): Handle '.' as a srcdir.
-
-Sat Mar 7 00:03:05 1992 K. Richard Pixley (rich@rtl.cygnus.com)
-
- * Make.defs: removed.
-
- * libg++.texinfo: added menu item hook.
-
-Fri Mar 6 16:51:58 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in: bump version to 1.99.
-
-Fri Mar 6 15:53:13 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Remove some obsolete stuff.
- * README, WHATS.NEW: Update.
- * PROBLEMS renamed to TODO.
-
-Thu Mar 5 00:18:15 1992 Heinrich G. Seidl (hgs@cygnus.com)
-
- * configure.in, Makefile.in: use `g++' as compiler for the library
- as does the user.
-
- * Make.defs: use again awk for depend rules, since sed
- has too many bugs (sun's and GNU).
- utils/g++dep.sh: print each dependency on one line
-
-Wed Mar 4 12:04:45 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Don't pass $(MAKE_ENVIRON) to test-install,
- since we're trying to test the *installed* compiler.
- Also, install-progs before the test-install.
-
-Tue Mar 3 23:01:05 1992 Per Bothner (bothner@cygnus.com)
-
- * PROBLEMS: Added to list of things to do.
-
-Tue Mar 3 21:06:38 1992 Heinrich G. Seidl (hgs@rtl.cygnus.com)
-
- * Created `utils' directory and moved "progs" from
- `etc' into `utils'.
- Makefile.in: `all' builds only programs and the libary,
- `check' builds all in `tests' and `etc' and
- runs the tests.
- Some minor bug fixes to Makefiles.
-
-Tue Mar 3 16:58:38 1992 Per Bothner (bothner@cygnus.com)
-
- * vms directory: New files from
- Eric Youngdale .
-
-Sun Mar 1 17:17:54 1992 Per Bothner (bothner@cygnus.com)
-
- * Makefile.in: Added 'check' and 'etc-tests' rules.
-
-Thu Feb 27 17:05:49 1992 Per Bothner (bothner@cygnus.com)
-
- * Make.defs: Change GXX from g++ to gcc, since g++
- passes -lg++ to ld, which may not be installed yet.
-
-Wed Feb 26 18:04:40 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in, configure.in: removed traces of namesubdir,
- -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced
- copyrights to '92, changed some from Cygnus to FSF.
-
-Wed Feb 26 12:46:49 1992 Per Bothner (bothner at cygnus.com)
-
- * Make.defs: Change IDIR to use libdir instead of
- datadir, to be compatible with FSF's gcc-2.0.
- * Makefile.in: Removed bogus '@' prefix in rule.
-
-Wed Feb 26 01:24:34 1992 Michael Tiemann (tiemann at cygnus.com)
-
- * Make.defs: Propagate XTRAFLAGS into MAKE_ENVIRON.
-
-Wed Feb 19 23:23:02 1992 Per Bothner (bothner at cygnus.com)
-
- * Make.defs: Add IO_SRCDIR macro to name source
- of either isotream or old-stream. This allows
- an independent iostream distribution.
- * Make.defs (depend rule): Create empty file if no sources.
- * README: Move change summary to WHATS.NEW.
- * WHATS.NEWS: Minor updates (and merge).
- * COPYING-LIB: New file defining Library Licence.
-
-Sat Feb 15 13:06:50 1992 Per Bothner (bothner at cygnus.com)
-
- * Makefile.in (dist): Add some more top-level (above
- libg++) files to the distribution.
-
- * Makefile.in: Bumped LIBG++_DIST_VERSION to 1.91.
- * README: Made some very inadequate updates.
-
-Mon Feb 10 11:28:19 1992 Per Bothner (bothner at rtl.cygnus.com)
-
- * libg++.texinfo: Discourage use of AllocRings,
- and encourage care using String::operator const char *.
- (The latter has just now been changed to not copy
- using an AllocRing.)
-
-Fri Feb 7 11:46:18 1992 Per Bothner (bothner at cygnus.com)
-
- * Makefile.in: Added LIBG++_DIST_VERSION; set it to 1.90.
- Added 'dist' rule to make distribution tar file.
- * libg++.texinfo: Preliminary changes to document
- new iostream facilities.
-
-Fri Jan 31 17:13:11 1992 Per Bothner (bothner at cygnus.com)
-
- * WHATS.NEW: New file, to document recent changes.
-
-Wed Jan 29 12:54:10 1992 Per Bothner (bothner at cygnus.com)
-
- * Make.defs: Change LIBDIR and IDIR so that libg++.a and
- g++-include/* go info $(libdir) and $(datadir)/g++-include.
- Thus we don't have to worry about gcc's $(libsubdir)
- depending on gcc's version number.
- Also, add compilation rules for *.C.
-
-Sat Jan 25 15:59:01 1992 Per Bothner (bothner at PersSony)
-
- * Make.defs, all Makefile.in files: Centralize rules for
- depend, FORCE, and Makefile in MAke.defs. Remove such
- rules from every Makeifle.in.
- * Makefile.in: Don't pass GXXFLAGS or EH_FILES to sub-makes.
-
-Fri Jan 17 15:32:01 1992 Per Bothner (bothner at cygnus.com)
-
- * Make.defs: Make iostream be the default value of IO_DIR.
- Removed duplicate -I$(SRCIDIR) from COMPILE.cc macro.
-
-Sun Jan 5 00:23:20 1992 Per Bothner (bothner at cygnus.com)
-
- * Makefile.in, Make.defs, old-stream/Makefile.in:
- Fix install-include-files rule.
- * Makefile.in, Make.defs: Move installation directory
- names and INSTALL defines from former to latter.
- * configure.in: Add test-install directory.
-
- * Makefile.in, Make.defs: Move stuff from former to latter.
- * Make.defs: Allow switching between old stream and new
- iostream library. Allow use from any sub-directory.
- * configure.in: Add old-stream and gperf sub-directories.
-
-Fri Jan 3 16:36:31 1992 Per Bothner (bothner at cygnus.com)
-
- * Complex.h, Fix.h, String.h, gen/DLList.ccP, gen/SLList.ccP,
- gen/Plex.ccP, gen/Vec.hP: Add #include as needed.
- It was included by the old stream.h, but not by the new iostream.h.
- * String.h: Fix some portabilty problems that depended
- on the old stream code.
-
-Thu Jan 2 21:07:04 1992 John Gilmore (gnu at cygnus.com)
-
- * Makefile.in (info, install-info, clean-info): Handle info files.
- (assorted): Clean up unused macros, etc.
-
- * libg++.texinfo: Minor lint found by makeinfo and tex.
-
-Tue Dec 31 18:16:12 1991 Per Bothner (bothner at cygnus.com)
-
- Changes that allow makes to take be made either from here,
- or directly in a sub-directory.
- * Make.defs: New file to contain defiitions shared between
- libg++ sub-directories.
- * Makefile.in: Removed stuff now in Make.defs.
- * configure.in: Add iostream to configdirs.
- Define host_makefile_frag to pull in Make.defs.
-
-Tue Feb 19 06:41:00 1991 Doug Lea (dl at g.oswego.edu)
-
- * malloc.c: Don't override use of libg++ version of bcopy
- for SYSV users
-
- * timer.cc: Removed ifdefs for tek4300, since they are reported
- not to be necessary or useful
-
- * CursesW.h, curses.h: removed touchline and touchoverlap,
- since they are apparently nonstandard, and aren't supported
- in most C curses libraries.
-
- * Removed test0 and twrapper from tests, since
- they are not fully supported in g++-1.39.0
-
-Sat Jan 26 05:24:22 1991 Doug Lea (dl at g.oswego.edu)
-
- * signal.h: Reinstate full path name of C version of signal.h
-
-Fri Jan 25 08:45:09 1991 Doug Lea (dl at g.oswego.edu)
-
- * BitSet.h, BitString.h: pos and index fns inlined regardless
- of __OPTIMIZE__, since needed elsewhere.
-
- * RNG.h killed redundant #ifdef __GNU__
-
-Fri Dec 28 06:31:03 1990 Doug Lea (dl at g.oswego.edu)
-
- * FPQueue.hP, FPStack.hP: removed defaults from defs (kept in decls)
-
-Sat Dec 22 14:51:40 1990 Doug Lea (dl at g.oswego.edu)
-
- * Integer.cc; atoIntRep: pulled sgn assignment out of loop
-
-Fri Dec 14 16:43:04 1990 Doug Lea (dl at g.oswego.edu)
-
- * Complex.cc: Fixed pow(Complex, Complex), and added
- pow(Complex, double), from thc@cs.brown.edu
-
-Wed Dec 12 11:47:51 1990 Doug Lea (dl at g.oswego.edu)
-
- * malloc.c: Killed prototype decls of fputs, fprintf;
- just use whatever stdio.h gives.
-
-Thu Nov 29 13:02:32 1990 Doug Lea (dl at g.oswego.edu)
-
- * dtoa.cc: better bounds for workspace arrays
-
-Wed Nov 7 05:53:36 1990 Doug Lea (dl at g.oswego.edu)
-
- * ACG.cc: function LCG marked as static
-
-Sun Oct 28 05:32:30 1990 Doug Lea (dl at g.oswego.edu)
-
- * std.h: ioctl decl now has void*, not char* as last param, since
- sometimes need to pass in structs.
-
-Sat Oct 20 05:51:21 1990 Doug Lea (dl at g.oswego.edu)
-
- * sys/socket.h: added getpeername decl
-
-Tue Oct 16 08:00:14 1990 Doug Lea (dl at g.oswego.edu)
-
- * Integer.cc (div) Overallocate `r' if necessary to ensure
- trailing 0.
-
-Mon Oct 15 05:11:09 1990 Doug Lea (dl at g.oswego.edu)
-
- * EH2.c: Added __raise_exception from tiemann
-
-Thu Oct 11 05:50:34 1990 Doug Lea (dl at g.oswego.edu)
-
- * VHMap.ccP, CHMap.ccP. Base initializers explicitly name base
- classes in constructors
-
-Sat Oct 6 08:56:56 1990 Doug Lea (dl at g.oswego.edu)
-
- * RNG.cc: `volatile' added for vars that might have
- greater precision in FP hardware than in memory, to
- force comparisons to be done with memory versions,
- thus avoiding rounding error.
-
- * Incorporated patches for graph from rich@rice.edu
-
- * CHMap.hP: Fixed ifdef name to match class name for CHNode
-
-Sun Sep 30 06:50:45 1990 Doug Lea (dl at g.oswego.edu)
-
- * pow.cc: removed redundant tests
-
-Tue Sep 4 15:07:35 1990 Doug Lea (dl at g.oswego.edu)
-
- * Regex.cc: Don't die when someone declares Regex(0).
-
-Mon Aug 27 06:06:08 1990 Doug Lea (dl at g.oswego.edu)
-
- * curses.h, CursesW: added vax to list of implementations not
- supporting touchline & touchoverlap
-
-Thu Aug 23 05:46:16 1990 Doug Lea (dl at g.oswego.edu)
-
- * std.h, resource.h text.hello.cc: more changes for i386
-
- * sys/wait.h: Include , not
-
- * MPlex.hP: low() now returns lowest valid index. Similar
- changes elsewhere.
-
- * (stdio.h, math.h...) Installed patches for HPUX 7.0
-
-Mon Aug 13 08:17:29 1990 Doug Lea (dl at g.oswego.edu)
-
- * istream.h: ctor istream(int filedesc, char* buf, int buflen,
- int sk, ostream* t = 0) -- made sk non-default to
- prevent ambiguous matches.
-
- * Makefiles: rearrangements, patches from Ron Guillmette
- to enable compiles of etc and gperf files without install
-
- * Added swap.h, from Ron Guilmette. Apparently needed for
- Hansen's C++ answer book code.
-
- * String.h: String operator() made a synonym for at(int, int),
- for compatibilty with Hansen's classes.
-
- * ostream.h: added ostream << (const void * p) to print p in hex.
-
- * std.h: qsort should return void; srand takes unsigned arg
- (required under USG, doesn't matter for others).
-
- * Added complex.h, to include Complex.h & typedef Complex complex;
- similarly with strclass.h
-
- * builtin.h: Added min & max inlines; added min.h, max.h,
- minmax.h, and abs.h to just include builtin.h
-
- * values.h: defined HIBITS, HIBITL
-
- * CursesW.h, curses.h: sequent patches from jw@sics.se
-
- * streambuf.h: sputback renamed sputbackc for AT&T 1.2 compatibility
-
-Sat Aug 11 08:01:00 1990 Doug Lea (dl at g.oswego.edu)
-
- * MPlex.ccP: fixed off by one errors reported by bashford@scripps.edu
-
- * stdio.h: more patches from will@nirvana.westford.ccur.com
-
- * made #pragma implementation files for ctype, MIN, MAX, std,
- curses, compare, math. Changed .h files accordingly
-
-Thu Aug 9 06:19:17 1990 Doug Lea (dl at g.oswego.edu)
-
- * SmplHist.h: fixed bad #include
-
-Wed Aug 8 09:49:56 1990 Doug Lea (dl at g.oswego.edu)
-
- * Shortened all .h and .cc file names to work for SYSV,
- even ones preoviously OK because they were in own subdir.
- Necessary for #pragma interface. Yuck.
-
-Mon Aug 6 09:54:23 1990 Doug Lea (dl at g.oswego.edu)
-
- * stdio.h, math.h, etc., added masscomp support from
- will@nirvana.westford.ccur.com
-
- * twrapper, tgwrapper: killed now-unnecessary deletes
-
-Wed Jul 25 10:05:13 1990 Doug Lea (dl at g.oswego.edu)
-
- * stdio.h: new #defines for i386
-
- * DLList.ccP (ins_after). Prepend if null pix, as stated in doc.
-
- * installed malloc.c revisions
-
-Fri Jul 20 12:00:05 1990 Doug Lea (dl at g.oswego.edu)
-
- * ostream.h (put) prevent sign extension comparing against EOF
-
-Tue Jul 17 10:06:12 1990 Doug Lea (dl at g.oswego.edu)
-
- * libg++.texinfo updated
-
-Thu Jul 12 08:10:07 1990 Doug Lea (dl at g.oswego.edu)
-
- * added Maxima.h from Igor Metz
-
-Fri Jul 6 06:19:32 1990 Doug Lea (dl at g.oswego.edu)
-
- * etc/PlotFile3D: updates from ngo
-
- * time.h don't include /usr/include/time.h on NeXT
-
-Mon Jul 2 07:48:51 1990 Doug Lea (dl at g.oswego.edu)
-
- * installed VMS patches from Eric Youngdale
-
-
- * filebuf.cc (underflow) only reset iobuf ptrs if successful
-
- * filebuf.cc (overflow) loop ::write's in case whole
- request can't be satisfied in one
-
-Sat Jun 23 12:18:54 1990 Doug Lea (dl at g.oswego.edu)
-
- * added bcopy.c, compiled ifdef USG, to guarantee compatibility,
- from Eric Newton. Changed corresponding std.h declarations.
-
- * std.h: added declarations for re_comp, re_exec
-
- * (.h's, .hP's) added conditional compilation of
- inlines under optimization only for all files
- with #pragma interface
-
-Thu Jun 7 08:23:10 1990 Doug Lea (dl at g.oswego.edu)
-
- * killed all g++ prefix const member functions, since they
- are no longer supported in g++.
-
- * (everywhere) added support for #pragma interface
- and #pragma implementation; undid .il files since these
- will be done via same mecahnism in g++.
-
-Fri May 25 10:39:18 1990 Doug Lea (dl at g.oswego.edu)
-
- * filebuf.cc (open) O_WRONLY added to append mode flags
-
-Sun May 6 09:27:06 1990 Doug Lea (dl at g.oswego.edu)
-
- * Complex.cc operator /(Complex&) replaced with that from
- romine, that avoids potential under & overflow.
-
- * std.h; Commented out declaration for umask, pending a better
- fix, since it is wrong for SunOS4.1
-
- * File.cc, Curses.cc: patches to work with vsscanf from bothner
-
-Tue May 1 07:45:29 1990 Doug Lea (dl at g.oswego.edu)
-
- * math.h #include belongs inside extern "C"
-
-Fri Apr 27 06:15:32 1990 Doug Lea (dl at g.oswego.edu)
-
- * String.cc (ncopy0): null terminate even if same source
-
-Thu Apr 19 07:29:24 1990 Doug Lea (dl at g.oswego.edu)
-
- * Map.ccP (Map::error): error message reads "Map", not "Set"
-
-Tue Apr 17 10:32:25 1990 Doug Lea (dl at g.oswego.edu)
-
- * Stack, Queue, Set, Bag, Map .hP : added virtual destructors
-
-Fri Apr 6 07:05:31 1990 Doug Lea (dl at g.oswego.edu)
-
- * List.hP (pop) patch from dsouza
-
-Wed Apr 4 12:21:29 1990 Doug Lea (dl at g.oswego.edu)
-
- * Makefiles: use make var AR, not just ar
-
- * streambuf.cc (setbuf) delete old base if one was allocated
-
-Tue Apr 3 08:07:45 1990 Doug Lea (dl at g.oswego.edu)
-
- * time.h, std.h: changes for convex from schmidt
-
- * installed new malloc.c, with valloc & memalign added.
-
-Thu Mar 29 08:28:16 1990 Doug Lea (dl at g.oswego.edu)
-
- * stddef.h : added offsetof macro.
-
-Tue Mar 20 11:24:41 1990 Doug Lea (dl at g.oswego.edu)
-
- * Sample.cc: Confidence intervals now call t with degrees of freedom,
- (n-1), not n.
-
-Sat Mar 17 10:17:02 1990 Doug Lea (dl at g.oswego.edu)
-
- * All genclass-able files moved to g++-include/gen.
- genclass.sh script file changed accordingly.
-
- * (Everywhere) All X.h file inlines moved to il/X.il,
- and only inlcuded when optimizing. Backup libg++.a
- versions now generated via src/Xi.cc files.
- Exceptions: ctype.h, and std.h (for SysV->Bsd conv (like bcopy))
-
- * Regex.h now a separate file from String.h
-
-Mon Mar 12 06:53:57 1990 Doug Lea (dl at g.oswego.edu)
-
- * RPlex.cc:RPlex:: RPlex(int l, int chunksize). Fixed
- incorrect biasing of initial chunk indices.
-
-Sun Mar 11 05:40:29 1990 Doug Lea (dl at g.oswego.edu)
-
- * timer.cc: ifdef USG -> if defined(USG) || defined(tek4300)
-
-Wed Feb 28 05:27:15 1990 Doug Lea (dl at g.oswego.edu)
-
- * gperf: patches from schmidt
-
- * Makefiles: removed dependencies on /usr/include files
-
-Tue Feb 27 05:21:22 1990 Doug Lea (dl at g.oswego.edu)
-
- * Installed c++-mode.el update from detlefs
-
-Mon Feb 26 08:03:32 1990 Doug Lea (dl at g.oswego.edu)
-
- * Incremental.h now includes a default destructor to avoid linking
- problems. Thanks to eirik@elf.TN.Cornell.EDU.
-
- * all `error' routines now have const char*, not char* args.
-
- * Plex classes revamped to support const Plexes. Also,
- removed `changes', `changed', since they aren't necessary anymore
-
-Sat Feb 24 05:56:13 1990 Doug Lea (dl at g.oswego.edu)
-
- * File.h verbose_error_handler, et al now have const char*, not
- char* args
-
- * Installed EH2.cc in src
-
-Mon Feb 19 08:34:51 1990 Doug Lea (dl at g.oswego.edu)
-
- * installed Ngo's PlotFile3D in libg++/etc
-
-Sat Feb 17 05:28:25 1990 Doug Lea (dl at g.oswego.edu)
-
- * installed Schmidt's gperf, trie-gen, and Patricia revisions
-
- * String.cc pos <= 0 should be pos < 0
-
-Tue Feb 13 08:21:11 1990 Doug Lea (dl at g.oswego.edu)
-
- * Itolong (Integer.cc) patch from salzman@rand.org
-
-Mon Feb 12 08:21:07 1990 Doug Lea (dl at g.oswego.edu)
-
- * allowed separate inclusion of ostream.h, istream.h and/or stream.h
-
-Thu Feb 8 07:02:49 1990 Doug Lea (dl at g.oswego.edu)
-
- * PlotFile: patches from ngo for Convex byte-ordering.
-
-Tue Feb 6 06:29:11 1990 Doug Lea (dl at g.oswego.edu)
-
- * Vec.ccP: sort() killed goto, replaced with nested if's,
- since g++ complains about binding contours.
-
-Sat Feb 3 08:30:06 1990 Doug Lea (dl at g.oswego.edu)
-
- * Getopt.h: opterr is public, not private
-
- * builtin.cc, Random.cc, streambuf.cc broken into little pieces
-
- * std.h getpgrp, setpgrp now have (...) signatures, since
- some versions on some systems have arguments.
-
- * put in malloc revision
-
- * prepend-header: globbing changes via ngo's patches
-
- * Plex: fixed declaration mismatches for fill
-
-Tue Jan 30 10:22:35 1990 Doug Lea (dl at g.oswego.edu)
-
- * kmp.cc: modified to use libg++ GetOpt, not libc getopt
-
-Wed Jan 24 05:47:53 1990 Doug Lea (dl at g.oswego.edu)
-
- * broke out struct xyzzy from builtin.cc into its own file in /src
-
-Sun Jan 21 09:44:10 1990 Doug Lea (dl at g.oswego.edu)
-
- * sys/types.h: protect wchar_t and ptrdiff_t from /usr/include version
-
- * stddef.h: wchar_t now defaults as unsigned short
-
-Sat Jan 20 08:51:01 1990 Doug Lea (dl at g.oswego.edu)
-
- * sys/file.h KERNEL now defined only if ultrix.
- Also a typo: file_f should be file_h
-
-Fri Jan 19 05:18:03 1990 Doug Lea (dl at g.oswego.edu)
-
- * malloc.c: added #ifndef NO_NEW_HANDLER, so malloc.c
- compilable in C environments with no new handlers, and
- other #ifdefs to make it C++-compilable as well.
-
-Tue Jan 16 04:54:27 1990 Doug Lea (dl at g.oswego.edu)
-
- * libg++-1.36.3 released.
-
- * etc/benchmarks: enabled various options, now that
- g++ works with them.
-
- * values.h vax MAX/MINFLOAT changed to be same as expected by gcc.
-
- * streambuf.cc: Filebuf::overflow(): Fp->eof() is not an
- error condition.
-
- * std.h, stdio.h: more extern C fns declared as
- returning int, not void when not specified as void by ANSI
- or C man pages.
-
-Sat Jan 13 13:41:29 1990 Doug Lea (dl at g.oswego.edu)
-
- * stdio.h: puts returns int
-
-Fri Jan 12 05:49:09 1990 Doug Lea (dl at g.oswego.edu)
-
- * etc/lf/Dirent.h closedir returns void on some system, so
- Dirent versions do too.
-
-Wed Jan 10 10:01:15 1990 Doug Lea (dl at g.oswego.edu)
-
- * Rational.h: 175 typo
-
-Mon Jan 8 09:43:14 1990 Doug Lea (dl at g.oswego.edu)
-
- * file.h: more protection against getting bad fn declarations
- from /usr/include
-
- * builtin.cc: removed dependency on float.h
-
- * String.h Join, replicate need to be friends
-
-Sat Jan 6 08:48:18 1990 Doug Lea (dl at g.oswego.edu)
-
- * from rfg: minor DGUX accomodations in std.h, stdio.h,
- math.h
-
-Fri Jan 5 06:41:02 1990 Doug Lea (dl at g.oswego.edu)
-
- * from Widen: added warning about tCurses needing linefeeds
- on broken libcurses, fixed misc typos, added cfree() to malloc.c
-
- * math.h -- added inline defs of isnan and isinf for sequents
-
-Wed Jan 3 08:29:43 1990 Doug Lea (dl at g.oswego.edu)
-
- * builtin.cc: Deleted global _libgxx_io_oblast: no longer needed
- killed extern decls of it elsewhere.
-
- * Strings, Integers: finished/cleaned up previous changes
-
-Tue Jan 2 10:43:29 1990 Doug Lea (dl at g.oswego.edu)
-
- * Integer.cc: isolated copy and clear calls to allocation fns
-
- * Strings: Removed StrTmp class, added double concatenation
-
-Mon Dec 11 08:31:48 1989 Doug Lea (dl at g.oswego.edu)
-
- * AVLSet.cc op &= plugged little memory leak: when u is exhausted,
- but t isn't, delete rest of t.
-
- * AVLMap: _delete: cont field wasn't copied in a case it should
- have been
-
- * merged tSet2 back into tSet and tBag2 back into tBag
-
- * BitSet.cc (BitSetCompl) ensure all 1's in s[0] when
- complementing empty set
-
- * builtin.cc (return_elapsd_time, set_timer) No longer #ifdef'ed
- for machines -- new .h organization should work for all.
-
- * builtin.cc (lg) redeclared as unsigned->long
-
- * DGUX patches from rfg installed
-
-Tue Dec 5 11:58:51 1989 Doug Lea (dl at g.oswego.edu)
-
- * BitSet, Integer, Rational: added constness, removed Tmp
- classes, and used named return values
-
-Sat Dec 2 06:21:12 1989 Doug Lea (dl at g.oswego.edu)
-
- * builtin.cc (dtoa) #if _IEEE != 0 handle isnan, isinf
-
- * builtin.cc (itoa) force unsigned division in case
- num == MININT
-
-Fri Dec 1 10:08:21 1989 Doug Lea (dl at g.oswego.edu)
-
- * istream::operator>> clear eof if at eof but got something valid
-
- * String::match and Regex::match return -1 on failure, since
- 0 could be a legal value
-
- * gnulib3.c: Commented out ON_EXIT stuff. On Suns, for some
- reason, on_exit routines don't link into libraries right.
-
- * std.h: fixed getopt proto
-
- * stat.h : added fn protos
-
- * installed Schmidt's reorganization of etc
-
- * math-68881.h fix paren error noted on bug-gcc list
-
- * CursesWindow(WINDOW*) initialize sib
-
- * Renamed AllocQueue to AllocRing
-
- * test.hello.cc #ifdefs for MIPSEL
-
- * Plex::del_chunk() delete the chunk, not just the chunk's data
-
-Sat Nov 25 12:50:06 1989 Doug Lea (dl at g.oswego.edu)
-
- * VStack, VQueue: add operator =()
-
- * Obstack::Obstack don't allocate on constructor, just on
- first use
-
- * String::_gsub: don't build new rep if no matches
-
- * builtin.h: added more versions of abs
-
- * installed new malloc, and new.{h, cc}
-
-
-Thu Nov 23 06:20:17 1989 Doug Lea (dl at g.oswego.edu)
-
- * added Schmidt's g++dep to etc
-
- * math.h: additions for anint(), etc., HP HAVE_FPU
-
-Wed Nov 22 14:48:24 1989 Doug Lea (dl at g.oswego.edu)
-
- * Added Schmidt's trie-gen to libg++/etc
-
-Tue Nov 21 08:50:47 1989 Doug Lea (dl at g.oswego.edu)
-
- * streambuf: eptr is now the pointer to the last valid
- char in buffer, not the fence pointer, for AT&T compatibilty
-
- * stream, streambuf : Added line buffered put's as default
- must #define NO_LINE_BUFFER_STREAMBUF to override
-
-Mon Nov 20 09:52:47 1989 Doug Lea (dl at g.oswego.edu)
-
- * Plex: finish previous change: add_low, add_high don't introduce
- straggling chunks
-
- * new.h: typo, plus add default placement version of new()
-
- * PlotFile, BitString, Fix16 .h's: more cfrontisms
-
-Sun Nov 19 07:38:36 1989 Doug Lea (dl at g.oswego.edu)
-
- * removed File::operator FILE*() because it can lead
- to ambiguities.
-
- * incorporated cfront-dependent #ifdefs, etc. from Schmidt
-
- * Fix24: integrated patches from wang
-
-Sat Nov 18 07:17:04 1989 Doug Lea (dl at g.oswego.edu)
-
- * XPlex, RPlex, MPlex (del_low, del_high) old straggling
- empty chunks weren't being deleted. fixed.
-
-Thu Nov 16 05:56:43 1989 Doug Lea (dl at g.oswego.edu)
-
- * resource.h: added getrlimit, setrlimit
-
-Wed Nov 15 05:54:46 1989 Doug Lea (dl at g.oswego.edu)
-
- * String.h: typo const& Regex => const Regex&
-
-Fri Nov 10 06:45:55 1989 Doug Lea (dl at g.oswego.edu)
-
- * Makefile: force submakes in non-gnumake fashion
-
-Thu Nov 9 09:32:21 1989 Doug Lea (dl at g.oswego.edu)
-
- * Curses.cc, curses.h, ctype.h: patches based on darrlyo's stuff.
-
- * Fix.cc : *Correctly* installed ++i patch!
-
-Wed Nov 8 06:19:39 1989 Doug Lea (dl at g.oswego.edu)
-
- * stdio.h now is now sub-included in other .h's needing USG-based
- info.
-
- * new etc/c++-mode.el from detlefs
-
- * etc/Makefile: -DETAGS for etags.c
-
- * more HPUX patches from darrylo and mike fion
-
-Tue Nov 7 07:23:25 1989 Doug Lea (dl at g.oswego.edu)
-
- * Fix.{h, cc}: cleanup in search of memory leaks
-
- * Added -DNO_GNULIB3 option in top-level Makefile
-
-Mon Nov 6 05:53:42 1989 Doug Lea (dl at g.oswego.edu)
-
- * std.h, stdio.h, ctype.h.... HPUX and DGUX patches from
- cole & darrylo
-
- * tests/Makefile tCurses taken out of checktests
-
- * Bitset.cc: fixed underallocation in BitSettoa according to
- patch from darrylo@hpsrdmo.hp.com
-
-Sun Nov 5 06:45:26 1989 Doug Lea (dl at g.oswego.edu)
-
- * gnulib3, Incremental.h, test.hello.cc: patched
- via Eirik Fuller's incremental loading fixes
-
-Fri Nov 3 11:22:39 1989 Doug Lea (dl at g.oswego.edu)
-
- * 1.36.0 released, after misc cleanup
-
-Tue Oct 31 09:44:32 1989 Doug Lea (dl at g.oswego.edu)
-
- * added Rich Murphey's graph program to libg++/etc
-
-Mon Oct 30 10:13:07 1989 Doug Lea (dl at g.oswego.edu)
-
- * sys/file.h: include types.h & maybe fcntl.h Some folks need them
-
- * std.h: index, bcopy, etc. now inline, not macro if USG
-
- * streambuf.h: sputback returns success;
- stream.h istream::putback/unget: set(_fail) if bad
-
-Tue Oct 24 16:53:05 1989 Doug Lea (dl at g.oswego.edu)
-
- * stddef.h -- now really defines size_t. OK via new sys/types.h
- fake-out.
-
- * time.h -- now includes //usr/include/time.h too
-
-Sun Oct 22 07:58:36 1989 Doug Lea (dl at g.oswego.edu)
-
- * String.h, cc: reworked to allow proper operation for consts
- (some new stuff #ifdef'ed out because of g++ problems)
-
-Sat Oct 21 15:29:55 1989 Doug Lea (dl at g.oswego.edu)
-
- * Fix.cc: (new_Fix) cure for d < 0 problem from eirik fuller
-
- * builtin.cc: added dtoa
-
- * AllocQueue.h,cc: added it & use elsewhere for building
- formatting & ascii conversions
-
-Wed Oct 18 05:37:11 1989 Doug Lea (dl at g.oswego.edu)
-
- * Fix16.cc, Fix24.cc: Fixed operator / per wang's suggestions
-
-Tue Oct 17 06:47:25 1989 Doug Lea (dl at g.oswego.edu)
-
- * stream.cc, Integer.cc: istream op >>, fixed to not read
- after EOF when decoding numbers
-
-Mon Oct 16 15:33:11 1989 Doug Lea (dl at g.oswego.edu)
-
- * added ostream << long long, and itoa's to handle
-
- * values.h, stdio.h, Fix.cc, File.cc: things for convex from
- convex!csmith@uxc.cso.uiuc.edu
-
-Sat Oct 14 07:19:30 1989 Doug Lea (dl at g.oswego.edu)
-
- * time.h: typedef'ed timezone to c_proto_timezone if not USG
-
-Wed Oct 11 09:42:39 1989 Doug Lea (dl at g.oswego.edu)
-
- * Makefiles: fixed various typos
-
- * misc: cleaned up enum clashes reported with -Wenum-clash
-
- * stream.cc Added #ifdefs to use filebufs for standard streams
- if Filebufs give people trouble.
-
-Tue Oct 3 07:02:56 1989 Doug Lea (dl at g.oswego.edu)
-
- * setjmp.h: now #includes host /usr/include/setjmp.h
-
-Mon Oct 2 16:00:59 1989 Doug Lea (dl at g.oswego.edu)
-
- * commented out gcc constness in revised Complex.h since
- it's still officially illegal to declare fns with refs(ptrs)
- as const
-
- * incorporated new gperf from schmidt
-
- * added dhrystone benchmark to etc
-
-Sat Sep 30 09:02:07 1989 Doug Lea (dl at g.oswego.edu)
-
- * Complex.h: revamped to use const, etc.
-
-Fri Sep 29 06:58:56 1989 Doug Lea (dl at g.oswego.edu)
-
- * added src/EH.cc from tiemann
-
- * SLList.hP now #include's the .defs file
-
- * CHSet, CHBag, CHMap, VHSet, VHBag, VHMap -- changed ints
- to unsigned ints to ensure unsigned operations throughout.
-
-Mon Sep 25 07:32:11 1989 Doug Lea (dl at g.oswego.edu)
-
- * added new.h
-
-Sun Sep 24 05:31:50 1989 Doug Lea (dl at g.oswego.edu)
-
- * tgwrapper.cc: added init_nil to avoid crashes on exit.
-
- * other miscellaneous cleanup (fixed enum/int clashes, etc.) to
- adapt to latest g++-1.36.0-
-
- * bool enum now in bool.h
-
-Thu Sep 14 06:18:46 1989 Doug Lea (dl at g.oswego.edu)
-
- * sys/socket.h: select must have void* args, since different
- systems use int* or fd_set*
-
-Wed Sep 13 11:38:19 1989 Doug Lea (dl at g.oswego.edu)
-
- * builtin.cc: added unsigned versions of itoa, hex, dec, oct
-
-Tue Sep 12 09:28:01 1989 Doug Lea (dl at g.oswego.edu)
-
- * more misc. cleanup to avoid warnings: removed redundant
- type information from declarations of all coercion operators.
-
-Sat Sep 9 06:25:03 1989 Doug Lea (dl at g.oswego.edu)
-
- * (everywhere) miscellaneous aesthetic cleanup to minimize g++
- warning messages.
-
- * (lots of files) used 'virtual fn() = 0' for pure virtual
- functions, removing old `error(unimplemented...)' constructs.
- allowed deletion of Stack.ccP, Queue.ccP, Deque.ccP files
- which did only this.
-
- * took all defines out of libconfig.h, and killed it
- HAVE_VPRINTF, etc -> stdio.h
- CHAR_PER_LONG, etc -> Integer.cc
- SHOULD_FREE_TO_REALLOC -> (no longer needed, killed)
- USG -> people should run g++ with -DUSG now
-
-Fri Sep 8 06:48:58 1989 Doug Lea (dl at g.oswego.edu)
-
- * added Clark's version of etags that handles c++, to etc/
-
- * moved special sparc alloca decl from libconfig.h to std.h
-
- * std.h, math.h, ... killed `overload' declarations
-
- * etc/getopt* => src/GetOpt.cc, g++-include/GetOpt.h, with
- various corresponding changes
-
-Wed Sep 6 09:15:50 1989 Doug Lea (dl at g.oswego.edu)
-
- * math.h renamed `struct exception' to `libm_exception'
-
- * regex.c converted to use prototypes, etc. from schmidt
-
-Tue Sep 5 06:43:37 1989 Doug Lea (dl at g.oswego.edu)
-
- * new c++-mode.el from detlefs
-
- * added sys/param.h, which #undefs common macros, but keeps
- needed constants
-
- * Integer.h: rearranged ordering of some inlines to please g++
-
- * Fix.h: need new constructor Fix(int, _Frep*) to please g++
-
- * added __xyzzy hack from tiemann to builtin.cc
-
- * added gnulib3 from tiemann
-
-Thu Aug 31 07:36:42 1989 Doug Lea (dl at g.oswego.edu)
-
- * more USG stuff from Klossner (stdio.h, libconfig.h,
- values.h, ctype.h)
-
-Sun Aug 27 08:30:15 1989 Doug Lea (dl at g.oswego.edu)
-
- * genclass: changed to take output filename prefix argument
- to avoid long file names on SYSV; tests files change accordingly
-
- * installed gperf update from schmidt
-
- * tests: added runtests, checktests to Makefile. Some tests
- modified to suit.
-
-Sat Aug 26 09:00:14 1989 Doug Lea (dl at g.oswego.edu)
-
- * Plex, PHPQ files: deleted const qualifiers for some params
- as temporary measure until all containers revised to use
- const qualifiers as needed.
-
- * curses.h macros converted into inlines
-
- * added RankedAVLMap, based on code from paul%lfcs.ed.ac.uk
-
- * moved non-ANSI stuff (TRUE, etc., ) from stddef.h to builtin.h
-
- * added more USG stuff sent from rfg, grandi, cole, to standard headers
-
- * std.h: added #ifdef USG section for USG->BSD conversions
-
- * Makefiles: made more things adjustable, better USG support
-
- * PHPQ.ccP: (preallocate) added missing size argument to vector delete
-
-Fri Aug 25 12:25:12 1989 Doug Lea (dl at g.oswego.edu)
-
- * streambuf.cc: dumb error in filebuf::overflow
-
-Thu Aug 24 11:46:16 1989 Doug Lea (dl at g.oswego.edu)
-
- * libconfig.h, values.h: #defines for sony from jkp
-
-Wed Aug 23 06:54:43 1989 Doug Lea (dl at g.oswego.edu)
-
- * Fix16.h, Fix32.h: declared op* as friends correctly
-
- * String.h: declared StrTmp op + as friends of String
-
-Mon Aug 21 07:02:53 1989 Doug Lea (dl at g.oswego.edu)
-
- * Poisson.h, Lognormal.h: add missing `public'
-
- * assert.h: abort() declared volatile
-
- * Vec.ccP: made gsort static
-
- * std.h: added rewind & bsearch
-
- * Makefiles: deleted -fchar-charconst
-
-Thu Aug 10 07:31:37 1989 Doug Lea (dl at g.oswego.edu)
-
- * builtin.{h, cc}: added str(const char*, int width = 0)
-
- * streambuf.cc: init_streambuf_ptrs: postpone action if fp->_cnt 0
- (apparently needed for some USG systems)
-
- * stream.cc: get, getline: match AT&T 1.2 _fail conditions
-
-Sun Aug 6 07:16:19 1989 Doug Lea (dl at g.oswego.edu)
-
- * stream.cc, File.cc get(char[], int, char) read too many chars
-
-Thu Jul 20 09:42:44 1989 Doug Lea (dl at g.oswego.edu)
-
- * adapted more C-compatibility .h files from Interviews
-
-Wed Jul 19 09:23:27 1989 Doug Lea (dl at g.oswego.edu)
-
- * installed more C-compatibilty files: pwd.h, grp.h time.h
-
-Mon Jul 17 07:37:35 1989 Doug Lea (dl at g.oswego.edu)
-
- * installed Interviews/et++ compatible (I hope) signal.h
-
- * installed new version of gperf from schmidt
-
- * std.h: declared abort() and exit() as volatile
-
- * builtin.cc: typo in gcd
-
- * math.h: added overload decl for atan, etc
-
- * VHMap.cc: removed assumption that operator = returns value.
-
- * Makefiles: default dir is /usr/gnu/... not /usr/local
-
- * setjmp.h: fixed constants for sun to match those in
- sun /usr/include files, added ns32000
-
- * BSTSet.ccP added new linear-time rebalancing algorithm
-
- * builtin.cc: SYSV versions of timing stuff from ron cole
-
- * File.{h,cc} fixed File::tell, added O_CREAT to exclusive
- access open, added fill(), flush(char).
-
- * incorporated new streams: stream.{h,cc}, streambuf.{h, cc},
- libg++.texinfo
-
-
-Sat May 20 07:42:11 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * math.h,math-68881.h: incorporated Fyfe's fixes to extern "C" problems
-
-Tue May 16 05:52:33 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * RNG.cc ifdef _IEEE_ fixed to if _IEEE == 1
-
- * Installed Staelin's prototype Makefile updates
-
-Mon May 15 06:25:12 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * BitString.h: g++ optimizer bug workaround in left_trim
-
- * math-68881.h - fgetman (not fgetmant) fix from widen
-
-Sat May 13 11:00:35 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * changes from tiemann for constructs of form X::f()
- changed to this->X::f(), necessary now that static members
- are implemented. [postscript: no, it wasn't necessary]
-
- * libg++.texinfo: misc documentation updates
-
-Fri May 12 05:06:06 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * (lots of places) added friends and other minor changes
- to adapt to new ``correct'' (but losing) g++ interpretation
- of `protected:'
-
- * re-inserted `overload' in .h files -- tiemann
- says that gdb needs these for now
-
- * stream.cc: eatwhite was inline by mistake. fixed.
-
-Thu May 11 07:31:06 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * List.ccP: initializer class for Nil, since can't always use
- { ... } initializer. Also made `head' a synonym for `get',
- per request.
-
- * installed changes to etc files from schmidt
-
- * String.cc Scopy: return &NilSrep, not 0 for null
-
- * added math-68881.h to g++-include (from grunwald)
-
-Sun May 7 08:38:10 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * catch-up day!:
- converted header files to use extern "C" and #pragma once
- killed `overload' declarations everywhere
- renamed test files
- added the beginnings of SYSV (USG) support
- included some useful stuff for Suns in top Makefile (from Guilmette)
- cleaned up other Makefiles
- added File::gets (from Schmidt)
- moved gperf from etc to a top level subdir
- added the useless char* chr(ch) to builtin.h
- genclass puts dots in file names to use Staelins GNU Makefile stuff
- (also added his `prepend-header' utility)
- added Schmidt's getopt stuff into etc.
- New versions of fixpoint classes from Baudendistel
- (needed to change set_overflow_handler to
- set_{FixXX}_overflow_handler
- for each FixXX, since overloads clash on typedef'ed fn types)
- Adapted Schmidt's new quicksort for Vec class
-
-Fri Apr 28 16:26:17 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * ACG.cc: fixed ~ACG per grunwald
-
-Thu Apr 20 05:22:46 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * List.hP: first for nil list now returns null Pix
-
- * Integer.cc: rshift fixed problem with 0 shifts
-
-Mon Apr 10 05:17:04 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * stream.h, PlotFile.h added explicit `private' for subclasses
-
-Sat Mar 18 06:08:30 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * String.[h,cc]: added Regex::match_info
-
-Fri Mar 17 14:37:12 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * stream.h: istream >> char now eats whitespace.
-
- * builtin.h: overloaded `even', `odd'
-
-Thu Mar 9 06:43:43 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * Map.ccP: typo in Map::contents =>
-
- * stdio.h : inserted coercion in putc macro to avoid incorrect
- sign extension.
-
-Tue Mar 7 05:35:52 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * List.hP: List::push no longer incorrectly calls dereference
-
- * Inserted patches to etc stuff from Doug Schmidt
-
-Sun Mar 5 07:57:01 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * stream.h: added File::check_state to public functions
-
- * BitSet.cc: longtoBitSet: Fixed typo
-
-Sat Mar 4 10:06:24 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * installed CursesWindow files
-
- * miscellaneous corrections to test files in light of
- g++-1.34 changes
-
-Fri Mar 3 06:07:37 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * incorporated new version of Doug Schmidt's gperf
-
- * BitString.cc: fixed reverse searching
-
-Sun Feb 26 05:44:28 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * assert : killed old assert.cc, adapted gcc assert.h
-
-Sat Feb 25 09:23:35 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * tests, libg++.texinfo: miscellaneous updates
-
- * stddef.h NULL is now just `0', not (void*)0
-
- * Makefile: added `prefix' as in g++ Makefile
-
- * put a new c++-mode.el from david detlefs in etc
-
- * BitString.[h,cc] BitSet[h,cc] now use unsigned short arrays instead
- of unsigned longs to avoid long i; i >> 32, which does not
- work on Sun4s and probably other machines. Simplified
- a few shift & mask constructs accordingly.
-
- * values.h, libconfig.h: support for sequent from
- Johan Widen
-
- * Fix.h: repaired type mismatches
-
- * String.[cc,h] gsub now returns number of matches
-
- * String.cc gsub(Regex...): repaired using patches
- from kadmon!jason@mtxinu.com
-
- * stream.h scan didn't return *this if fail -- fixed.
-
- * File.cc get(char*...): get of an empty line not a _fail condition
-
- * RNG.[h,cc] installed new code from grunwald
-
-
-Tue Feb 7 05:53:23 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * Integer.h,cc Added optional base to atoI via code from per bothner
-
- * String.h,cc Added `freq' method in String to count occurrences
- using code from john willis
-
-Mon Feb 6 07:25:06 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * BitSet.cc:op <=, < now work if first arg shorter than second;
- clear() fixed.
- * stream.h, stream.cc: made ostream<<(char*) non-inline
-
-Sun Feb 5 05:31:36 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * test19.cc: typo c.empty fixed to c.empty()
-
-Tue Jan 31 05:51:36 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * String.h: contains(Regex) return fact that search returns >= 0,
- not just raw result.
-
- * Fix.h: correct protection problem in op*
-
- * replace regex.c with emacs 18.52 version
-
-Fri Jan 27 06:29:20 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * AVLSet.ccP, AVLMap.ccP - check to see if root
- is null before trying to delete elements
-
- * libg++/Makefile - change install of libg++ to cd to src
-
-Sat Jan 14 06:03:33 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * fixed info node pointers in libg++.texinfo
-
-Wed Jan 11 06:20:37 1989 Doug Lea (dl at rocky.oswego.edu)
-
- * libg++-1.32.0 released
- * Starting to use ChangeLog as of today
-
-
-Local Variables:
-version-control: never
-End:
diff --git a/contrib/libg++/libg++/Makefile.in b/contrib/libg++/libg++/Makefile.in
deleted file mode 100644
index 4f6d7e0cefd90..0000000000000
--- a/contrib/libg++/libg++/Makefile.in
+++ /dev/null
@@ -1,263 +0,0 @@
-# Makefile for GNU C++ class library (libg++)
-# Copyright (C) 1989, 1992, 1993 Free Software Foundation, Inc.
-# written by Doug Lea (dl@rocky.oswego.edu)
-
-#This file is part of GNU libg++.
-
-#GNU libg++ is free software; you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation; either version 1, or (at your option)
-#any later version.
-
-#GNU libg++ is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-#GNU General Public License for more details.
-
-#You should have received a copy of the GNU General Public License
-#along with GNU libg++; see the file COPYING. If not, write to the Free
-#Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-srcdir = .
-
-# We specify exactly what we want to pass down; don't let GNU make
-# 3.63 overload the command line.
-MAKEOVERRIDES=
-
-###**######################################################################
-#
-# Directories, paths, compilation flags and program names.
-#
-# If a macro needs to have a different value, then change it in the
-# site/architecture specific makefile in the directory config !
-#
-# This file contains the documentation for the macros and possible values.
-# Don't remove them even, if they are only comments !
-
-VERSION = 2.7.2
-LIBG++_DIST_VERSION = $(VERSION)
-
-# ------- System-dependent defines
-
-# g++ so specific flags
-OSFLAG=
-
-# ld or ld++ os specific libraries
-#OSLIBS =
-
-# Comment out the next line to disable incremental linking test
-# (this test NOT included in 1.39.0, so don't re-enable) ??? H.S.
-#TEST0=test0
-#TEST0=
-
-# targets for test-install
-TEST_INSTALL = test-90S-then-clean # test-90D-then-clean
-VERIFY_GXX_INSTALLATION = foo_main # dfoo_main
-
-
-# You can override gperf to not build it at all
-GPERF = gperf
-NON_IO_SUBDIRS = genclass src $(GPERF) utils tests etc test-install
-SUBDIRS = $(NON_IO_SUBDIRS)
-ALL_SUBDIRS = $(NON_IO_SUBDIRS) old-stream no-stream
-
-UTILS = # utils
-
-# C++ compiler to use when testing that installation has succeeded.
-INSTALLED_CXX=$(bindir)/gcc
-
-ARLIB = libg++.a
-SHLIB = libg++.so.$(VERSION)
-SHARLIB = libg++-sh.a
-SHLINK = libg++.so
-MSHLINK = foo
-SHFLAGS =
-SHDEPS = -L../libstdc++ -lstdc++ -lm
-
-BUILD_LIBS = $(ARLIB)
-
-RX_OBJ = ../librx/rx.o
-
-#### package, host, target, and site dependent Makefile fragments come in here.
-##
-
-tooldir = $(exec_prefix)/$(target)
-INSTALLDIR = $(libdir)
-
-###**######################################################################
-#
-# compilation actions
-
-.PHONY: rest-in-parallel
-rest-in-parallel: .stmp-genclass .stmp-tests .stmp-etc .stmp-gperf .stmp-utils
-
-libs: $(BUILD_LIBS)
-
-# FIXME: Need to multilib librx.
-list: src/libgxx.list $(RX_OBJ)
- -rm -f tlist
- touch tlist
- for f in `cat src/libgxx.list`; do \
- echo "src/$$f" >> tlist ; \
- done
- echo "$(RX_OBJ)" >> tlist
- mv tlist list
-
-piclist: list
- -rm -f piclist
- if [ -z "$(PICFLAG)" ]; then \
- cp list piclist; \
- else \
- sed 's,\([0-9A-Za-z_]*\.o\),pic/\1,g' list > piclist ; \
- fi
-
-$(ARLIB): list
- -rm -f t$(ARLIB)
- $(AR) $(AR_FLAGS) t$(ARLIB) `cat list`
- mv t$(ARLIB) $(ARLIB)
- $(RANLIB) $(ARLIB)
-
-$(SHLIB): piclist ../libstdc++/piclist
- $(CXX) $(SHFLAGS) -shared -o $(SHLIB) `cat piclist` $(SHDEPS)
-
-$(SHARLIB): $(SHLIB)
- -rm -f t$(SHARLIB)
- $(AR) $(AR_FLAGS) t$(SHARLIB) $(SHLIB)
- mv t$(SHARLIB) $(SHARLIB)
- $(RANLIB) $(SHARLIB)
-
-$(SHLINK):
- ln -s -f $(SHLIB) $(SHLINK)
-
-$(MSHLINK):
- ln -s -f $(SHLIB) $(MSHLINK)
-
-src/libgxx.list: force
- @rootme=`pwd`/ ; export rootme ; cd src ; \
- $(MAKE) $(FLAGS_TO_PASS) libgxx.list
-
-../librx/rx.o: $(srcdir)/../librx/rx.c
- rootme=`pwd`/ ; export rootme ; cd ../librx; \
- $(MAKE) $(FLAGS_TO_PASS) rx.o
-
-.PHONY: installcheck
-installcheck: check
-
-.stmp-genclass: $(BUILD_LIBS)
- @rootme=`pwd`/ ; export rootme ; cd genclass ; \
- $(MAKE) $(FLAGS_TO_PASS) "gxx_includedir=$(gxx_includedir)"
- touch $@
-
-.stmp-tests: $(BUILD_LIBS)
- @if [ -f tests/Makefile ]; then \
- rootme=`pwd`/ ; export rootme ; cd tests ; \
- $(MAKE) $(FLAGS_TO_PASS); \
- else true; fi
- touch $@
-
-.stmp-etc: $(BUILD_LIBS)
- @rootme=`pwd`/ ; export rootme ; cd etc ; \
- $(MAKE) $(FLAGS_TO_PASS)
- touch $@
-
-.stmp-gperf: $(BUILD_LIBS)
- @if [ "x$(GPERF)" != "x" ]; then \
- rootme=`pwd`/ ; export rootme ; cd $(GPERF) ; \
- $(MAKE) $(FLAGS_TO_PASS); \
- else true; fi
- touch $@
-
-.stmp-utils: $(BUILD_LIBS)
- @if [ "x$(UTILS)" != "x" ]; then \
- rootme=`pwd`/ ; export rootme ; cd $(UTILS) ; \
- $(MAKE) $(FLAGS_TO_PASS); \
- else true; fi
- touch $@
-
-#
-#
-# Installation
-#
-
-.PHONY: install
-install:
- @if [ -f $(gxx_includedir)/unistd.h ] ; then echo; \
- echo '*** You seem to have files in $(gxx_includedir)/g++-include'; \
- echo '*** left over from an old release of libg++. These must be removed.'; \
- echo '*** Please see $(srcdir)/README for more information.'; \
- echo; \
- else \
- true; \
- fi
- rootme=`pwd`/ ; export rootme ; \
- for FILE in $(BUILD_LIBS) ; do \
- rm -f $(INSTALLDIR)$(MULTISUBDIR)/$$FILE ; \
- if [ $$FILE = $(SHLINK) ] || [ $$FILE = $(MSHLINK) ]; then \
- ln -s -f $(SHLIB) $(INSTALLDIR)$(MULTISUBDIR)/$$FILE ; \
- elif [ $$FILE = $(SHLIB) ]; then \
- $(INSTALL_PROGRAM) $$FILE $(INSTALLDIR)$(MULTISUBDIR)/$$FILE ; \
- : On the HP, shared libraries must be mode 555. ;\
- chmod 555 $(INSTALLDIR)$(MULTISUBDIR)/$$FILE ; \
- else \
- $(INSTALL_DATA) $$FILE $(INSTALLDIR)$(MULTISUBDIR)/$$FILE ; \
- $(RANLIB) $(INSTALLDIR)$(MULTISUBDIR)/$$FILE ; \
- chmod a-x $(INSTALLDIR)$(MULTISUBDIR)/$$FILE ; \
- fi ; \
- done
- @for D in src genclass $(UTILS) ; do \
- if [ -d $$D ] ; then \
- (rootme=`pwd`/ ; export rootme ; cd $$D;\
- $(MAKE) $(FLAGS_TO_PASS) "gxx_includedir=$(gxx_includedir)" install) ; \
- else true ; \
- fi ; \
- done
- if [ "x$(GPERF)" != "x" ]; then \
- rootme=`pwd`/ ; export rootme ; cd gperf ;\
- $(MAKE) $(FLAGS_TO_PASS) install; \
- else true; fi
- @rootme=`pwd`/ ; export rootme ; \
- $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
-
-installcheck:
- if [ "x$(TEST_INSTALL)" != "x" ]; then \
- cd test-install; $(MAKE) $(TEST_INSTALL) \
- CXX=$(INSTALLED_CXX) "CXXFLAGS=$(CXXFLAGS)" \
- COMPILE_FLAGS="" LIBS=-lg++; \
- else true; fi
-
-DIST_NAME = libg++-$(LIBG++_DIST_VERSION)
-
-$(DIST_NAME).tar.gz: dist
-
-# Making a dist:
-# cvs rtag libgxx-x-yy libg++
-# cvs co -r libgxx-x-yy libg++
-# Sanitize
-# cd {HERE}/..
-# make -f Makefile.in libg++.tar.gz
-
-diststuff: info g++FAQ.txt
-
-g++FAQ.txt: $(srcdir)/g++FAQ.texi
- $(MAKEINFO) --no-split --no-headers $< -o - \
- | sed -e '/^Concept Index/,$$d' \
- -e 's|Making info file `[---]|Making info file `g++FAQ.txt|' \
- >$@
-
-# Preprocess the texi file so that the final document will have
-# hyperlinks.
-# It would be nice if texi2html could do something like this itself.
-# Assumption 1: the FAQ puts all http: and ftp: links in a @file{...}.
-# Assumption 2: email addresses match the regexp shown.
-
-g++FAQ.html: $(srcdir)/g++FAQ.texi
- mkdir work
- sed -e 's?@file{\([fth]*p://[^}]*\)}?@strong{\1}?' \
- -e 's?\([.+a-zA-Z0-9-]*@@[.a-zA-Z0-9-]*[a-zA-Z0-9]\)?\1?' \
- $< > work/g++FAQ.texi
- cd work; texi2html g++FAQ.texi
- mv work/*.html .
- rm -r work
-
-force:
-.PHONY: $(SUBDIRS) dist force
diff --git a/contrib/libg++/libg++/NEWS b/contrib/libg++/libg++/NEWS
deleted file mode 100644
index 43983b6948dfb..0000000000000
--- a/contrib/libg++/libg++/NEWS
+++ /dev/null
@@ -1,573 +0,0 @@
-SUMMARY OF RECENT MAJOR CHANGES to LIBG++.
-(Also check ../libio/NEWS.)
-
-*** Major changes in libg++ version 2.7.2:
-
-* The CursesW code is no longer built or supported (though the source is
- still included). This is due to portability and shared library problem.
- CursesW is now distributed with ncurses, the new curses library
- used by BSD and Linux.
-
-*** Major changes in libg++ version 2.7.1:
-
-* Include the g++ FAQ.
-
-*** Major changes in libg++ 2.7.0:
-
-* New configure scheme.
-
-*** Major changes in libg++ version 2.6.2:
-
-* A first release of the "GNU Standard C++ Library" is in the libstdc++
-directory. Building it requires gcc-2.6.1. See ./README. This library
-will contain classes and functions according to the ANSI/ISO standard.
-The copyright conditions are those of libio, not those of libg++ proper.
-[This was announced as being in 2.6.1, but got left out.]
-
-* The new libstc++ also includes a hacked-up version of the
-HP's Standard Template Library. This will eventually replace the
-container classes in libg++/src/gen. See ../libstdc++/stl/README.
-
-* Makefile support for building libg++ as a shared library.
-See README.SHLIB.
-
-*** Major changes in libg++ version 2.6.1:
-
-* The Regex class no longer uses the old GNU regex functions.
-Instead it uses the new GNU rx library (librx), written by Tom Lord.
-(The rx library is also used in new versions of GNU sed.)
-The rx library lazily constructs a deterministic finite-state
-automaton, so it seldom has to do backtracking.
-
-*** Major changes in libg++ version 2.6:
-
-* There is a new set of bit*.c and bit*.h files in the src directory.
-This is a preliminary version of language-independent library for
-general low-level manipulation of bitstrings. The BitString class
-has been (partially) re-written to use the new functions.
-(What kind of copyright to use for this library has not been
-decided yet. It will at least be OK to treat it as LGPL code.)
-
-*** Major changes in libg++ version 2.5:
-
-* The iostream directory is gone. It has been replaced by ../libio.
-The latter is a major re-write. One major change is that libiostream.a
-(which is built in ../libio) can be used independently of libg++,
-which is interesting because you may find its licensing conditions
-less onerous. See ../libio/README.
-
-Also, the guts of the code has been re-written in C instead of C++.
-This is so that you can build a C stdio implementation without
-a C++ compiler (as was needed before). However, this is not 100% done.
-
-* There is (preliminary) iostream manual (in ../libio/iostream.texi).
-
-* The files in libg++/g++-include are now obsolete. Instead, it
-is the compiler's responsibility to generate "fixed" copies of your
-existing C header files (such as /usr/include/stdio.h). These copies
-(together with a g++ compiler modification) provide C++ access
-to the standard C library. See the fixproto script in the gcc-2.5
-distribution.
-
-*** Major changes in libg++ version 2.4:
-
-* The configuration scheme has been largely re-vamped.
-Instead of the definitions that are common to all (or many) of
-the Makefiles being duplicated in each Makefile.in, they have
-now been moved into a shell script libg++/config.shared, which
-generates these standard definitions and rules.
-
-Most of libg++/tests/Makefile, which had a lot of regularity,
-is now generated by the libg++/tests/Makefile.sh shell script.
-
-Also libg++ no longer uses configure's 'subdirs' mechanism.
-Instead, it uses the 'configdirs' mechanism that most Cygnus
-packages use. This means that each directory has its own
-configure.in, and each directory can be independently re-configured.
-
-* Lots of fixes have been made so libg++ can be compiled by compilers
-other than g++ (specifically cfront), though there are still lots of
-warnings. You may still have to edit some Makefiles etc; this
-will probably become easier in the next release. Many of the
-changes involved not depending on g++ extensions. However, some changes
-turned out to be that libg++ was depending on bugs in g++'s overload
-resolution. These bugs in g++ are being fixed; this will cause some
-difficulties for libg++. In some cases, we have decided that the
-cleanest fix is removing some libg++ functionality. Specifically,
-the coersions Integer::operator long and Integer::operator double
-have been replaced by explicit methods Integer::as_long and
-Integer::as_double. This means you may need to change your code.
-Please let us know if this is problematial.
-
-*** Changes in libg++ version 2.3:
-
-* iostream classes use multiple inheritance and virtual base classes.
-This is a little more complicated and slightly less efficient,
-but saves a slight amount of code duplication. More importantly,
-it improves compatibility with other iostream implementations.
-
-* A few of pseudo-template classes have been converted to use
-real templates. The style used emphasizes sharing code for
-multiple template instatiations at the cost of somewhat more
-complex internal logic. No promise is implied about when/if
-the remaining ones will be converted. Using the template classes
-assumes gcc-2.3 or similar compiler.
-
-* Added stdiobuf class which provides a streambuf wrapper around
-a stdio (FILE*). This can be useful when mixing C and C++ code.
-
-* streambuf sputn/sgetn virtuals have been made renamed to xsputn/xsgetn,
-and sputn/sgetn addedas inline methods. This change is to be compatible
-with AT&T and ANSI; it could require changes to user code if you have
-written your own streambuf sub-classes.
-
-* New utils/c++-mode.el (for editing C++ in emacs).
-
-* Lots of little fixes all over.
-
-*** Changes in libg++ version 2.2:
-
-* Accurate input and output of floating-point numbers
-
-* 'make clean' and its variants have been made more consistent.
-
-* Improved portability (SVR4, NeXT, ...)
-
-
-*** Changes in libg++ version 2.1:
-
-* "Class" include files in g++-include moved to src
-
-Those include files that are just wrappers around C header files
-(e.g. signal.h) remain in g++-include, while the header files
-that are specific to libg++ (or C++) have been moved to src.
-If your system includes "C++-ready" C header files (as in SVR4 or
-Linux), you don't need to use the wrappers in g++-include.
-
-* Portability
-
-A lot of effort has gone into making libg++ more portable.
-Code that depends on internals of "traditional" implementations
-had been made more portable. The 'libiberty' library is incorporated
-into libg++; this supplies (if needed) many functions that may be
-missing on particular hosts.
-
-* Auto-configuration
-
-New scripts automaticly figure out various properties of the
-system (and compiler) you use. While these scripts are not
-foolproof, the intent is that on most systems you will no longer
-have to edit Makefiles or build special configuration files.
-
-* Iostream bug-fixes
-
-There have been numerous bug-fixes and enhancements in the
-iostream code. Lots of rough edges in the streambuf and filebuf
-classes have been fixed.
-
-There are still some rough edges of the protocol (as in what the
-streambuf class should do, and what sub-classes such as filebuf
-should handle).
-
-* iostream enhancements for lexing/parsing.
-
-You can now create a 'streammarker' object, which is a "remembered"
-position is a streambuf. Later, you can backtrack to that position.
-This is supposed to work, even if the streambuf is unbuffered and
-otherwise unseekable, because the streambuffer never throws away
-any data following an extant streammarker. This feature will be
-used to build various scanning/parsing facilities (with backup).
-(See iostream.texi for an example.)
-
-* stdio library
-
-Now supports all of ANSI's functionality.
-
-*** Changes in libg++ version 2.0:
-
-* iostream classes
-
-The major change is that input/output uses the new iostream library.
-The design is based on (but not identical to) iostreams from
-AT&T C++ release 2.x, and the ANSI X3J16/WG21 draft C++ standard.
-
-The iostream classes replace the old stream. The new
-package provides some compatibility hooks. Including the
-obsolete (or defining _STREAM_COMPAT) makes
-more obsolete methods and features available. However,
-you will probably have to change your code if you have used
-any libg++-specific extensions (such as the File class).
-
-If you want stick with the old stream classes, change the
-definition of IO_DIR in Make.defs (to old-stream). You will
-also need to 'make depend' in directories that contain depend,
-and then re-configure everything. Note that the old-stream
-classes are *not* supported and *will* go away in a future release.
-
-* Use g++ version 2 features (if available)
-
-The main one is that an include file g++-include/FOO.h
-that is a wrapper for a standard C include file will now
-#include_next instead of #include "/usr/include/FOO.h".
-This provides more flexibility wrt to using alternate C libraries
-(such as GNU libc), but it is not without its own problems.
-For example, if you compile libg++.a with a g++ that has old
-incompatible g++-include files in its path, these will be
-read (and then in turn read the /usr/include file). If there
-are conflicts, you can remove the previously installed include files,
-or try something like 'make XTRAFLAGS=-I/usr/include' (or whatever
-include path gcc uses by default).
-
-* Major Makefile changes.
-You can now 'make' from any subdirectory.
-
-* Use of 'configure'.
-
-* Copyrights changed to use the Library license version 2.0.
-(Some files have not been updated yet; we'll try to finish it for 2.1.)
-
-* The prototype class SplayNode was put into a separate include file
-(g++-include/gen/SplayNode.hP). This is to avoid duplication.
-It will require you to generate the approriate SplayNode file
-if you use SplayBag, SplaySet, or SplayPQ.
-
-* You can now use inline functions in header files without
-having to use either -O or _DUSE_LIBGXX_INLINES. (The #ifdef
-that depended on these has been removed, so inline functions
-are inline independent of -O).
-
-* Numerous minor bug-fixes and enhancements.
-
-*** Changes in libg++-1.39.0 from libg++-1.37.0
-
- * All files use the new g++ #pragma interface / #pragma implementation
- convention, which minimies duplication of `outlined' inlines
- and vtables. This also causes no inlines to be used at
- all when not compiling with `-O', which speeds compilation
- and simplifies debugging.
-
- * Many .h header file names had to be shortened so as to simulaneously
- work with SYSV and with #pragma interface (since .h and .cc file
- base names must match.) Sorry!
-
- * All genclass-able files have been moved to g++-include/gen.
-
- * various and sundry bug fixes, minor enhancements, and/or portability
- improvements as described in the ChangeLog.
-
-*** changes from libg++-1.36.3 to libg++-1.37.0
-
- * Most utility classes and functions are now in stand-alone .cc and/or .h
- files. This should generate smaller exectuables, and, sometimes
- faster compilation. In particular, istream.h, and ostream.h are
- now separately includable. If you only need one, you don't have
- to get the other.
-
- * The Plex classes now understand `const'. The `changes' and `changed'
- member functions were removed, since it is now possible to
- avoid changes in Plex structures by using const versions.
-
- * class RandomInteger is available, courtesy of John Reidl.
-
- * PlotFile3D, a 3D plot class is in libg++/etc. It will be
- incorporated into libg++ proper for the next release, perhaps
- with a few changes. Thanks to Tom Ngo.
-
- * various and sundry bug fixes, minor enhancements, and/or portability
- improvements as described in the ChangeLog.
-
- * The file etc/HINTS is an emacs RMAIL file that contains recent
- bug-lib-g++ list mail and related messages that may be useful.
-
-
-*** changes from libg++-1.36.1 to libg++-1.36.3
-
- * `Tmp' classes have been eliminated from Strings, Integers, etc.
- (Via some retuning of the main classes, Tmp classes were found
- to not significantly impact performance one way or the other,
- so they were removed.)
-
- * There is now a version of malloc, directly supporting operator
- new, etc. It may be faster and better suited to C++ applications
- than your libc malloc. You should be able to use it unless you need
- a special malloc for a distributed shared memory environment or
- the like. If you can't use it, edit the appropriate flag in
- the top-level Makefile. I would very much appreciate feedback
- about whether this malloc makes any difference in time or space
- efficiency than whatever you are now using.
-
- * By default, output is now line-buffered. Use the
- NO_LINE_BUFFER_STREAMBUF define in the Makefile to override
-
- * Otherwise, the stream classes remain C++-1.2 compatible.
- C++-2.0-compatible versions are still in the works.
-
- * various and sundry bug fixes, minor enhancements, and/or portability
- improvements as described in the ChangeLog.
-
-*** changes from libg++-1.35.0 & 1.35.1 to 1.36.1
-
- * various and sundry bug fixes, minor enhancements, and/or portability
- improvements as described in the ChangeLog.
-
- * Most everything should now work on most SystemV machines. Let me
- know if they don't.
-
- * genclass now allows an optional prefix to be used instead of type
- name concatenation in order to help minimize filename
- lengths for SYSV users. This is not a great solution, but
- is A solution to filename length problems for SYSV users.
-
- * Some, but not all classes now behave well with respect to
- the new 2.0 const specifications. Some uncertainties about
- how g++ will interpret gcc-based const function qualifiers
- (to indicate lack of side effects) versus C++-2.0 const member
- functions has held up the conversion of some classes to use
- const in either or both of these ways.
-
- * A version of etags suitable for use with c++ is in etc/
- (courtesy of J. Clark)
-
- * `graph', a unix graph(1) work-alike is in libg++/etc, courtesy
- of Rich Murphey.
-
- * RAVLMap (Ranked AVLs) prototypes.
-
- * The GetOpt class & support has been moved from etc/ into libg++.a
-
- * Streams have been redone to be nearly 100% AT&T 1.2 compatible.
- One minor possible incompatibility exists (ostream<< char)
- that can be eliminated via #define NO_OUTPUT_CHAR at the
- top of stream.h. This is probably necessary in order to
- compile et++. See libg++.texinfo for more details.
-
- The new stream implementation is not particulary pretty.
- Its main virtue is that it avoids some of the worst things
- about both AT&T streams and old libg++ streams. A much
- superior AT&T 2.0-iostream superset is in the works
- for future release.
-
-*** changes from libg++-1.25.0 to libg++-1.32.0
-
- * Nearly all data and methods previously declared as `private'
- are now declared as `protected' to make subclassing from
- library classes easier.
-
- * Most classes now contain a method `OK()' that checks to
- make sure that an objects internal data is in a valid state.
- See the documentation for further details
-
- * Mosts tests in ./tests now contain various kinds of assert
- statements. If tests execute without assertion failures,
- and without any other errors that cause aborted execution,
- you may consider them successful. The test files now include
- nearly all of my internal tests, which in turn have been
- made more extensive.
-
- * Plex classes are available.
- A bit of propaganda about these:
- Plexes are very attractive replacements for arrays
- in many contexts. Try them!
-
- * `shrink' and `contains' have been added to Obstack
-
- * Files and streams have not yet been revamped (a complete
- reworking awaits the AT&T 2.0 stream specification), but
- have been adjusted to provide slightly faster IO in some
- cases, and now support the use of a user-supplied string
- to read or write from instead of an actual IO source.
-
- * Rationals are now normalized when input via `>>'.
-
- * atoI is fixed.
-
- * variable-length representations in String, Integer, etc., are
- now completely different. See the documentation for details.
-
- * New String functions:
- * readline -- read in a line from an istream as a String
- * prepend -- prepend stuff to a String
- * through -- make a SubString from beginning to match point
- * from -- make a SubString from match point to end
- * s[i] -- now returns the char by reference
-
- * BitVec's are no longer supported, since their capabilities
- are now incorporated in the revised BitString class.
-
- * stdarg.h and regex.h are revised to support the Sun4
-
- * Several interesting and/or useful examples of libg++
- class use are in ./etc, mainly courtesy of Doug Schmidt.
-
- * .cc file names are now all less than 15 characters. Some
- .h file names are longer, but this should not present
- problems on SYSV systems.
-
- * pseudo-generic `proto' classes have been thoroughly revised:
- * The prototype file names now end in `P', not `.proto'
- and are in the g++-include directory
- * A single, simple-to-use collection traversal mechanism
- via pseudo-indices (`Pix') is used instead of particular
- traversal friend classes.
- * `Bag' prototypes are included
- * Base classes are now supplied, so that all implementations
- of Sets, Bags, are derived, allowing programmers to
- mix and match implementations.
- * They are now simpler to create: all comparison operators
- and the like are now defined as macros in a `defs' file
- which uses some reasonable defaults.
- * The `Dictionary' versions of Set prototypes are not now
- supported. Revised versions of such classes are forthcoming.
- * Class prototypes previously labelled as `Assoc' are now
- called `Maps', with slightly different capabilities.
-
- * Splay tree prototypes are available.
- A bit more propaganda: Consider using Splay tree
- based containers (Set, Bag, Map, PQ). They are often
- the most efficient structures when performing mixtures
- of operations (adds, deletes, searches...)
-
- * Fixed precision reals are available, courtesy of Kurt Baudendistel
-
- * An ordered hash Set prototype (VOHSet) is available,
- courtesy of Doug Schmidt.
-
- * MLCG now allows access and modifications to the seeds.
-
- * The Normal random generator is fixed.
-
- * SampleStatistic now allows any prob value for confidence
- intervals.
-
- * some simple timer routines are in builtin.cc, courtesy of Doug Schmidt
-
- * While the Vec class prototypes are still available, they are
- currently undergoing revision in order to correspond to
- the forthcoming Matrix package (which should be available
- in the next libg++ release).
-
- * A C++ version of GPERF, a perfect hash function generator
- program is also available in ./etc, courtesy of Doug Schmidt.
-
-
-*** changes from libg++-1.22.2 to libg++-1.25.0
-
- * All reported errors from the previous release are fixed, and many
- suggested modifications have been performed. Thanks to all who
- have sent bug reports and comments, including those with mail
- addresses that I have not been able to reply to. (My mail connections
- are sometimes more than a little fragile. If you send me mail and
- I have not replied within a few days, you may want to try again. Sorry.)
-
- * A serious problem in the use of Obstacks by conversion functions
- has been repaired.
-
- * A bug in maintaining reference counts on `find' and related operations
- in List prototype classes has been fixed.
-
- * Strings now support self case manipulation in addition to the
- functional versions.
-
- * Some new functions have been added to builtin.[h.cc]. All are now
- documented in libg++.texinfo
-
- * Overload declarations are now performed in std.h and math.h,
- rather than builtin.h, to eliminate some include file ordering
- problems.
-
- * Random, RNG, and SampleStatistic classes are available,
- thanks to Dirk Grunwald.
-
- * A BitVec class is available.
-
- * The are many new generic container class prototype files. These
- support container classes based on elementary data structures
- (and a couple of non-elementary ones). Please read the documentation.
-
- * Class prototype OSet has been modified and renamed OLSet.
-
- * The genclass utility has been modified
-
-*** changes from libg++-1.22.1 to 1.22.2
-
- * Tests files are now in a separate directory.
-
- * Several minor errors (Complex unary -, several BitString functions)
- have been repaired.
-
- * pow(0,0) returns 1 for all versions of pow.
-
- * An experimental generic class prototyping feature is provided,
- including prototypes for lisp-style lists and ordered list-based sets.
-
- * several include files with the same names as those in AT&T CC
- are provided. These simply #include other files. OOPS should now
- compile using only g++-include files. See, however, the note
- about struct exception in file math.h
-
- * Some rearrangement of files containing char* conversion has been
- done to eliminate linking of unnecessary classes.
-
- * The inline-only-when-optimizing feature is still not supported.
-
-* New Random number generator classes are not yet available. Stubs for
- these files are in this directory. They should be available for next
- release.
-
-*** changes from libg++-1.21.1 to 1.22.0
-
- * All documentation is in a stand-alone texinfo file, libg++.texinfo,
- and is on its way to becoming a decent piece of documentation.
-
- * All reported errors from the previous release are fixed, and many
- suggested modifications have been performed. Thanks to all who
- have sent bug reports and comments, including those with mail
- addresses that I have not been able to reply to. (My mail connections
- are sometimes more than a little fragile. If you send me mail and
- I have not replied within a few days, you may want to try again. Sorry.)
-
- * New Complex, BitSet, and BitString classes are available. You will
- be performing a valuable service if you try these out and report
- back any bugs/comments/suggestions about these or any other classes.
-
- * File `values.h' has been added. This contains various system
- constants like the number of bits per long, etc. It contains
- much of the same information as sun , although a
- few names and things differ slightly.
-
- * Files `builtin.h', `builtin.cc', and `convert.cc' have been added.
- `builtin' contains common inline and non-inline functions on
- builtin types (like `abs'). `convert' contains code for performing
- IO and char* conversions, mainly via Obstacks. Most of these
- functions are not new -- they have been collected from other .h
- and .cc files.
-
- * Files `std.h' and `math.h' now declare all libc.a C functions
- in a way that allows any of them to be overloaded in C++.
-
- * Strings and Integers now perform expansion via realloc() --
- see libconfig.h about whether you should #define SHOULD_FREE_TO_REALLOC.
-
- * `eatwhite' is supported for istreams.
-
- * File::getline(String, ...) and get(String) have been removed in order to
- maintain greater independence of different classes.
-
- * Strings now provide substring matching via new versions of
- `contains' and `matches', `common_prefix' and `common_suffix'.
- Also, there is more support for case operations via `fcompare', etc.
- The versions of `decompose' that do not deal with Regexes have
- been deleted since they provide little functionality over other
- operations. Also, a few special case functions dealing with char*'s
- have been deleted since the required constructors are necessary
- anyway. Several other corrections have been made in String.cc,
- including the elimination of a few aliasing problems.
-
- * The implementations of Integers and Rationals are now both much
- more efficient and well-tested, while remaining machine independent.
- A few minor visible features have been added and/or changed.
-
- * The `box' command in PlotFile is now simulated, whether or not
- it is present in libplot.a
-
- * The inlining-only-if-optimizing feature is still not fully implemented.
diff --git a/contrib/libg++/libg++/README b/contrib/libg++/libg++/README
deleted file mode 100644
index e3231ad7fe2a9..0000000000000
--- a/contrib/libg++/libg++/README
+++ /dev/null
@@ -1,247 +0,0 @@
-This is version 2.7.2 of libg++, the GNU C++ class library.
-Release date June 1996 by Cygnus Support
-
-* Please skim through this once BEFORE attempting to make and install libg++.
-
-* You probably want to at least skim ./g++FAQ.txt.
-
-* Contents
-
- * g++ source files (with their include files) are in the ./src directory
- * Some simple tests and demo programs are in ./tests
- * documentation is in ./libg++.texi.
- * A perfect hash function generator is in ./gperf.
- * Some miscellaneous files of possible interest are in ./etc
- (These files are not officially a part of the libg++ distribution,
- and are subject to arbitrary changes, deletions, etc. from release
- to release.)
-
-* Copyright restrictions
-
-The GNU Library General Public License (which is in the file
-../COPYING.LIB) covers all libraries (specificly libg++.a) and
-include files that get installed (by 'make install').
-
-Other parts of the libg++ *distribution* that are not part the libg++
-*library* per se have the GNU General Public License (which is in the
-file ../COPYING).
-
-Individual files should bear the appropriate Copyright (let us know
-if you think there is a mistake). But specificly, if your application
-only uses files that are installed by the normal build+install
-procedure, then it is bound by the restrictions of the GNU Library
-General Public License, but not those of the GNU General Public License.
-
-* Pre-installation
-
- * This version of libg++ requires gcc-2.7.2 or newer.
- It assume that gcc is responsible for fixing standard C include
- files (such as stdio.h) so that they are suitable for C++
- (Using the fixproto script that is part of gcc).
-
- * You can compile libg++ using a gcc that you haven't installed.
- The most convenient way to do that is to make a symlink named
- gcc in the top-level directory (i.e. libg++-2.7.2) that points to
- the directory containing the new gcc. (You should end up with
- libg++/../gcc/xgcc being a valid filename for the uninstalled gcc.)
-
- * With only trivial modifications (like changing file extensions,
- etc.) most things should compile and run with any modern C++ compiler.
- However, notice that libg++ may depend on recent (ANSI/ISO) changes
- to C++. If libg++ depends on a g++ feature that is not specified
- by the C++ draft standard *or* if there is a simple and clean
- work-around that would make it more portable, please let me know.
-
-* Installation (see libg++.texi for more details)
-
- * For VMS, cd to ./vms, and read AAAREADME.TXT
- [NOTE: The VMS support is obsolete. We need a volunteer to fix it.]
-
- * For Linux, things are complicated because the Linux C library is
- based on ../libio. Unfortunately, there is no publicly available
- version of libc that will work quite right with this release of
- libg++ and libio.
-
- The latest released version of libg++ for Linux is
-
- ftp://sunsite.unc.edu/pub/Linux/GCC/libg++-2.7.1.4.bin.tar.gz
-
- To use it you need to upgrade your C library to 5.2.15 or higher; the
- latest released version is
-
- ftp://sunsite.unc.edu/pub/Linux/GCC/libc-5.2.18.bin.tar.gz
-
- This release of libio will mostly work with libc 5.2.18, but a few
- things break; getopt, for instance.
-
- To get beta releases, you may want to join the Linux Gcc developer's
- mailing list; send mail to majordomo@vger.rutgers.edu with the text
- "subscribe linux-gcc" in the message body.
-
- * To build shared libraries, see README.SHLIB.
-
- * Make sure your sed is *not* GNU sed version 1.12.
- Most other versions (including GNU sed 1.13) should be OK.
- (It has been reported at GNU sed 3.0 fails.)
-
- * Go to the directory *above* libg++ (i.e.. libg++-2.7.2).
-
- * Run './configure' to configure the tree and create Makefiles.
-
- Typical example:
- ./configure [SYSTEM] --prefix=/usr/gnu
-
- The prefix says that installation should be into
- /usr/gnu/lib, /usr/gnu/bin, etc as appropriate.
-
- The SYSTEM indicates what machine configuration you're
- running on. If you don't specify it, the system can usually
- guess a default.
-
- IMPORTANT: The configure options (including SYSTEM and
- --prefix) must match those used to configure gcc, otherwise
- g++ may fail to find libg++.
-
- See etc/cfg-paper.texi for more details. (This paper is
- in texinfo format; see the section below on Installing
- the Documentation on how to make it more readable.)
-
- * Type `make all "CC=gcc -O2"'.
- (Builds libg++.a and some other things.) (The "CC=gcc -O2"
- is optional. It forces use of gcc to compile C programs.
- Set CXX to specify the C++ compiler, though it defaults to gcc.)
-
- * Optionally, type `make check' to make and run some tests/demos of libg++.
-
- * Before installing, if you have an old version that was installed
- into the same directory(s), you should probably remove it.
- (There is currently no clean mechanism to do that.
- You should at least remove $(prefix)/lib/g++-include/*.h,
- where $(prefix) is by default /usr/local.)
-
- If the previous version was libg++ 2.4 or older, you *must* remove
- the old includes. Prior to version 2.5, libg++ installed its own
- versions of certain standard headers for use on systems where the
- vendor headers don't include prototypes. Versions 2.5 and later of
- gcc add prototypes to vendor headers that don't have them, so
- the libg++ versions are no longer useful, and are harmful when
- they conflict with the vendor version.
-
- * Type `make install' to install
-
- libg++.a (from .)
- include files (from src and ../libio)
- prototype files (from src/gen)
- gperf (from gperf)
- some other stuff
-
- * Install the documentation
-
- If you are a systems administrator installing libg++ for others,
- please make the documentation available to users!
-
- The libg++.texi file may be formatted as a paper document by
-
- * Get a copy of texinfo.tex.
- This file defines various tex macros used in libg++.texi
- One is in the gcc release.
- You can temporarily copy it into the current directory.
- * Run tex on libg++.texi
- and do whatever you normally do from there to print it.
-
- It may be made into an emacs info file:
-
- * use the 'makeinfo' program (from the texinfo distribution).
-
- * Copy these files into your emacs info directory
- (normally somewhere like /usr/gnu/emacs/info).
- * If you have not done so before, edit the emacs/info/dir file
- to add a libg++ node, by inserting a line like
-
- * Libg++: (libg++). The GNU C++ Library
-
- to the bottom of the file.
-
- * (Optional) Install, from ./utils
- g++dep (a version of mkdep that understands c++)
-
-* Notes on compiling and running libg++/tests
-
-It is a very good idea to also cd to the test directory and run tests
-manually, to see what they do.
-
-Compiling and running the tests consumes a fair amount of time and
-disk space!
-
-Some reported diffs may be perfectly reasonable, owing to things like
-floating point precision differences: The expected.out file was created
-on a Sun4/110.
-
- Some tRational and tFix results depend on floating point precision
- and may generate slightly different output on different machines.
-
- tRandom seeds some random-numbers in a way that also relies on
- floating-point representations -- Your output should be numerically
- similar, but probably not identical.
-
-* Changes since previous versions(s).
-
- See the file NEWS.
-
-* Known bugs and problems
-
- * If "make install" fails with the error message:
-
- Static constructor test failed - see libg++.README
-
- this indicates an error in installing gcc.
- C++ needs special linker support beyond that needed for C, to make
- sure that static objects get initialized and destroyed properly.
- Some linkers (including the GNU linker as well as linkers for
- the Elf object file format) already provide the needed support.
- In other cases, gcc (or g++) uses the "collect2" linker driver.
- Gcc should by default do the right thing, but if you tell
- gcc to assum the GNU linker (with the --with-gnu-linker option),
- and then fail to correctly install GNU ld, you will lose.
-
-* Lots of other information is in the libg++.texi file. It really is
- very important to actually read the documentation before using
- library classes. Examination of the demo files in the test directory
- may also be useful. (Note however, that the demo files are merely
- designed to test examples of each class capability,
- and are not especially good examples of client functions that might
- use these classes.)
-
-* There is now a gnu libg++ mailing list (bug-lib-g++@prep.ai.mit.edu) and
- associated usenet gnu news group (gnu.g++.lib.bug). (It is preferred
- that messages be sent to the mailing list, rather than posted to
- newsgroup.) To subscribe or unsubscribe to the mailing list,
- send a request to bug-lib-g++-request@prep.ai.mit.edu.
-
-* You will be performing a valuable service if you use libg++
- classes and report back any comments, and suggestions, or bugs,
- preferably to the bug-lib-g++ list. Your feedback is extremely
- helpful in efforts to make libg++ as useful and reliable as possible.
-
-* We continue to solicit
-
- * bug reports.
- * suggestions.
- * comments.
- * questions about installing and using libg++
- * other contributions to be incorporated into libg++.
- * sample programs using libg++.
-
- Often, the best place to send such things is bug-lib-g++@prep.ai.mit.edu,
- although direct mail is also welcome.
-
-* Good luck!
-
-Doug Lea designed and implemented most of the classes,
-and was the original maintainer and "owner" of libg++.
-He has handed over "ownership" to Cygnus Support.
-
-Per Bothner of Cygnus Support is now
-maintaining libg++, with much help from the rest of the
-Cygnus G++ team (Jason Merrill, Mike Stump, Brendan Kehoe).
-Cygnus Support, 1937 Landings Drive, Mountain View, CA 94043
diff --git a/contrib/libg++/libg++/README.SHLIB b/contrib/libg++/libg++/README.SHLIB
deleted file mode 100644
index 087e569ef1943..0000000000000
--- a/contrib/libg++/libg++/README.SHLIB
+++ /dev/null
@@ -1,38 +0,0 @@
-NOTES ON BUILDING LIBG++ AS A SHARED LIBRARY
-
-A shared library version of libg++-2.7.2 can be built using gcc-2.7.2 or
-above on the following platforms:
-
-x86 Linux (using the ELF toolchain)
-Sparc running SunOS 4.x
-Alpha running OSF/1
-SGI running IRIX 5.x and up
-HPPA running HPUX 9.x and up
-All SVR4 targets (tested on Sparc Solaris and i486 UnixWare)
-RS/6000 or PowerPC running AIX (requires GNU ld 2.7 or newer)
-
-To build a shared version of libg++ on one of these platforms, pass the
---enable-shared flag to configure, and be sure to compile with gcc.
-
-In order to run a program built with your new shared library (including
-gperf and the tests), you may have to set the environment variable
-LD_LIBRARY_PATH to include the directory where it lives.
-
-Discussion:
-----------
-
-Many shared library implementations have an idiosyncracy [bug ???] which
-requires anything that is declared in a shared library to be defined even
-if it isn't used. libstdc++.so and libg++.so contain a number of classes
-which use the math library. Consequently, if a shared libm does not exist
-(it does under Linux, OSF/1, IRIX, HPUX and Solaris, but not the others),
-either the math library must to added to the link command or you must
-compile with a flag that tells the linker to ignore unresolved references
-(-Wl,-assert,nodefinitions for SunOS, -Wl,-z,nodefs for SVR4).
-
-The `g++' program now adds -lm by default, so you may not have to worry
-about this.
-
-Jason Merrill (jason@cygnus.com)
-Thanks to Dr. Joseph E. Sacco (jsacco@ssl.com) for the original version of
-this note.
diff --git a/contrib/libg++/libg++/TODO b/contrib/libg++/libg++/TODO
deleted file mode 100644
index c1e12b84b1c40..0000000000000
--- a/contrib/libg++/libg++/TODO
+++ /dev/null
@@ -1,13 +0,0 @@
-* See iostream/TODO for iostream-specific issues
-
-* Update README.
-
-* Add 'return 0' to end of tests.
-[Not needed, if ANSI makes that implicit.]
-
-* Undo gcc-2.3.2-specific kludge in test-install/bf.cc.
-
-* Remove use of _libgxx_io_ob from Fix.cc.
-
-* Since the libg++ include files in gxx_includedir aren't architecture
- dependent, they belong under $(datadir) not $(libdir).
diff --git a/contrib/libg++/libg++/g++FAQ.texi b/contrib/libg++/libg++/g++FAQ.texi
deleted file mode 100644
index dfed49574b48a..0000000000000
--- a/contrib/libg++/libg++/g++FAQ.texi
+++ /dev/null
@@ -1,1986 +0,0 @@
-\input texinfo.tex @c -*-texinfo-*-
-@c %**start of header
-@setfilename g++FAQ.info
-@settitle Frequently asked questions about the GNU C++ compiler
-@setchapternewpage off
-@c version: @(#)g++FAQ.texi 1.46 6/20/96
-@c %**end of header
-
-@iftex
-@finalout
-@end iftex
-@titlepage
-@title G++ FAQ
-@subtitle Frequently asked questions about the GNU C++ compiler
-@subtitle June 19, 1996
-@sp 1
-@author Joe Buck
-@page
-@end titlepage
-
-@ifinfo
-@node Top, new stuff, (dir), (dir)
-@top
-@unnumbered FAQ for g++ and libg++, by Joe Buck (jbuck@@synopsys.com)
-@end ifinfo
-
-@cindex FAQ for g++, latest version
-@cindex Archive site for FAQ lists
-@cindex rtfm.mit.edu
-@cindex Joe Buck
-@cindex FAQ for C++
-
-This is a list of frequently asked questions (FAQ) for g++ users; thanks to
-all those who sent suggestions for improvements. Thanks to Marcus Speh
-for doing the index. A hypertext version is available on the World Wide
-Web at @file{http://www.cygnus.com/misc/g++FAQ_toc.html}.
-
-Please send updates and corrections to the FAQ to
-@code{jbuck@@synopsys.com}. Please do @emph{not} use me as a resource
-to get your questions answered; that's what @file{gnu.g++.help} is for and I
-don't have the time to support the net's use of g++.
-
-Many FAQs, including this one, are available on the archive site
-``rtfm.mit.edu''; see @*
-@file{ftp://rtfm.mit.edu/pub/usenet/news.answers}.
-This FAQ may be found in the subdirectory g++-FAQ.
-
-@cindex Marshall Cline
-@cindex comp.lang.c++
-@cindex C++ FAQ
-This FAQ is intended to supplement, not replace, Marshall Cline's
-excellent FAQ for the C++ language and for the newsgroup
-@file{comp.lang.c++}. Especially if g++ is the first C++
-compiler you've ever used, the question ``How do I do with g++?''
-is probably really ``How do I do in C++?''.
-You can find this FAQ at
-@file{ftp://rtfm.mit.edu/pub/usenet/comp.lang.c++},
-or in HTML form at @file{http://www.cerfnet.com/~mpcline/On-Line-C++-FAQs/}.
-
-@menu
-* new stuff:: The latest poop -- gcc-2.7.x
-* getting g++:: Obtaining Source Code
-* installation:: Installation Issues and Problems
-* User Problems:: User Problems
-* legalities:: What are the rules for shipping code built with g++ and libg++?
-* index:: Concept Index
-
- --- The Detailed Node Listing ---
-
-New Stuff: The Latest Poop -- Gcc-2.7.x
-
-* version 2.7:: What's new in version 2.7.x of gcc/g++
-* libstdc++:: The GNU Standard C++ Library
-
-Obtaining Source Code
-
-* latest versions:: What is the latest version of gcc, g++, and libg++?
-* g++ for Unix:: How do I get a copy of g++ for Unix?
-* g++ for HP:: Getting gcc/g++ for the HP Precision Architecture
-* g++ for Solaris 2.x:: Getting gcc/g++ binaries for Solaris 2.x
-* g++ for other platforms:: How do I get a copy of g++ for (some other platform)?
-* 1.x vs 2.x versions:: But I can only find g++-1.42!
-
-Installation Issues and Problems
-
-* gcc-2 + g++-1:: I can't build g++ 1.x.y with gcc-2.x.y!
-* what else do I need?:: OK, I've obtained gcc; what else do I need?
-* repository:: How do I use the new template repository code?
-* repo bugs:: Known bugs and problems with the repo patch
-* libstdc++:: The GNU Standard C++ Library
-* use GNU linker?:: Should I use the GNU linker, or should I use "collect"?
-* Use GNU assembler?:: Should I use the GNU assembler, or my vendor's assembler?
-* Use GNU C library?:: Should I use the GNU C library?
-* Global constructor problems:: Global constructors aren't being called
-* Strange assembler errors:: Strange assembler errors when linking C++ programs
-* Other problems building libg++::
-* Rebuild libg++?:: Do I need to rebuild libg++ to go with my new g++?
-* co-existing versions:: I want several versions of g++ and libg++ to co-exist
-* Installing on Linux:: Trouble installing g++ and libg++ on Linux
-* Linux Slackware 3.0:: Problems with g++ on Linux Slackware 3.0
-
-User Problems
-
-* missing virtual table:: Linker complains about missing virtual table
-* for scope:: gcc-2.7.0 breaks declarations in "for" statements!
-* const constructor:: g++ seems to want a const constructor. What's that?
-* unused parameter warnings:: How to silence ``unused parameter'' warnings
-* jump crosses initialization:: g++ objects to a declaration in a case statement
-* Demangler:: Where can I find a demangler?
-* static data members:: Linker reports undefined symbols for static data members
-* internal compiler error:: What does ``internal compiler error'' mean?
-* bug reports:: I think I have found a bug in g++.
-* porting to g++:: Porting programs from other compilers to g++
-* name mangling:: Why does g++ mangle names differently from other C++ compilers?
-* problems linking with other libraries:: Why can't g++ code link with code from other C++ compilers?
-* documentation:: What documentation exists for g++ 2.x?
-* templates:: Problems with the template implementation
-* undefined templates:: I get undefined symbols when using templates
-* redundant templates:: I get multiply defined symbols when using templates
-* Standard Template Library:: Does g++ support the Standard Template Library?
-* exceptions:: Problems and limitations with exceptions
-* namespaces:: Does g++ support namespaces?
-* agreement with standards:: What are the differences between g++ and the ARM specification of C++?
-* compiling standard libraries:: Will g++ compile InterViews? NIHCL? Rogue Wave?
-* debugging on SVR4 systems:: Debugging on SVR4 systems
-* debugging problems on Solaris:: debugging problems on Solaris
-* X11 conflicts with libg++:: Conflict over meaning of String
-* assignment to streams:: Why can't I assign one stream to another?
-@end menu
-
-@node new stuff, getting g++, Top, Top
-@chapter The latest poop -- gcc-2.7.x
-
-This section is intended to describe more recent changes to g++, libg++,
-and such. Some things in this section will eventually move elsewhere.
-
-@strong{News:} as I write this (late February 1996) the gateway
-connecting the bug-g++ mailing list and the @file{gnu.g++.bug} newsgroup
-is broken. Please mail, do not post bug reports.
-
-@menu
-* version 2.7:: What's new in version 2.7.x of gcc/g++
-* libstdc++:: The GNU Standard C++ Library
-@end menu
-
-@node version 2.7, libstdc++, , new stuff
-@section What's new in version 2.7.x of gcc/g++
-
-The current version of gcc/g++ is 2.7.2; the current libg++ is 2.7.1.
-
-By the time you read this, two minor bug-fix releases, gcc 2.7.3
-and libg++ 2.7.2, may be available. These new releases are mainly
-intended to fix platform-specific bugs and do not affect the C++
-``front end'' of the compiler.
-
-The 2.7.x releases represent a great deal of work on the part of the g++
-maintainers to fix outstanding bugs and move the compiler closer to the
-current ANSI/ISO standards committee's working paper, including
-supporting many of the new features that have been added to the
-language. I recommend that everyone read the NEWS file contained in the
-distribution (and that system administrators make the file available to
-their users). I've borrowed liberally from this file here.
-
-@cindex C++ working paper
-If any features seem unfamiliar, you will probably want to
-look at the recently-released public review copy of the C++ Working
-Paper:
-@itemize @bullet
-@item
-PostScript and PDF (Adobe Acrobat):
-see @file{ftp://research.att.com/dist/c++std/WP}.
-@item
-HTML and ASCII versions: see @file{ftp://ftp.cygnus.com/pub/g++}.
-@item
-World Wide Web: see
-@file{http://www.cygnus.com/misc/wp/}.
-@end itemize
-
-Here are the main points:
-
-@itemize @bullet
-@item
-@cindex for scope
-As described above, the scope of variables declared in the
-initialization part of a for statement has been changed; such variables
-are now visible only in the loop body. Use @code{-fno-for-scope} to get
-the old behavior. You'll need this flag to build groff version 1.09,
-Ptolemy, and many other free software packages.
-
-@item
-@cindex vtable duplication
-Code that does not use #pragma interface/implementation will most
-likely shrink dramatically, as g++ now only emits the vtable for a
-class in the translation unit where its first non-inline, non-abstract
-virtual function is defined.
-
-@item
-@cindex automatic template instantiation
-Support for automatic template instantiation has @emph{not} been enabled
-in the official distribution, due to a disagreement over design philosophies.
-But you can get a patch from Cygnus to turn it on; retrieve the patch
-from @file{ftp://ftp.cygnus.com/pub/g++/gcc-2.7.2-repo.gz} to patch
-gcc-2.7.2 (there are also patches for earlier gcc versions).
-
-@item
-@cindex exception handling, 2.7.0
-
-@xref{exceptions}
-
-@item
-@cindex run-time type identification
-Support for Run-Time Type Identification has been added with @code{-frtti}.
-This support is still in alpha; one major restriction is that any file
-compiled with @code{-frtti} must include @code{} (@emph{not}
-@code{typeinfo.h} as the NEWS file says).
-Also, all code you link with (including libg++) has to be built with
-@code{-frtti}, so it's still tricky to use.
-
-@item
-@cindex compiler-generated operators
-Synthesis of compiler-generated constructors, destructors and
-assignment operators is now deferred until the functions are used.
-
-@item
-@cindex assignment in conditional expressions
-The parsing of expressions such as @code{a ? b : c = 1}
-has changed from
-@code{(a ? b : c) = 1} to @code{a ? b : (c = 1)}. This is a new C/C++
-incompatibility brought to you by the ANSI/ISO standards committee.
-
-@item
-@cindex new operator keywords
-The operator keywords and, and_eq, bitand, bitor, compl, not, not_eq,
-or, or_eq, xor and xor_eq are now supported. Use @code{-ansi} or
-@code{-foperator-names} to enable them.
-
-@item
-@cindex explicit keyword
-The @code{explicit} keyword is now supported. @code{explicit} is used to mark
-constructors and type conversion operators that should not be used
-implicitly.
-
-@item
-@cindex user-defined type conversion
-Handling of user-defined type conversion has been improved.
-
-@item
-@cindex explicit template instantiation
-Explicit instantiation of template methods is now supported. Also,
-@code{inline template class foo;}
-can be used to emit only the vtable
-for a template class.
-
-@item
-@cindex -fcheck-new
-With -fcheck-new, g++ will check the return value of all calls to
-operator new, and not attempt to modify a returned null pointer.
-
-@item
-collect2 now demangles linker output, and c++filt has become part of
-the gcc distribution.
-
-@item
-Improvements to template instantiation: only members actually used
-are instantiated. (Actually this is not quite true: some inline
-templates that are not successfully inlined may be expanded even
-though they are not needed).
-
-@end itemize
-
-@node libstdc++, , version 2.7, new stuff
-@section The GNU Standard C++ Library
-
-The GNU Standard C++ Library (also called the ``GNU ANSI C++ Library''
-in places in the code) is not libg++, though it is included in the
-libg++ distribution. Rather, it contains classes and functions
-required by the ANSI/ISO standard. The copyright conditions are the
-same as those for for the iostreams classes; the LGPL is not used
-(@xref{legalities}).
-
-This library, libstdc++, is in the libg++ distribution in versions 2.6.2
-and later. It requires at least gcc 2.6.3 to build the libg++-2.6.2
-version; use at least gcc 2.7.0 to build the libg++ 2.7.0 version. It
-contains a hacked-up version of HP's implementation of the Standard
-Template Library (see @xref{Standard Template Library}). I've
-successfully used this Standard Template Library version to build
-a number of the demos you'll see on various web pages.
-
-As of version 2.7.0, the streams classes are now in libstdc++ instead of
-libg++, and libiostream is being phased out (don't use it). The g++
-program searches this library.
-
-@node getting g++, installation, new stuff, Top
-@chapter Obtaining Source Code
-@cindex Source code
-
-@menu
-* latest versions:: What is the latest version of gcc, g++, and libg++?
-* g++ for Unix:: How do I get a copy of g++ for Unix?
-* g++ for HP:: Getting gcc/g++ for the HP Precision Architecture
-* g++ for Solaris 2.x:: Getting gcc/g++ binaries for Solaris 2.x
-* g++ for other platforms:: How do I get a copy of g++ for (some other platform)?
-* 1.x vs 2.x versions:: But I can only find g++-1.42!
-@end menu
-
-@node latest versions, g++ for Unix, , getting g++
-@section What is the latest version of gcc, g++, and libg++?
-
-@cindex gcc/g++, version date
-The latest "2.x" version of gcc/g++ is 2.7.2, released November 26, 1995.
-The latest version of libg++ is 2.7.1, released November 12, 1995.
-
-Don't use 2.5.x, with x less than 5, for C++ code; there were some
-serious bugs that didn't have easy workarounds. 2.5.8 is the most
-solid 2.5.x release. 2.6.3 is the most solid 2.6.x release.
-
-For some non-Unix platforms, the latest port of gcc may be an earlier
-version (2.5.8, say). You'll need to use a version of libg++ that
-has the same first two digits as the compiler version, e.g. use libg++
-2.5.x (for the latest x you can find) with gcc version 2.5.8.
-
-The latest "1.x" version of gcc is 1.42, and the latest "1.x" version of
-g++ is 1.42.0.
-While gcc 1.42 is quite usable for C programs,
-I recommend against using g++ 1.x except in special circumstances
-(and I can't think of any such circumstances).
-
-@node g++ for Unix, g++ for HP, latest versions, getting g++
-@section How do I get a copy of g++ for Unix?
-
-First, you may already have it if you have gcc for your platform;
-g++ and gcc are combined now (as of gcc version 2.0).
-@cindex GNU gcc, version
-@cindex GNU g++ and gcc
-
-You can get g++ from a friend who has a copy, by anonymous FTP or
-UUCP, or by ordering a tape or CD-ROM from the Free Software
-Foundation.
-@cindex g++, ordering
-@cindex g++, getting a copy
-
-The Free Software Foundation is a nonprofit organization that
-distributes software and manuals to raise funds for more GNU
-development. Getting your copy from the FSF contributes directly to
-paying staff to develop GNU software. CD-ROMs cost $400 if an
-organization is buying, or $100 if an individual is buying. Tapes
-cost around $200 depending on media type. I recommend asking for
-version 2, not version 1, of g++.
-@cindex FSF [Free Software Foundation]
-@cindex GNU [GNU's not unix]
-
-For more information about ordering from the FSF, contact
-gnu@@prep.ai.mit.edu, phone (617) 542-5942 or anonymous ftp file
-@file{ftp://prep.ai.mit.edu/pub/gnu/GNUinfo/ORDERS} (you can
-also use one of the sites listed below if you can't get into ``prep'').
-
-@cindex FSF, contact
-
-Here is a list of anonymous FTP archive sites for GNU software.
-If no directory is given, look in @file{/pub/gnu}.
-
-@cindex GNUware, anonymous FTP sites
-
-@example
-ASIA: ftp.cs.titech.ac.jp, utsun.s.u-tokyo.ac.jp:/ftpsync/prep,
-cair.kaist.ac.kr, ftp.nectec.or.th:/pub/mirrors/gnu
-
-AUSTRALIA: archie.oz.au:/gnu (archie.oz or archie.oz.au for ACSnet)
-
-AFRICA: ftp.sun.ac.za
-
-MIDDLE-EAST: ftp.technion.ac.il:/pub/unsupported/gnu
-
-EUROPE: irisa.irisa.fr, ftp.univ-lyon1.fr, ftp.mcc.ac.uk,
-unix.hensa.ac.uk:/pub/uunet/systems/gnu, ftp.denet.dk,
-src.doc.ic.ac.uk:/gnu, ftp.eunet.ch, nic.switch.ch:/mirror/gnu,
-ftp.informatik.rwth-aachen.de, ftp.informatik.tu-muenchen.de,
-ftp.win.tue.nl, ftp.funet.fi, ftp.denet.dk, ftp.stacken.kth.se,
-isy.liu.se, ftp.luth.se:/pub/unix/gnu, ftp.sunet.se, archive.eu.net
-
-SOUTH AMERICA: ftp.unicamp.br, ftp.inf.utfsm.cl
-
-WESTERN CANADA: ftp.cs.ubc.ca:/mirror2/gnu
-
-USA: wuarchive.wustl.edu:/systems/gnu, labrea.stanford.edu,
-ftp.digex.net:/pub/gnu, ftp.kpc.com:/pub/mirror/gnu, f.ms.uky.edu:/pub3/gnu,
-jaguar.utah.edu:/gnustuff, ftp.hawaii.edu:/mirrors/gnu,
-uiarchive.cso.uiuc.edu:/pub/gnu, ftp.cs.columbia.edu:/archives/gnu/prep,
-col.hp.com:/mirrors/gnu, gatekeeper.dec.com:/pub/GNU,
-ftp.uu.net:/systems/gnu
-
-@end example
-
-The ``official site'' is prep.ai.mit.edu, but your transfer will probably
-go faster if you use one of the above machines.
-
-@cindex gzip
-Most GNU utilities are compressed with ``gzip'', the GNU compression
-utility. All GNU archive sites should have a copy of this program,
-which you will need to uncompress the distributions.
-
-@cindex UUNET
-@cindex UUCP
-UUNET customers can get GNU sources from UUNET via UUCP.
-UUCP-only sites can get GNU sources by ``anonymous UUCP'' from site
-"osu-cis" at Ohio State University. You pay for the long-distance call
-to OSU; the price isn't too bad on weekends at 9600 bps. Send mail to
-uucp@@cis.ohio-state.edu or osu-cis!uucp for more information.
-
-OSU lines are often busy. If you're in the USA, and are willing to spend
-more money, you can get sources via UUCP from UUNET using their 900 number:
-1-900-GOT-SRCS (900 numbers don't work internationally). You will be
-billed $0.50/minute by your phone company.
-
-@cindex libg++
-Don't forget to retrieve libg++ as well!
-
-@node g++ for HP, g++ for Solaris 2.x, g++ for Unix, getting g++
-@section Getting gcc/g++ for the HP Precision Architecture
-
-@cindex HP Precision Architecture
-@cindex Hewlett-Packard
-@cindex GNU GAS
-@cindex GNU gdb
-
-If you use the HP Precision Architecture (HP-9000/7xx and HP-9000/8xx)
-and you want to use debugging, you'll need to use the GNU assembler, GAS
-(version 2.3 or later). If you build from source, you must tell the
-configure program that you are using GAS or you won't get debugging
-support. A non-standard debug format is used, since until recently HP
-considered their debug format a trade secret. Thanks to the work of
-lots of good folks both inside and outside HP, the company has seen the
-error of its ways and has now released the required information. The
-team at the University of Utah that did the gcc port now has code that
-understands the native HP format.
-
-Some enhancements for the HP that haven't been integrated back into the
-official GCC are available from the University of Utah, site
-jaguar.cs.utah.edu. You can retrieve sources and prebuilt binaries for
-GCC, GDB, binutils,and libg++; see the directory @file{/dist}.
-
-The libg++ version is actually the same as the FSF 2.6. The Utah
-version of GDB can now understand both the GCC and HP C compiler debug
-formats, so it is no longer necessary to have two different GDB versions.
-
-I recommend that HP users use the Utah versions of the tools (see
-above), though at this point the standard FSF versions will work well.
-
-HP GNU users can also find useful stuff on the site geod.emr.ca in the
-@file{/pub/UNIX/GNU-HP} directory.
-
-Jeff Law is leaving the University of Utah, so the Utah prebuilt
-binaries may be discontinued.
-
-@node g++ for Solaris 2.x, g++ for other platforms, g++ for HP, getting g++
-@section Getting gcc/g++ binaries for Solaris 2.x
-
-``Sun took the C compiler out of Solaris 2.x. Am I stuck?''
-
-@cindex Solaris
-@cindex gcc/g++ binaries for Solaris
-
-No; prep.ai.mit.edu and its mirror sites provide GCC binaries for
-Solaris. As a rule, these binaries are not updated as often as the
-sources are, so if you want the very latest version of gcc/g++, you
-may need to grab and install binaries for an older version and use it to
-bootstrap the latest version from source.
-
-@cindex gzip
-The latest gcc binaries on prep.ai.mit.edu and its mirror sites are for
-version 2.5.6 for Solaris on the Sparc, and version 2.4.5 for Solaris on
-Intel 386/486 machines (the Solaris/Intel binaries seem to be gone from
-prep but still exist on some mirrors).
-
-There are also binaries for ``gzip'', the GNU compression utility, which
-you'll need for uncompressing the binary distribution. On any GNU
-archive site, look in subdirectories @file{i486-sun-solaris2} or
-@file{sparc-sun-solaris2}.
-
-@cindex Solaris pkgadd utility
-The ftp directory @file{ftp://ftp.quintus.com/pub/GNU}
-contains various
-GNU and freeware programs for Solaris2.X running on the sparc. These are
-packaged to enable installation using the Solaris ``pkgadd'' utility.
-These include GNU emacs 19.27, gcc (and g++) 2.6.0, Perl 4.036, and others.
-
-@node g++ for other platforms, 1.x vs 2.x versions, g++ for Solaris 2.x, getting g++
-@section How do I get a copy of g++ for (some other platform)?
-
-@cindex Windows NT support
-As of gcc-2.7.x, there is Windows NT support in gcc. Some special
-utilities are required. See the INSTALL file from the distribution.
-If you're interested in GNU tools on Windows NT, see
-@file{http://www.cygnus.com/misc/gnu-win32/} on the WWW, or the
-anonymous FTP directory
-@file{ftp://ftp.cygnus.com/pub/gnu-win32/}.
-
-@cindex VMS support
-@cindex VAX
-@cindex VMS, g++/libg++ precompiled
-The standard gcc/g++ distribution includes VMS support. Since the
-FSF people don't use VMS, it's likely to be somewhat less solid than
-the Unix version. Precompiled copies of g++ and libg++ in VMS-installable
-form are available by FTP from
-@file{ftp://mango.rsmas.miami.edu/pub/VMS-gcc/}.
-
-@cindex MS-DOS support
-@cindex Delorie's gcc/g++
-@cindex DJGPP
-@cindex EMX
-There are two different versions of gcc/g++ for MS-DOS: EMX and DJGPP.
-EMX also works for OS/2 and is described later.
-DJGPP is DJ Delorie's port. It can be found on many FTP archive
-sites; try
-@file{ftp://ftp.coast.net/SimTel/vendors/djgpp/}
-or, for a complete list, see
-@file{http://www.delorie.com/djgpp/getting.html}.
-
-
-The latest version of DJGPP is 1.12.maint4, a port of gcc-2.6.3 plus
-support software. This version runs under Windows 3.x. There's
-also a beta-2.00 version.
-
-FSF sells floppies with DJGPP on them; see above for ordering software
-from the FSF.
-
-DJGPP has its own newsgroup: @file{comp.os.msdos.djgpp}.
-
-@cindex Amiga support
-For information on Amiga ports of gcc/g++, retrieve the file @*
-@file{ftp://prep.ai.mit.edu/pub/gnu/MicrosPorts/Amiga} @*
-or write
-to Markus M. Wild , who I hope won't be too upset
-that I mentioned his name here.
-
-@cindex Atari ST support
-A port of gcc to the Atari ST can be found at @*
-@file{ftp://atari.archive.umich.edu/atari/Gnustuff/Tos}
-along with many
-other GNU programs. This version is usually the same as the latest FSF
-release. See the ``Software FAQ'' for the Usenet group
-@file{comp.sys.atari.st} for more information.
-
-@cindex EMX port
-@cindex gcc/2
-@cindex OS/2 support
-
-There are two different ports of gcc to OS/2, the
-so-called EMX port (which also runs on MS-DOS), and a port called
-``gcc/2''. The latter port is no longer supported, since the EMX
-port includes all of its functionality.
-The EMX port's C library attempts to provide a Unix-like environment.
-For more information ask around on @file{comp.os.os2.programmer.misc}.
-
-The EMX port is available by FTP from
-
-@example
-ftp://ftp.uni-stuttgart.de/pub/systems/os2/emx-0.9a
-ftp://src.doc.ic.ac.uk/pub/packages/os2/unix/emx09a
-ftp://ftp.informatik.tu-muenchen.de/pub/comp/os/os2/devtools/emx+gcc
-@end example
-
-Eberhard Mattes did the EMX port. His address is
-mattes@@azu.informatik.uni-stuttgart.de.
-
-@cindex Apple support
-@cindex Macintosh support
-
-I'm looking for more information on gcc/g++ support on the Apple
-Macintosh. Until recently, this FAQ did not provide such information,
-but FSF is no longer boycotting Apple as the League for Programming
-Freedom boycott has been dropped.
-
-Versions 1.37.1 and 2.3.3 of gcc were ported by Stan Shebs and are available
-at @*
-@file{ftp://ftp.cygnus.com/pub/mac}
-
-They are both interfaced to MPW.
-Stan is working on a version using the current (post-2.7) sources, contact
-him directly (shebs@@cygnus.com) for more information.
-
-@node 1.x vs 2.x versions, ,g++ for other platforms, getting g++
-@section But I can only find g++-1.42!
-
-``I keep hearing people talking about g++ 2.7.2 (or some other number
-starting with 2), but the latest version I can find is g++ 1.42.
-Where is it?''
-
-@cindex Objective-C
-@cindex g++, version number
-As of gcc 2.0, C, C++, and Objective-C as well are all combined into a
-single distribution called gcc. If you get gcc you already have g++. The
-standard installation procedure for any gcc version 2 compiler will
-install the C++ compiler as well.
-
-One could argue that we shouldn't even refer to "g++-2.x.y" but it's a
-convention. It means ``the C++ compiler included with gcc-2.x.y.''
-
-@node installation, User Problems, getting g++, Top
-@chapter Installation Issues and Problems
-
-@menu
-* gcc-2 + g++-1:: I can't build g++ 1.x.y with gcc-2.x.y!
-* what else do I need?:: OK, I've obtained gcc; what else do I need?
-* use GNU linker?:: Should I use the GNU linker, or should I use "collect"?
-* Use GNU assembler?:: Should I use the GNU assembler, or my vendor's assembler?
-* repository:: How do I use the new template repository code?
-* repo bugs:: Known bugs and problems with the repo patch
-* Use GNU C library?:: Should I use the GNU C library?
-* Global constructor problems:: Global constructors aren't being called
-* Strange assembler errors:: Strange assembler errors when linking C++ programs
-* Other problems building libg++:: Other problems building libg++
-* More size_t problems:: But I'm still having problems with size_t!
-* Rebuild libg++?:: Rebuild libg++ to go with my new g++?
-* co-existing versions:: I want several versions of g++ and libg++ to co-exist
-* Installing on Linux:: Trouble installing g++ and libg++ on Linux
-* Linux Slackware 3.0:: On my Linux system, the "hello world" program fails
-@end menu
-
-@node gcc-2 + g++-1, what else do I need?, , installation
-@section I can't build g++ 1.x.y with gcc-2.x.y!
-
-``I obtained gcc-2.x.y and g++ 1.x.y and I'm trying to build it, but
-I'm having major problems. What's going on?''
-
-@cindex g++, building
-If you wish to build g++-1.42, you must obtain gcc-1.42 first. The
-installation instructions for g++ version 1 leave a lot to be desired,
-unfortunately, and I would recommend that, unless you have a special
-reason for needing the 1.x compiler, that C++ users use the latest
-g++-2.x version, as it
-is the version that is being actively maintained.
-
-@cindex g++, template support
-@cindex Templates
-@cindex ANSI draft standard
-There is no template support in g++-1.x, and it is generally much further
-away from the ANSI draft standard than g++-2.x is.
-
-@node what else do I need?, use GNU linker?, gcc-2 + g++-1, installation
-@section OK, I've obtained gcc; what else do I need?
-
-@cindex libg++
-First off, you'll want libg++ as you can do almost nothing without it
-(unless you replace it with some other class library).
-
-@cindex GNU GAS
-@cindex GNU GAS [assembler]
-Second, depending on your platform, you may need "GAS", the GNU assembler,
-or the GNU linker (see next question).
-
-@cindex GNU gdb
-Finally, while it is not required, you'll almost certainly want the GNU
-debugger, gdb. The latest version is 4.15.1, released November 4, 1995. Other
-debuggers (like dbx, for example) will normally not be able to
-understand at least some of the debug information produced by g++.
-
-@node use GNU linker?, Use GNU assembler?, what else do I need?, installation
-@section Should I use the GNU linker, or should I use "collect"?
-
-@cindex Linker
-@cindex System VR3, linker
-@cindex System VR4, linker
-First off, for novices: special measures must be taken with C++ to arrange
-for the calling of constructors for global or static objects before the
-execution of your program, and for the calling of destructors at the end.
-(Exception: System VR3 and System VR4 linkers, Linux/ELF, and some other
-systems support user-defined
-segments; g++ on these systems requires neither the GNU linker nor
-collect. So if you have such a system, the answer is that you don't
-need either one).
-
-@cindex AT&T cfront
-@cindex Cfront-end
-@cindex collect program
-@cindex GNU linker
-@cindex GNU binutils
-If you have experience with AT&T's "cfront", this function is performed
-there by programs named "patch" or "munch". With GNU C++, it is performed
-either by the GNU linker or by a program known as "collect". The collect
-program is part of the gcc-2.x distribution; you can obtain the GNU linker
-separately as part of the "binutils" package. The latest version of
-binutils is 2.5.2, released November 2, 1994.
-
-(To be technical, it's "collect2"; there were originally several
-alternative versions of collect, and this is the one that survived).
-
-There are advantages and disadvantages to either choice.
-
-Advantages of the GNU linker:
-@cindex GNU linker, advantages
-@cindex GNU ld
-@cindex ld [GNU linker]
-
-It's faster than using collect -- collect basically runs the standard Unix
-linker on your program twice, inserting some extra code after the first
-pass to call the constructors. This is a sizable time penalty for large
-programs. The GNU linker does not require this extra pass.
-
-GNU ld reports undefined symbols using their true names, not the mangled
-names (but as of 2.7.0 so does collect).
-
-If there are undefined symbols, GNU ld reports which object file(s) refer to
-the undefined symbol(s).
-
-As of binutils version 2.2, on systems that use the so-called "a.out"
-debug format (e.g. Suns running SunOS 4.x), the GNU linker compresses
-the debug symbol table considerably.
-
-@cindex collect linker, advantages
-Advantages of collect:
-
-@cindex Shared libraries
-If your native linker supports shared libraries, you can use shared
-libraries with collect. This used to be a strong reason @emph{not}
-to use the GNU linker, but recent versions of GNU ld support linking
-with shared libraries on many platforms, and creating shared libraries
-on a few (such as Intel x86 systems that use ELF object format).
-
-Note: using existing shared libraries (X and libc, for example) works
-very nicely. Generating shared libraries from g++-compiled code is
-another matter, generally requiring OS-dependent tricks if it is
-possible at all. But progress has been made recently.
-
-As of 2.7.0, building C++ shared libraries should work fine on supported
-platforms (HPUX 9+, IRIX 5+, DEC UNIX (formerly OSF/1), SunOS 4,
-Linux/ELF
-and all targets using SVR4-style ELF shared libraries).
-
-@cindex Shared version of libg++
-However, as of libg++ 2.6.2, the libg++ distribution contains some
-patches to build libg++ as a shared library on some OSes (those listed
-above). Check the file @file{README.SHLIB} from that distribution.
-
-@cindex GNU linker, porting
-The GNU linker has not been ported to as many platforms as g++ has, so you
-may be forced to use collect.
-
-If you use collect, you don't need to get something extra and figure out
-how to install it; the standard gcc installation procedure will do it for you.
-
-In conclusion, I don't see a clear win for either alternative at this
-point. Take your pick.
-
-@node Use GNU assembler?, repository, use GNU linker?, installation
-@section Should I use the GNU assembler, or my vendor's assembler?
-
-@cindex Assembler
-@cindex GNU GAS
-This depends on your platform and your decision about the GNU linker. For
-most platforms, you'll need to use GAS if you use the GNU linker. For
-some platforms, you have no choice; check the gcc installation notes to
-see whether you must use GAS. But you can usually use the vendor's
-assembler if you don't use the GNU linker.
-
-The GNU assembler assembles faster than many native assemblers; however,
-on many platforms it cannot support the local debugging format.
-
-If you want to build shared libraries from gcc/g++ output and you are on
-a Sun, you must @emph{not} use GNU as, as it cannot do
-position-independent code correctly yet. @emph{Note}: I've been
-told that this problem has been fixed in the most recent binutils
-release, but I haven't checked this yet.
-
-On HPUX or IRIX, you must use GAS (and configure gcc with the
-@code{--with-gnu-as} option) to debug your programs. GAS is
-strongly recommended particularly on the HP platform because of
-limitations in the HP assembler.
-
-The GAS distribution has recently been merged with the binutils
-distribution, so the GNU assembler and linker are now together in
-this package (as of binutils version 2.5.1).
-
-@node repository, repo bugs, Use GNU assembler?, installation
-@section How do I use the new repository code?
-
-@cindex repo patch
-Because there is some disagreement about the details of the template
-repository mechanism, you'll need to obtain a patch from Cygnus Support
-to enable the 2.7.2 repository code. You can obtain the patch by
-anonymous FTP: @file{ftp://ftp.cygnus.com/pub/g++/gcc-2.7.2-repo.gz}.
-
-There are patches for 2.7.0 and 2.7.1 in the same directory, though
-if you're going to rebuild the compiler you should use the latest one.
-
-@cindex repo patch for BSD
-If you're running NetBSD or BSDI, the Cygnus repo patch is not quite
-correct. Tim Liddelow has made an alternate version available at
-@file{ftp://ftp.cst.com.au/pub/gcc-2.7.2-repo-bsd.gz}.
-
-After you've applied the patch, the @code{-frepo} flag will enable the
-repository mechanism. The flag works much like the existing
-@code{-fno-implicit-templates} flag, except that auxiliary files, with
-an @file{.rpo} extension, are built that specify what template
-expansions are needed. At link time, the (patched) collect program
-detects missing templates and recompiles some of the object files
-so that the required templates are expanded.
-
-Note that the mechanism differs from that of cfront in that template
-definitions still must be visible at the point where they are to be
-expanded. No assumption is made that @file{foo.C} contains template
-definitions corresponding to template declarations in @file{foo.h}.
-
-@cindex closure with repo
-@cindex template closure
-Jason Merrill writes: ``To perform closure on a set of objects, just try
-to link them together. It will fail, but as a side effect all needed
-instances will be generated in the objects.''
-
-@node repo bugs, Use GNU C library?, repository, installation
-@section Known bugs and problems with the repo patch
-
-``The @code{-frepo} won't expand templated friend functions!''
-
-This is a known bug; currently you'll have to explicitly instantiate
-friend functions when using @code{-frepo} due to this bug (in 2.7.0
-through 2.7.2 at least).
-
-With earlier versions of the repo patch, there was a bug that happens
-when you have given a quoted command line switch, something like
-
-@example
--D'MESSAGE="hello there"'
-@end example
-
-The repo code tries to recompile files using the same flags you
-originally specified, but doesn't quote arguments that need quoting,
-resulting in failures in some cases. This is no longer a problem
-with the 2.7.2 patch.
-
-@node Use GNU C library?, Global constructor problems, repo bugs, installation
-@section Should I use the GNU C library?
-
-@cindex GNU C library
-@cindex libg++
-At this point in time, no. The GNU C library is still very young, and
-libg++ still conflicts with it in some places. Use your native C library
-unless you know a lot about the gory details of libg++ and gnu-libc. This
-will probably change in the future.
-
-@node Global constructor problems, Strange assembler errors, Use GNU C library?, installation
-@section Global constructors aren't being called
-
-@cindex global constructors
-``I've installed gcc and it almost works, but constructors and
-destructors for global objects and objects at file scope aren't being
-called. What did I do wrong?''
-
-@cindex collect program
-It appears that you are running on a platform that requires you to
-install either "collect2" or the GNU linker, and you have done neither.
-For more information, see the section discussing the GNU linker
-(@xref{use GNU linker?}).
-
-@cindex constructor problems on Solaris
-@cindex Solaris, constructor problems
-On Solaris 2.x, you shouldn't need a collect program and GNU ld doesn't run.
-If your global constructors aren't being called, you may need to install
-a patch, available from Sun, to fix your linker. The number of the
-``jumbo patch'' that applies is 101409-03. Thanks to Russell Street
-(r.street@@auckland.ac.nz) for this info.
-
-@cindex IRIX, installing collect
-It appears that on IRIX, the collect2 program is not being installed
-by default during the installation process, though it is required;
-you can install it manually by executing
-
-@example
-make install-collect2
-@end example
-
-from the gcc source directory after installing the compiler. (I'm
-not certain for which versions of gcc this problem occurs, and whether
-it is still present).
-
-@node Strange assembler errors, Other problems building libg++, Global constructor problems, installation
-@section Strange assembler errors when linking C++ programs
-
-``I've installed gcc and it seemed to go OK, but when I attempt to link
-any C++ program, I'm getting strange errors from the assembler! How
-can that be?''
-
-The messages in question might look something like
-
-@example
-as: "/usr/tmp/cca14605.s", line 8: error: statement syntax
-as: "/usr/tmp/cca14605.s", line 14: error: statement syntax
-@end example
-
-(on a Sun, different on other platforms). The important thing is that
-the errors come out at the link step, @emph{not} when a C++ file is
-being compiled.
-
-@cindex nm program
-@cindex GNU nm program
-Here's what's going on: the collect2 program uses the Unix ``nm''
-program to obtain a list of symbols for the global constructors and
-destructors, and it builds a little assembly language module that
-will permit them all to be called. If you're seeing this symptom,
-you have an old version of GNU nm somewhere on your path. This old
-version prints out symbol names in a format that the collect2 program
-does not expect, so bad assembly code is generated.
-
-The solution is either to remove the old version of GNU nm from your
-path (and that of everyone else who uses g++), or to install a newer
-version (it is part of the GNU "binutils" package). Recent versions
-of GNU nm do not have this problem.
-
-@node Other problems building libg++, More size_t problems, Strange assembler errors, installation
-@section Other problems building libg++
-@cindex libg++ on Ultrix
-@cindex libg++ on SunOS
-
-``I am having trouble building libg++. Help!''
-
-On some platforms (for example, Ultrix), you may see errors complaining
-about being unable to open dummy.o. On other platforms (for example,
-SunOS), you may see problems having to do with the type of size_t.
-The fix for these problems is to make libg++ by saying "make CC=gcc".
-According to Per Bothner, it should no longer be necessary to specify
-"CC=gcc" for libg++-2.3.1 or later.
-
-``I built and installed libg++, but g++ can't find it. Help!''
-
-The string given to @file{configure} that identifies your system must
-be the same when you install libg++ as it was when you installed gcc.
-Also, if you used the @code{--prefix} option to install gcc somewhere
-other than @file{/usr/local}, you must use the same value for
-@code{--prefix} when installing libg++, or else g++ will not be able
-to find libg++.
-
-@cindex patch for libg++-2.6.2
-
-The toplevel Makefile in the libg++ 2.6.2 distribution is broken, which
-along with a bug in g++ 2.6.3 causes problems linking programs that use the
-libstdc++ complex classes. A patch for this is available from
-@file{ftp://ftp.cygnus.com//pub/g++/libg++-2.6.2-fix.gz}.
-
-@node More size_t problems, Rebuild libg++?, Other problems building libg++, installation
-@section But I'm @emph{still} having problems with @code{size_t}!
-
-@cindex Type of size_t
-``I did all that, and I'm @emph{still} having problems with disagreeing
-definitions of size_t, SIZE_TYPE, and the type of functions like
-@code{strlen}.''
-
-@cindex _G_config.h
-The problem may be that you have an old version of @file{_G_config.h}
-lying around. As of libg++ version 2.4, @file{_G_config.h}, since it is
-platform-specific, is inserted into a different directory; most include
-files are in @file{$prefix/lib/g++-include}, but this file now lives in
-@file{$prefix/$arch/include}. If, after upgrading your libg++, you find that
-there is an old copy of @file{_G_config.h} left around, remove it,
-otherwise g++ will find the old one first.
-
-@node Rebuild libg++?, co-existing versions, More size_t problems, installation
-@section Do I need to rebuild libg++ to go with my new g++?
-
-``After I upgraded g++ to the latest version, I'm seeing undefined
-symbols.''
-
-or
-
-``If I upgrade to a new version of g++, do I need to reinstall libg++?''
-
-@cindex Incompatibilities between g++ versions
-
-As a rule, the first two digits of your g++ and libg++ should be the
-same. Normally when you do an upgrade in the ``minor version number''
-(2.5.7 to 2.5.8, say) there isn't a need to rebuild libg++, but there
-have been a couple of exceptions in the past.
-
-@node co-existing versions, Installing on Linux, Rebuild libg++?, installation
-@section I want several versions of g++ and libg++ to co-exist.
-
-I recommend against using the @code{-V} flag to make multiple versions
-of gcc/g++ co-exist, unless they are different minor releases that can use
-the same compiled version of libg++. The reason is that all these
-versions will try to use the same libg++ version, which usually will
-not work.
-
-Instead, use the @code{--prefix} flag when configuring gcc. Use a
-different value of @code{--prefix} for each gcc version. Use the
-same value of @code{--prefix} when configuring libg++. You can then
-have any number of co-existing gcc/libg++ pairs. Symbolic links can
-be used so that users don't need to put all these different directories
-on their paths.
-
-One possible system to use is to set @code{--prefix} to
-@file{/usr/local/gcc-2.x.y} for version 2.x.y of gcc, and to link
-whichever version of gcc you wish to be the default into
-@file{/usr/local/bin/gcc} and @file{/usr/local/bin/g++}.
-
-@node Installing on Linux, Linux Slackware 3.0, co-existing versions, installation
-@section Trouble installing g++ and libg++ on Linux
-
-``I've downloaded the latest g++ and libg++ and I'm trying to install
-them on Linux, and I'm having lots of problems.''
-
-@cindex Linux
-FSF releases of libg++ won't install on Linux unchanged, since Linux
-uses are part of the libio library from libg++ for its standard C
-library, only this is changed in a way that it clashes with libg++.
-This means that you'll need a patched version of libg++ for it to
-work.
-
-If you want to upgrade to a new gcc/libg++ combination, the easiest
-thing to do is to grab the prebuilt versions of gcc and libg++ for Linux
-from @file{ftp://tsx-11.mit.edu/pub/linux/packages/GCC}. Follow the
-directions carefully. If you want to build from source, you'll need
-a patch for libg++; the Linux developers have named the patched libg++
-version libg++-2.7.1.3 and there is a patch file in the above-named
-directory.
-
-See @file{ftp://www.mrc-apu.cam.ac.uk/pub/linux/GCC-FAQ.html},
-the Linux GCC FAQ (though it may be a bit out of date; the Linux
-community moves quickly).
-
-@node Linux Slackware 3.0, , Installing on Linux, installation
-@section Problems with g++ on Linux Slackware 3.0
-
-@cindex Slackware
-@cindex Linux Slackware
-``When I try to compile the traditional Hello, world program on Linux,
-the compiler can't find @file{iostream.h}. What's the deal?''
-
-You probably have the Slackware 3.0 release. There's an error in the
-setup. It's easy to fix, though; log in as root, and make a symbolic
-link:
-
-@example
-ln -s /usr/lib/g++-include /usr/include/g++
-@end example
-
-@node User Problems, legalities, installation, Top
-@chapter User Problems
-
-@menu
-* missing virtual table:: Linker complains about missing virtual table
-* for scope:: gcc-2.7.0 breaks declarations in "for" statements!
-* const constructor:: g++ seems to want a const constructor. What's that?
-* unused parameter warnings:: How to silence ``unused parameter'' warnings
-* jump crosses initialization:: g++ objects to a declaration in a case statement
-* Demangler:: Where can I find a demangler?
-* static data members:: Linker reports undefined symbols for static data members
-* internal compiler error:: What does ``internal compiler error'' mean?
-* bug reports:: I think I have found a bug in g++.
-* porting to g++:: Porting programs from other compilers to g++
-* name mangling:: Why does g++ mangle names differently from other C++ compilers?
-* problems linking with other libraries:: Why can't g++ code link with code from other C++ compilers?
-* documentation:: What documentation exists for g++ 2.x?
-* templates:: Problems with the template implementation
-* undefined templates:: I get undefined symbols when using templates
-* redundant templates:: I get multiply defined symbols when using templates
-* Standard Template Library:: Does g++ support the Standard Template Library?
-* exceptions:: Problems and limitations with exceptions
-* namespaces:: Does g++ support namespaces?
-* agreement with standards:: What are the differences between g++ and the ARM specification of C++?
-* compiling standard libraries:: Will g++ compile InterViews? NIHCL? Rogue Wave?
-* debugging on SVR4 systems:: Debugging on SVR4 systems
-* debugging problems on Solaris:: debugging problems on Solaris
-* X11 conflicts with libg++:: Conflict over meaning of String
-* assignment to streams:: Why can't I assign one stream to another?
-@end menu
-
-@node missing virtual table, for scope, , User Problems
-@section Linker complains about missing virtual table
-
-``I'm getting a message complaining about an undefined virtual table. Is
-this a compiler bug?''
-
-(On platforms that run neither collect nor the GNU linker, like Solaris,
-you may see an odd undefined symbol like "_vt.3foo", where foo is a
-class name).
-
-This is probably because you are missing a definition for the first
-(non-inline) virtual function of the class. Since gcc-2.7.0, g++ uses
-a trick borrowed from cfront: the .o file containing the definition for
-the first non-inline virtual function for the class will also contain
-the virtual function table.
-
-@node for scope, const constructor, missing virtual table, User Problems
-@section gcc-2.7.0 breaks declarations in "for" statements!
-
-@cindex declarations in for statements
-@cindex for statements: declarations
-
-gcc-2.7.0 implements the new ANSI/ISO rule on the scope of variables
-declared in for loops.
-
-@example
-for (int i = 1; i <= 10; i++) @{
- // do something here
-@}
-foo(i);
-@end example
-
-In the above example, most existing C++ compilers would pass the
-value 11 to the function @code{foo}. In gcc 2.7 and in the ANSI/ISO
-working paper, the scope of @code{i} is only the for loop body, so
-this is an error. So that old code can be compiled, the new gcc has
-a flag @code{-fno-for-scope} that causes the old rule to be used.
-@cindex -fno-for-scope
-
-As of 2.7.1, the compiler attempts to issue warnings about code that
-has different meanings under the two sets of rules, but the code is
-not perfect: the intent was that code that has valid, but different,
-meanings under the ARM rules and the working paper rules would give
-warnings but have the new behavior, and this doesn't seem to happen.
-
-The @code{-ffor-scope} flag under 2.7.1 and 2.7.2 gives the 2.7.0 behavior.
-
-@node const constructor, unused parameter warnings, for scope, User Problems
-@section g++ seems to want a const constructor. What's that?
-
-gcc-2.7.1 introduced a bug that causes the compiler to ask for a
-const constructor (there's no such thing in C++) in certain situations
-where a const object appears in a template class. Most cases have been
-fixed in gcc-2.7.2, but unfortunately not all. Still, if you're running
-gcc-2.7.1 and have this problem, upgrade to 2.7.2; it is a vast improvement.
-
-@cindex ObjectSpace
-
-The default constructor for the template @code{pair} in ObjectSpace's
-implementation of STL triggers the bug in one place, for gcc 2.7.2. If
-you're using ObjectSpace and having this problem, simply
-change the default constructor from
-
-@example
-os_pair () : first (T1 ()), second (T2 ()) @{@}
-@end example
-
-to just
-
-@example
-os_pair () @{@}
-@end example
-
-Once this is done, ObjectSpace works fairly well.
-
-@node unused parameter warnings, jump crosses initialization, const constructor,User Problems
-@section How to silence ``unused parameter'' warnings
-
-@cindex -Wall
-@cindex -Wunused
-
-``When I use @code{-Wall} (or @code{-Wunused}), g++ warns about
-unused parameters. But the parameters have to be there, for use
-in derived class functions. How do I get g++ to stop complaining?''
-
-The answer is to simply omit the names of the unused parameters when
-defining the function. This makes clear, both to g++ and to readers
-of your code, that the parameter is unused. For example:
-
-@example
-int Foo::bar(int arg) @{ return 0; @}
-@end example
-
-will give a warning for the unused parameter @code{arg}. To suppress
-the warning write
-
-@example
-int Foo::bar(int) @{ return 0; @}
-@end example
-
-@node jump crosses initialization, Demangler, unused parameter warnings, User Problems
-@section g++ objects to a declaration in a case statement
-
-``The compiler objects to my declaring a variable in one of the branches
-of a case statement. Earlier versions used to accept this code. Why?''
-
-The draft standard does not allow a goto or a jump to a case label to
-skip over an initialization of a variable or a class object. For
-example:
-
-@example
-switch ( i ) @{
- case 1:
- Object obj(0);
- ...
- break;
- case 2:
- ...
- break;
-@}
-@end example
-
-The reason is that @code{obj} is also in scope in the rest of the switch
-statement.
-
-As of version 2.7.0, the compiler will object that the jump to the
-second case level crosses the initialization of @code{obj}. Older
-compiler versions would object only if class Object has a destructor.
-In either case, the solution is to add a set of curly braces around
-the case branch:
-
-@example
- case 1:
- @{
- Object obj(0);
- ...
- break;
- @}
-@end example
-
-@node Demangler, static data members, jump crosses initialization, User Problems
-@section Where can I find a demangler?
-
-@cindex demangler program
-A g++-compatible demangler named @code{c++filt} can be found in the
-@file{binutils} distribution. This distribution (which also contains
-the GNU linker) can be found at any GNU archive site.
-
-As of version 2.7.0, @code{c++filt} is included with gcc and is
-installed automatically. Even better, it is used by the @code{collect}
-linker, so you don't see mangled symbols anymore (except on platforms
-that use neither collect nor the GNU linker, like Solaris).
-
-@node static data members, internal compiler error, Demangler, User Problems
-@section Linker reports undefined symbols for static data members
-
-@cindex Static data members
-``g++ reports undefined symbols for all my static data members when I link,
-even though the program works correctly for compiler XYZ. What's going on?''
-
-The problem is almost certainly that you don't give definitions for
-your static data members. If you have
-
-@example
-class Foo @{
- ...
- void method();
- static int bar;
-@};
-@end example
-
-you have only declared that there is an int named Foo::bar and a member
-function named Foo::method that is defined somewhere. You still need to
-define @emph{both} method() and bar in some source file. According to
-the draft ANSI standard, you must supply an initializer, such as
-
-@example
-int Foo::bar = 0;
-@end example
-
-@noindent
-in one (and only one) source file.
-
-@node internal compiler error, bug reports, static data members, User Problems
-@section What does ``Internal compiler error'' mean?
-
-It means that the compiler has detected a bug in itself. Unfortunately,
-g++ still has many bugs, though it is a lot better than it used to be.
-If you see this message, please send in a complete bug report (see next
-section).
-
-@node bug reports, porting to g++, internal compiler error, User Problems
-@section I think I have found a bug in g++.
-
-@cindex Bug in g++, newly found
-``I think I have found a bug in g++, but I'm not sure. How do I know,
-and who should I tell?''
-
-@cindex Manual, for gcc
-First, see the excellent section on bugs and bug reports in the gcc manual
-(which is included in the gcc distribution). As a short summary of that
-section: if the compiler gets a fatal signal, for any input, it's a bug
-(newer versions of g++ will ask you to send in a bug report when they
-detect an error in themselves). Same thing for producing invalid
-assembly code.
-
-When you report a bug, make sure to describe your platform (the type of
-computer, and the version of the operating system it is running) and the
-version of the compiler that you are running. See the output of the
-command @code{g++ -v} if you aren't sure. Also provide enough code
-so that the g++ maintainers can duplicate your bug. Remember that the
-maintainers won't have your header files; one possibility is to send
-the output of the preprocessor (use @code{g++ -E} to get this). This
-is what a ``complete bug report'' means.
-
-I will add some extra notes that are C++-specific, since the notes from
-the gcc documentation are generally C-specific.
-
-@cindex g++ bug report
-First, mail your bug report to "bug-g++@@prep.ai.mit.edu". You may also
-post to @file{gnu.g++.bug}, but it's better to use mail, particularly if you
-have any doubt as to whether your news software generates correct reply
-addresses. Don't mail C++ bugs to bug-gcc@@prep.ai.mit.edu.
-
-@strong{News:} as I write this (late February 1996) the gateway
-connecting the bug-g++ mailing list and the @file{gnu.g++.bug} newsgroup
-is (temporarily?) broken. Please mail, do not post bug reports.
-
-@cindex libg++ bug report
-If your bug involves libg++ rather than the compiler, mail to
-bug-lib-g++@@prep.ai.mit.edu. If you're not sure, choose one, and if you
-guessed wrong, the maintainers will forward it to the other list.
-
-@cindex C++, reference books
-@cindex ARM [Annotated C++ Ref Manual]
-Second, if your program does one thing, and you think it should do
-something else, it is best to consult a good reference if in doubt.
-The standard reference is the draft working paper from the ANSI/ISO
-C++ standardization committee, which you can get on the net.
-For PostScript and PDF (Adobe Acrobat) versions, see the
-archive at @file{ftp://research.att.com/dist/stdc++/WP}. For HTML and ASCII
-versions, see @file{ftp://ftp.cygnus.com/pub/g++}. On the World Wide Web, see
-@file{http://www.cygnus.com/misc/wp/}.
-
-An older
-standard reference is "The Annotated C++ Reference Manual", by Ellis and
-Stroustrup (copyright 1990, ISBN #0-201-51459-1). This is what they're
-talking about on the net when they refer to ``the ARM''. But you should
-know that changes have been made to the language since then.
-
-The ANSI/ISO C++ standards committee have adopted some changes to the
-C++ language since the publication of the original ARM, and newer
-versions of g++ (2.5.x and later) support some of these changes, notably
-the mutable keyword (added in 2.5.0), the bool type (added in 2.6.0),
-and changes in the scope of variables defined in for statements (added
-in 2.7.0).
-You can obtain an addendum to the ARM explaining many of these changes by FTP
-from @file{ftp://ftp.std.com/AW/stroustrup2e/new_iso.ps}.
-
-@cindex AT&T cfront
-Note that the behavior of (any version of) AT&T's "cfront" compiler is
-NOT the standard for the language.
-
-@node porting to g++, name mangling, bug reports, User Problems
-@section Porting programs from other compilers to g++
-
-``I have a program that runs on , and I want
-to get it running under g++. Is there anything I should watch out
-for?''
-
-@cindex Porting to g++
-
-Note that g++ supports many of the newer keywords that have recently
-been added to the language. Your other C++ compiler may not support
-them, so you may need to rename variables and members that conflict
-with these keywords.
-
-There are two other reasons why a program that worked under one compiler
-might fail under another: your program may depend on the order of
-evaluation of side effects in an expression, or it may depend on the
-lifetime of a temporary (you may be assuming that a temporary object
-"lives" longer than the standard guarantees). As an example of the
-first:
-
-@example
-void func(int,int);
-
-int i = 3;
-func(i++,i++);
-@end example
-
-@cindex Order of evaluation, problems in porting
-Novice programmers think that the increments will be evaluated in strict
-left-to-right order. Neither C nor C++ guarantees this; the second
-increment might happen first, for example. func might get 3,4, or it
-might get 4,3.
-
-@cindex Classes, problems in porting
-@cindex Problems in porting, class
-The second problem often happens with classes like the libg++ String
-class. Let's say I have
-
-@example
-String func1();
-void func2(const char*);
-@end example
-
-and I say
-
-@example
-func2(func1());
-@end example
-
-because I know that class String has an "operator const char*". So what
-really happens is
-
-@example
-func2(func1().convert());
-@end example
-
-@cindex temporaries
-where I'm pretending I have a convert() method that is the same as the
-cast. This is unsafe in g++ versions before 2.6.0, because the
-temporary String object may be deleted after its last use (the call to
-the conversion function), leaving the pointer pointing to garbage, so by
-the time func2 is called, it gets an invalid argument.
-
-@cindex ANSI draft standard
-Both the cfront and the old g++ behaviors are legal according to the ARM,
-but the powers that be have decided that compiler writers were given
-too much freedom here.
-
-The ANSI C++ committee has now come to a resolution of the lifetime of
-temporaries problem: they specify that temporaries should be deleted at
-end-of-statement (and at a couple of other points). This means that g++
-versions before 2.6.0 now delete temporaries too early, and cfront
-deletes temporaries too late. As of version 2.6.0, g++ does things
-according to the new standard.
-
-@cindex Scope, problems in porting
-@cindex Problems in porting, scope
-For now, the safe way to write such code is to give the temporary a name,
-which forces it to live until the end of the scope of the name. For
-example:
-
-@example
-String& tmp = func1();
-func2(tmp);
-@end example
-
-Finally, like all compilers (but especially C++ compilers, it seems),
-g++ has bugs, and you may have tweaked one. If so, please file a bug
-report (after checking the above issues).
-
-@node name mangling, problems linking with other libraries, porting to g++, User Problems
-@section Why does g++ mangle names differently from other C++ compilers?
-
-See the answer to the next question.
-@cindex Mangling names
-
-@node problems linking with other libraries, documentation, name mangling, User Problems
-@section Why can't g++ code link with code from other C++ compilers?
-
-``Why can't I link g++-compiled programs against libraries compiled by
-some other C++ compiler?''
-
-@cindex Mangling names
-@cindex Cygnus Support
-Some people think that,
-if only the FSF and Cygnus Support folks would stop being
-stubborn and mangle names the same way that, say, cfront does, then any
-g++-compiled program would link successfully against any cfront-compiled
-library and vice versa. Name mangling is the least of the problems.
-Compilers differ as to how objects are laid out, how multiple inheritance
-is implemented, how virtual function calls are handled, and so on, so if
-the name mangling were made the same, your programs would link against
-libraries provided from other compilers but then crash when run. For this
-reason, the ARM @emph{encourages} compiler writers to make their name mangling
-different from that of other compilers for the same platform.
-Incompatible libraries are then detected at link time, rather than at run
-time.
-@cindex ARM [Annotated C++ Ref Manual]
-@cindex Compiler differences
-
-@node documentation, templates, problems linking with other libraries, User Problems
-@section What documentation exists for g++ 2.x?
-
-@cindex g++, documentation
-Relatively little.
-While the gcc manual that comes with the distribution has some coverage
-of the C++ part of the compiler, it focuses mainly on the C compiler
-(though the information on the ``back end'' pertains to C++ as well).
-Still, there is useful information on the command line options and the
-#pragma interface and #pragma implementation directives in the manual,
-and there is a useful section on template instantiation in the 2.6 version.
-There is a Unix-style manual entry, "g++.1", in the gcc-2.x
-distribution; the information here is a subset of what is in the manual.
-
-You can buy a nicely printed and bound copy of this manual from the FSF;
-see above for ordering information.
-
-For versions 2.6.2 and later, the gcc/g++ distribution contains the
-gcc manual in PostScript. Also,
-Postscript versions of GNU documentation in U.S. letter format
-are available by anonymous FTP from @file{ftp://primus.com/pub/gnu-ps}.
-The same, in A4 format, are on @*
-@file{ftp://liasun3.epfl.ch/pub/gnu/ps-doc}.
-
-A draft of a document describing the g++ internals appears in the gcc
-distribution (called g++int.texi); it is incomplete but gives lots of
-information.
-
-@node templates, undefined templates, documentation, User Problems
-@section Problems with the template implementation
-
-@cindex g++, template support
-@cindex Templates
-
-g++ does not implement a separate pass to instantiate template functions
-and classes at this point; for this reason, it will not work, for the most
-part, to declare your template functions in one file and define them in
-another. The compiler will need to see the entire definition of the
-function, and will generate a static copy of the function in each file
-in which it is used.
-
-(The experimental template repository code (see @xref{repository}) that
-can be added to 2.7.0 or later does implement a separate pass, but there
-is still no searching of files that the compiler never saw).
-
-@cindex -fno-implicit-templates
-For version 2.6.0, however, a new switch @code{-fno-implicit-templates}
-was added; with this switch, templates are expanded only under user
-control. I recommend that all g++ users that use templates read the
-section ``Template Instantiation'' in the gcc manual (version 2.6.x
-and newer). g++ now supports explicit template expansion using the
-syntax from the latest C++ working paper:
-
-@example
-template class A;
-template ostream& operator << (ostream&, const A&);
-@end example
-
-@cindex template limitations
-As of version 2.6.3, there are still a few limitations in the template
-implementation besides the above (thanks to Jason Merrill for this info):
-These are still present in version 2.7.2, but a new implementation of
-templates planned for version 2.8 will eliminate them.
-
-@enumerate 1
-@item
-Static data member templates are not supported. You can work around
-this by explicitly declaring the static variable for each template
-specialization:
-
-@example
-template struct A @{
- static T t;
-@};
-
-template T A::t = 0; // gets bogus error
-int A::t = 0; // OK (workaround)
-@end example
-
-(still a limitation in 2.7.2)
-
-@item
-Template member names are not available when defining member function
-templates.
-
-@example
-template struct A @{
- typedef T foo;
- void f (foo);
- void g (foo arg) @{ ... @}; // this works
-@};
-
-template void A::f (foo) @{ @} // gets bogus error
-@end example
-
-@item
-Templates are instantiated using the parser. This results in two
-problems:
-
-a) Class templates are instantiated in some situations where such
-instantiation should not occur.
-
-@example
-template class A @{ @};
-A *aip = 0; // should not instantiate A (but does)
-@end example
-
-b) Function templates cannot be inlined at the site of their
-instantiation.
-
-@example
-template inline T min (T a, T b) @{ return a < b ? a : b; @}
-
-void f () @{
- int i = min (1, 0); // not inlined
-@}
-
-void g () @{
- int j = min (1, 0); // inlined
-@}
-@end example
-
-A workaround that works in version 2.6.1 and later is to specify
-
-@example
-extern template int min (int, int);
-@end example
-
-before @code{f()}; this will force it to be instantiated (though not
-emitted).
-
-@item
-Member function templates are always instantiated when their containing
-class is. This is wrong.
-@end enumerate
-
-@node undefined templates, redundant templates, templates, User Problems
-@section I get undefined symbols when using templates
-
-(Thanks to Jason Merrill for this section).
-
-@cindex template instantiation
-g++ does not automatically instantiate templates defined in other files.
-Because of this, code written for cfront will often produce undefined
-symbol errors when compiled with g++. You need to tell g++ which template
-instances you want, by explicitly instantiating them in the file where they
-are defined. For instance, given the files
-
-@file{templates.h}:
-@example
-template
-class A @{
-public:
- void f ();
- T t;
-@};
-
-template void g (T a);
-@end example
-
-@file{templates.cc}:
-@example
-#include "templates.h"
-
-template
-void A::f () @{ @}
-
-template
-void g (T a) @{ @}
-@end example
-
-
-main.cc:
-@example
-#include "templates.h"
-
-main ()
-@{
- A a;
- a.f ();
- g (a);
-@}
-@end example
-
-compiling everything with @code{g++ main.cc templates.cc} will result in
-undefined symbol errors for @samp{A::f ()} and @samp{g (A)}. To
-fix these errors, add the lines
-
-@example
-template class A;
-template void g (A);
-@end example
-
-to the bottom of @samp{templates.cc} and recompile.
-
-@node redundant templates, Standard Template Library, undefined templates, User Problems
-@section I get multiply defined symbols using templates
-
-You may be running into a bug that was introduced in version 2.6.1
-(and is still present in 2.6.3) that generated external linkage
-for templates even when neither @code{-fexternal-templates} nor
-@code{-fno-implicit-templates} is specified. There is a patch for
-this problem at @*
-@file{ftp://ftp.cygnus.com/pub/g++/gcc-2.6.3-template-fix}.
-
-I recommend either applying the patch or
-using @code{-fno-implicit-templates}
-together with explicit template instantiation as described in previous
-sections.
-
-This bug is fixed in 2.7.0.
-
-@node Standard Template Library, exceptions, redundant templates, User Problems
-@section Does g++ support the Standard Template Library?
-
-From Per Bothner:
-
-@cindex STL
-@cindex Standard Template Library
-The Standard Template Library (STL) uses many of the extensions that the
-ANSI/ISO committee has made to templates, and g++ doesn't support
-some of these yet. So if you grab HP's free implementation of STL it
-isn't going to work. However, starting with libg++-2.6.2 libg++ contains a
-hacked version of STL, based on work by Carsten Bormann, which permits
-g++ to compile at least the containers. A full implementation is
-going to need improved template support, which will take a while yet
-(2.8.0 will compile the HP version successfully, except for a couple
-of easily fixed places where the HP code violates the draft standard).
-
-Actually, the hacked STL and gcc-2.7.2 work quite well; I've succeeded
-in making significant use of it.
-Almost all of the ObjectSpace examples (a set of
-over 200 simple examples of STL usage) now work.
-
-There are several commercial suppliers of STL implementations;
-ObjectSpace's version supports gcc-2.7.x.
-
-Mumit Khan has produced an ``STL newbie guide'' with lots of information
-on using STL with gcc. See
-
-@file{http://www.xraylith.wisc.edu/~khan/software/stl/STL.newbie.html}
-
-@node exceptions, namespaces, Standard Template Library, User Problems
-@section Problems and limitations with exceptions
-
-Recent g++ versions provide limited support for exceptions. You must
-provide the @code{-fhandle-exceptions} flag to enable exception
-handling. As of version 2.7.2, exceptions may not work properly
-(and you may get odd error messages when compiling) if you turn
-on optimization (the @code{-O} flag).
-
-You must give the @code{-frtti} switch to enable catching
-of derived exception objects with handlers for the base exception class;
-if @code{-frtti} is not given, only exact type matching works.
-
-For exception handling to work with 2.7.0 your CPU must be a SPARC,
-RS6000/PowerPC, 386/486/Pentium, or ARM. Release 2.7.1 added support
-for the Alpha, and ``m68k is rumored to work on some platforms''
-and ``VAX may also work'' (according to Mike Stump).
-@emph{It still doesn't work on HP-PA or MIPS platforms.}
-
-@node namespaces, agreement with standards, exceptions, User Problems
-@section Does g++ support namespaces?
-
-As of version 2.7.2, g++ recognizes the keywords @code{namespace} and
-@code{using}, and there is some rudimentary code present, but almost
-nothing connected with namespaces works yet. It appears that this will
-still be true when 2.8.0 is released.
-
-@node agreement with standards, compiling standard libraries, namespaces, User Problems
-@section What are the differences between g++ and the ARM specification of C++?
-
-@cindex ARM [Annotated C++ Ref Manual]
-@cindex exceptions
-As of version 2.7.0, g++ has exception support on most but not all
-platforms
-(no support on MIPS-based platforms yet), but
-it doesn't work right if optimizaton is enabled, which means the
-exception
-implementation is still
-not really ready for production use.
-
-
-@cindex mutable
-Some features that the ANSI/ISO standardization committee has voted in
-that don't appear in the ARM are supported, notably the @code{mutable}
-keyword, in version 2.5.x. 2.6.x adds support for the built-in boolean
-type @code{bool}, with constants @code{true} and @code{false}. The
-beginnings of run-time type identification are present, so there are
-more reserved words: @code{typeid}, @code{static_cast},
-@code{reinterpret_cast}, @code{const_cast}, and @code{dynamic_cast}.
-
-@cindex g++ bugs
-As with any beta-test compiler, there are bugs. You can help improve
-the compiler by submitting detailed bug reports.
-
-One of the weakest areas of g++ other than templates is the resolution
-of overloaded functions and operators in complex cases. The usual
-symptom is that in a case where the ARM says that it is ambiguous which
-function should be chosen, g++ chooses one (often the first one
-declared). This is usually not a problem when porting C++ code from
-other compilers to g++, but shows up as errors when code developed under
-g++ is ported to other compilers. (I believe this is no longer a
-significant problem in 2.7.0).
-
-[A full bug list would be very long indeed, so I won't put one here.
-I may add a list of frequently-reported bugs and "non-bugs" like the
-static class members issue mentioned above].
-
-@node compiling standard libraries, debugging on SVR4 systems, agreement with standards, User Problems
-@section Will g++ compile InterViews? The NIH class library? Rogue Wave?
-
-@cindex NIH class library
-@cindex NIHCL with g++
-The NIH class library uses a non-portable, compiler-dependent hack
-to initialize itself, which makes life difficult for g++ users.
-It will not work without modification, and I don't know what modifications
-are required or whether anyone has done them successfully.
-
-In short, it's not going to happen any time soon (previous FAQs referred
-to patches that a new NIHCL release would hopefully contain, but this
-hasn't happened).
-
-@strong{Note:} I thought I saw an item indicating that someone
-@emph{had} patched NIHCL to work with g++. Any pointers?
-
-@cindex InterViews
-I think that as of version 2.5.6, the standard g++ will compile the
-standard 3.1 InterViews completely successfully.
-Note that you'll need the @code{-fno-for-scope} flag
-if you use gcc-2.7.0; with 2.7.2 you may be able to omit this flag
-but you'll get warnings.
-
-@cindex Rogue Wave
-According to Jason Merrill, gcc-2.7.0 and newer works with Rogue
-Wave's @code{tools.h++} class library, but you may want to grab
-@file{ftp://ftp.cygnus.com/pub/g++/Tools.h++-6.1-patch}. Again,
-you'll need the @code{-fno-for-scope} flag since Rogue Wave hasn't
-fixed their code to comply with the new standard yet.
-
-@node debugging on SVR4 systems, debugging problems on Solaris, compiling standard libraries, User Problems
-@section Debugging on SVR4 systems
-@cindex System VR4, debugging
-
-``How do I get debugging to work on my System V Release 4 system?''
-
-Most systems based on System V Release 4 (except Solaris) encode symbolic
-debugging information in a format known as `DWARF'.
-
-Although the GNU C compiler already knows how to write out symbolic debugging
-information in the DWARF format, the GNU C++ compiler does not yet have this
-feature, nor is it likely to in the immediate future.
-
-Ron Guilmette has done a great deal of work to try to get the GNU C++ compiler
-to produce DWARF format symbolic debugging information (for C++ code)
-but he gave up on the project because of a lack of funding and/or interest
-from the g++ user community. If you have a strong desire to see this project
-completed, contact Ron at .
-
-@cindex stabs
-@cindex --with-stabs
-
-In the meantime, you @emph{can} get g++ debugging under SVR4 systems by
-configuring gcc with the @code{--with-stabs} option. This causes gcc to
-use an alternate debugging format, one more like that used under SunOS4.
-You won't need to do anything special to GDB; it will always understand
-the ``stabs'' format.
-
-@node debugging problems on Solaris, X11 conflicts with libg++, debugging on SVR4 systems, User Problems
-@section debugging problems on Solaris
-
-``I'm on Solaris, and gdb says it doesn't know about some of my local
-symbols. Help!''
-
-This problem was introduced in gcc 2.7.2, I believe; debug symbols for
-locals that aren't declared at the beginning of a block come out in the
-wrong order, and gdb can't find such symbols.
-
-There are several patches floating around to correct this problem. It
-is, however, fixed in gcc-2.7.3, which should be available very shortly
-(it may already be available by the time you read this).
-
-@node X11 conflicts with libg++, assignment to streams, debugging problems on Solaris, User Problems
-@section X11 conflicts with libg++ in definition of String
-@cindex String, conflicts in definition
-
-``X11 and Motif define String, and this conflicts with the String class
-in libg++. How can I use both together?''
-
-One possible method is the following:
-
-@example
-#define String XString
-#include
-/* include other X11 and Motif headers */
-#undef String
-@end example
-
-and remember to use the correct @code{String} or @code{XString} when
-you declare things later.
-
-@node assignment to streams, ,X11 conflicts with libg++, User Problems
-@section Why can't I assign one stream to another?
-
-[ Thanks to Per Bothner and Jerry Schwarz for this section. ]
-
-Assigning one stream to another seems like a reasonable thing to do, but
-it's a bad idea. Usually, this comes up because people want to assign
-to @code{cout}. This is poor style, especially for libraries, and is
-contrary to good object-oriented design. (Libraries that write directly
-to @code{cout} are less flexible, modular, and object-oriented).
-
-The iostream classes do not allow assigning to arbitrary streams, because
-this can violate typing:
-
-@example
-ifstream foo ("foo");
-istrstream str(...);
-foo = str;
-foo->close (); /* Oops! Not defined for istrstream! */
-@end example
-
-@cindex assignment to cout
-
-The original cfront implementation of iostreams by Jerry Schwarz allows
-you to assign to @code{cin}, @code{cout}, @code{cerr}, and @code{clog},
-but this is not part of the draft standard for iostreams and generally
-isn't considered a good idea, so standard-conforming code shouldn't use
-this technique.
-
-The GNU implementation of iostream did not support assigning to
-@code{cin}, @code{cout}, @code{cerr}, and @code{clog}
-for quite a while, but it now does, for backward
-compatibility with cfront iostream (versions 2.6.1 and later of libg++).
-
-The ANSI/ISO C++ Working Paper does provide ways of changing the
-streambuf associated with a stream. Assignment isn't allowed;
-there is an explicit named member that must be used.
-
-However, it is not wise to do this, and the results are confusing. For
-example: @code{fstream::rdbuf} is supposed to return the @emph{original}
-filebuf, not the one you assigned. (This is not yet implemented in GNU
-iostream.) This must be so because @code{fstream::rdbuf} is defined to
-return a @code{filebuf *}.
-
-@node legalities, index, User Problems, Top
-@chapter What are the rules for shipping code built with g++ and libg++?
-@cindex Shipping rules
-@cindex GPL [GNU Public License]
-
-``Is it is possible to distribute programs for profit that are created
-with g++ and use the g++ libraries?''
-
-I am not a lawyer, and this is not legal advice. In any case, I have
-little interest in telling people how to violate the spirit of the
-GNU licenses without violating the letter. This section tells you
-how to comply with the intention of the GNU licenses as best I understand
-them.
-
-@cindex FSF [Free Software Foundation]
-The FSF has no objection to your making money. Its only interest is that
-source code to their programs, and libraries, and to modified versions of
-their programs and libraries, is always available.
-
-The short answer is that you do not need to release the source to
-your program, but you can't just ship a stripped executable either,
-unless you use only the subset of libg++ that includes the iostreams
-classes (see discussion below) or the new libstdc++ library (available
-in libg++ 2.6.2 and later).
-
-Compiling your code with a GNU compiler does not affect its copyright;
-it is still yours. However, in order to ship code that links in a GNU
-library such as libg++ there are certain rules you must follow. The
-rules are described in the file COPYING.LIB that accompanies gcc
-distributions; it is also included in the libg++ distribution.
-See that file for the exact rules. The agreement is called the
-Library GNU Public License or LGPL. It is much "looser" than the
-GNU Public License, or GPL, that covers must GNU programs.
-
-@cindex libg++, shipping code
-Here's the deal: let's say that you use some version of libg++,
-completely unchanged, in your software, and you want to ship only
-a binary form of your code. You can do this, but there are several
-special requirements. If you want to use libg++ but ship only object
-code for your code, you have to ship source for libg++ (or ensure
-somehow that your customer already has the source for the exact
-version you are using), and ship your application in linkable form.
-You cannot forbid your customer from reverse-engineering or extending
-your program by exploiting its linkable form.
-
-@cindex libg++, modifying
-Furthermore, if you modify libg++ itself, you must provide source
-for your modifications (making a derived class does not count as
-modifying the library -- that is "a work that uses the library").
-
-@cindex special copying conditions for iostreams
-For certain portions of libg++ that implement required parts of the C++
-language (such as iostreams and other standard classes), the FSF has
-loosened the copyright requirement still more by adding the ``special
-exception'' clause, which reads as follows:
-
-@quotation
-As a special exception, if you link this library with files
-compiled with GCC to produce an executable, this does not cause
-the resulting executable to be covered by the GNU General Public License.
-This exception does not however invalidate any other reasons why
-the executable file might be covered by the GNU General Public License.
-@end quotation
-
-If your only use of libg++ uses code with this exception, you may ship
-stripped executables or license your executables under different
-conditions without fear of violating an FSF copyright. It is the intent
-of FSF and Cygnus that, as the other classes required by the ANSI/ISO
-draft standard are developed, these will also be placed under this
-``special exception'' license.
-The code in the new libstdc++ library, intended to implement standard
-classes as defined by ANSI/ISO, is also licensed this way.
-
-To avoid coming under the influence of the LGPL, you can link with
-@file{-liostream} rather than @file{-lg++} (for version 2.6.x and
-earlier), or @file{-lstdc++} now that it is available. In version 2.7.0
-all the standard classes are in @file{-lstdc++}; you can do the link
-step with @code{c++} instead of @code{g++} to search only the
-@file{-lstdc++} library and avoid the LGPL'ed code in @file{-lg++}.
-
-If you wish to discuss legal issues connected with GNU software on the
-net, please use @file{gnu.misc.discuss}, not the technical newsgroups.
-
-@node index, , legalities, Top
-@comment node-name, next, previous, up
-@appendix Concept Index
-
-@printindex cp
-
-@page
-@contents
-@bye
diff --git a/contrib/libg++/libg++/genclass/ChangeLog b/contrib/libg++/libg++/genclass/ChangeLog
deleted file mode 100644
index 0cc12419064ba..0000000000000
--- a/contrib/libg++/libg++/genclass/ChangeLog
+++ /dev/null
@@ -1,27 +0,0 @@
-Thu Nov 4 11:18:05 1993 Per Bothner (bothner@kalessin.cygnus.com)
-
- * Makefile.in (install): Use INSTALL_PROGRAM for genclass.
-
-Wed Aug 12 12:52:16 1992 Per Bothner (bothner@cygnus.com)
-
- * genclass.sh: Don't use RCS id as version number. Instead
- use libg++ version number.
- * Makefile.in (genclass): Hackery to extract libg++ version
- number from ../Makefile and insert it into genclass script.
-
-Mon Aug 10 11:38:48 1992 Ian Lance Taylor (ian@dumbest.cygnus.com)
-
- * Makefile.in: always create installation directories.
-
-Thu May 14 15:10:18 1992 Per Bothner (bothner@rtl.cygnus.com)
-
- * genclass.sh: Move comments inside sed script (which is
- not supported by all versions of sed) outside.
- * Makefile.in: Update IDIR->gxx_includedir.
-
-Wed Feb 26 18:04:40 1992 K. Richard Pixley (rich@cygnus.com)
-
- * Makefile.in, configure.in: removed traces of namesubdir,
- -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced
- copyrights to '92, changed some from Cygnus to FSF.
-
diff --git a/contrib/libg++/libg++/genclass/Makefile.in b/contrib/libg++/libg++/genclass/Makefile.in
deleted file mode 100644
index c6a04f5f48164..0000000000000
--- a/contrib/libg++/libg++/genclass/Makefile.in
+++ /dev/null
@@ -1,23 +0,0 @@
-# Makefile for g++ library genclass test
-
-srcdir = .
-
-#### package, host, target, and site dependent Makefile fragments come in here.
-##
-
-genclass: $(srcdir)/genclass.sh
- echo "/^PROTODIR=/c\\" > sedscript
- echo "PROTODIR=$$\{PROTODIR-$(gxx_includedir)/gen\}" >> sedscript
- sed <../Makefile -n -e '/VERSION/s/LIBG++_DIST_VERSION *= *\(.*\)/s||\1|/p' >> sedscript
- sed -f sedscript < $(srcdir)/genclass.sh > genclass.tmp
- chmod 0755 genclass.tmp
- rm -f sedscript
- mv genclass.tmp genclass
-
-gentest: $(srcdir)/gentest.sh $(srcdir)/expected.out
- $(srcdir)/gentest.sh > my.out 2>&1
- diff $(srcdir)/expected.out my.out
-
-.PHONY: install
-install:
- $(INSTALL_PROGRAM) genclass $(bindir)/genclass
diff --git a/contrib/libg++/libg++/genclass/configure.in b/contrib/libg++/libg++/genclass/configure.in
deleted file mode 100644
index 6e237d716a86d..0000000000000
--- a/contrib/libg++/libg++/genclass/configure.in
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file is a shell script fragment that supplies the information
-# necessary to tailor a template configure script into the configure
-# script appropriate for this directory. For more information, check
-# any existing configure script.
-
-configdirs=""
-srctrigger=genclass.sh
-srcname="old libg++ template expander"
-
-target_makefile_frag=../target-mkfrag
-package_makefile_frag=Make.pack
-
-# per-host:
-
-# per-target:
-
-
-TOLIBGXX=../
-CLEAN='genclass *.h *.cc my.out'
-ALL=genclass
-
-(. ${srcdir}/../config.shared) >${package_makefile_frag}
-
-# post-target:
-
-rm -f ${package_makefile_frag}
diff --git a/contrib/libg++/libg++/genclass/expected.out b/contrib/libg++/libg++/genclass/expected.out
deleted file mode 100644
index cecc3cd3c1bd0..0000000000000
--- a/contrib/libg++/libg++/genclass/expected.out
+++ /dev/null
@@ -1,1027 +0,0 @@
----------- genclass -usage ----------
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
------------
----------- genclass -version ----------
-genclass: version 2.1
------------
----------- genclass -requires ----------
-
------------
----------- genclass -catalog ----------
-Catalog of genclass class templates
-directories searched:
- /usr/latest/lib/gcc/sun4/1.95.01/g++-include/gen
- /play/hgs/libg++-1.90/gentests
-selecting: all
-classes available:
- AVLMap AVLSet AVec BSTSet Bag CHBag CHMap CHSet DLDeque DLList
- Deque FPQueue FPStack FPlex List MPlex Map OSLBag OSLSet OXPBag
- OXPSet PHPQ PQ Plex Queue RAVLMap RPlex SLBag SLList SLQueue
- SLSet SLStack Set SplayBag SplayMap SplayPQ SplaySet Stack VHBag
- VHMap VHSet VOHSet VQueue VStack Vec XPBag XPDeque XPPQ XPQueue
- XPSet XPStack XPlex defs
-
------------
----------- genclass -list ----------
-AVLMap
-AVLSet
-AVec
-BSTSet
-Bag
-CHBag
-CHMap
-CHSet
-DLDeque
-DLList
-Deque
-FPQueue
-FPStack
-FPlex
-List
-MPlex
-Map
-OSLBag
-OSLSet
-OXPBag
-OXPSet
-PHPQ
-PQ
-Plex
-Queue
-RAVLMap
-RPlex
-SLBag
-SLList
-SLQueue
-SLSet
-SLStack
-Set
-SplayBag
-SplayMap
-SplayPQ
-SplaySet
-Stack
-VHBag
-VHMap
-VHSet
-VOHSet
-VQueue
-VStack
-Vec
-XPBag
-XPDeque
-XPPQ
-XPQueue
-XPSet
-XPStack
-XPlex
-defs
------------
----------- genclass -catalog PQ Set ----------
-Catalog of genclass class templates
-directories searched:
- /usr/latest/lib/gcc/sun4/1.95.01/g++-include/gen
- /play/hgs/libg++-1.90/gentests
-selecting: PQ Set
-classes available:
- AVLSet BSTSet CHSet OSLSet OXPSet PHPQ PQ SLSet Set SplayPQ
- SplaySet VHSet VOHSet XPPQ XPSet
-
------------
----------- genclass -list Map Stack ----------
-AVLMap
-CHMap
-FPStack
-Map
-RAVLMap
-SLStack
-SplayMap
-Stack
-VHMap
-VStack
-XPStack
------------
-Generating: genclass int ref AVLMap
-genclass: the AVLMap class requires the -2 syntax for the 2nd type
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
-Generation for int-AVLMap failed
-
-genclass int ref AVLMap fig
-genclass: the AVLMap class requires the -2 syntax for the 2nd type
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
-Generation for int-AVLMap failed
-
-Generating: genclass int ref AVLSet
-Checking for badsub
-removing int.AVLSet.h int.AVLSet.cc
-
-genclass int ref AVLSet fig
-Checking for badsub
-removing figAVLSet.h figAVLSet.cc
-
-Generating: genclass int ref AVec
-Checking for badsub
-removing int.AVec.h int.AVec.cc
-
-genclass int ref AVec fig
-Checking for badsub
-removing figAVec.h figAVec.cc
-
-Generating: genclass int ref BSTSet
-Checking for badsub
-removing int.BSTSet.h int.BSTSet.cc
-
-genclass int ref BSTSet fig
-Checking for badsub
-removing figBSTSet.h figBSTSet.cc
-
-Generating: genclass int ref Bag
-Checking for badsub
-removing int.Bag.h int.Bag.cc
-
-genclass int ref Bag fig
-Checking for badsub
-removing figBag.h figBag.cc
-
-Generating: genclass int ref CHBag
-Checking for badsub
-removing int.CHBag.h int.CHBag.cc
-
-genclass int ref CHBag fig
-Checking for badsub
-removing figCHBag.h figCHBag.cc
-
-Generating: genclass int ref CHMap
-genclass: the CHMap class requires the -2 syntax for the 2nd type
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
-Generation for int-CHMap failed
-
-genclass int ref CHMap fig
-genclass: the CHMap class requires the -2 syntax for the 2nd type
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
-Generation for int-CHMap failed
-
-Generating: genclass int ref CHSet
-Checking for badsub
-removing int.CHSet.h int.CHSet.cc
-
-genclass int ref CHSet fig
-Checking for badsub
-removing figCHSet.h figCHSet.cc
-
-Generating: genclass int ref DLDeque
-Checking for badsub
-removing int.DLDeque.h int.DLDeque.cc
-
-genclass int ref DLDeque fig
-Checking for badsub
-removing figDLDeque.h figDLDeque.cc
-
-Generating: genclass int ref DLList
-Checking for badsub
-removing int.DLList.h int.DLList.cc
-
-genclass int ref DLList fig
-Checking for badsub
-removing figDLList.h figDLList.cc
-
-Generating: genclass int ref Deque
-Checking for badsub
-removing int.Deque.h int.Deque.cc
-
-genclass int ref Deque fig
-Checking for badsub
-removing figDeque.h figDeque.cc
-
-Generating: genclass int ref FPQueue
-Checking for badsub
-removing int.FPQueue.h int.FPQueue.cc
-
-genclass int ref FPQueue fig
-Checking for badsub
-removing figFPQueue.h figFPQueue.cc
-
-Generating: genclass int ref FPStack
-Checking for badsub
-removing int.FPStack.h int.FPStack.cc
-
-genclass int ref FPStack fig
-Checking for badsub
-removing figFPStack.h figFPStack.cc
-
-Generating: genclass int ref FPlex
-Checking for badsub
-removing int.FPlex.h int.FPlex.cc
-
-genclass int ref FPlex fig
-Checking for badsub
-removing figFPlex.h figFPlex.cc
-
-Generating: genclass int ref List
-Checking for badsub
-removing int.List.h int.List.cc
-
-genclass int ref List fig
-Checking for badsub
-removing figList.h figList.cc
-
-Generating: genclass int ref MPlex
-Checking for badsub
-removing int.MPlex.h int.MPlex.cc
-
-genclass int ref MPlex fig
-Checking for badsub
-removing figMPlex.h figMPlex.cc
-
-Generating: genclass int ref Map
-genclass: the Map class requires the -2 syntax for the 2nd type
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
-Generation for int-Map failed
-
-genclass int ref Map fig
-genclass: the Map class requires the -2 syntax for the 2nd type
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
-Generation for int-Map failed
-
-Generating: genclass int ref OSLBag
-Checking for badsub
-removing int.OSLBag.h int.OSLBag.cc
-
-genclass int ref OSLBag fig
-Checking for badsub
-removing figOSLBag.h figOSLBag.cc
-
-Generating: genclass int ref OSLSet
-Checking for badsub
-removing int.OSLSet.h int.OSLSet.cc
-
-genclass int ref OSLSet fig
-Checking for badsub
-removing figOSLSet.h figOSLSet.cc
-
-Generating: genclass int ref OXPBag
-Checking for badsub
-removing int.OXPBag.h int.OXPBag.cc
-
-genclass int ref OXPBag fig
-Checking for badsub
-removing figOXPBag.h figOXPBag.cc
-
-Generating: genclass int ref OXPSet
-Checking for badsub
-removing int.OXPSet.h int.OXPSet.cc
-
-genclass int ref OXPSet fig
-Checking for badsub
-removing figOXPSet.h figOXPSet.cc
-
-Generating: genclass int ref PHPQ
-Checking for badsub
-removing int.PHPQ.h int.PHPQ.cc
-
-genclass int ref PHPQ fig
-Checking for badsub
-removing figPHPQ.h figPHPQ.cc
-
-Generating: genclass int ref PQ
-Checking for badsub
-removing int.PQ.h int.PQ.cc
-
-genclass int ref PQ fig
-Checking for badsub
-removing figPQ.h figPQ.cc
-
-Generating: genclass int ref Plex
-Checking for badsub
-removing int.Plex.h int.Plex.cc
-
-genclass int ref Plex fig
-Checking for badsub
-removing figPlex.h figPlex.cc
-
-Generating: genclass int ref Queue
-Checking for badsub
-removing int.Queue.h int.Queue.cc
-
-genclass int ref Queue fig
-Checking for badsub
-removing figQueue.h figQueue.cc
-
-Generating: genclass int ref RAVLMap
-genclass: the RAVLMap class requires the -2 syntax for the 2nd type
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
-Generation for int-RAVLMap failed
-
-genclass int ref RAVLMap fig
-genclass: the RAVLMap class requires the -2 syntax for the 2nd type
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
-Generation for int-RAVLMap failed
-
-Generating: genclass int ref RPlex
-Checking for badsub
-removing int.RPlex.h int.RPlex.cc
-
-genclass int ref RPlex fig
-Checking for badsub
-removing figRPlex.h figRPlex.cc
-
-Generating: genclass int ref SLBag
-Checking for badsub
-removing int.SLBag.h int.SLBag.cc
-
-genclass int ref SLBag fig
-Checking for badsub
-removing figSLBag.h figSLBag.cc
-
-Generating: genclass int ref SLList
-Checking for badsub
-removing int.SLList.h int.SLList.cc
-
-genclass int ref SLList fig
-Checking for badsub
-removing figSLList.h figSLList.cc
-
-Generating: genclass int ref SLQueue
-Checking for badsub
-removing int.SLQueue.h int.SLQueue.cc
-
-genclass int ref SLQueue fig
-Checking for badsub
-removing figSLQueue.h figSLQueue.cc
-
-Generating: genclass int ref SLSet
-Checking for badsub
-removing int.SLSet.h int.SLSet.cc
-
-genclass int ref SLSet fig
-Checking for badsub
-removing figSLSet.h figSLSet.cc
-
-Generating: genclass int ref SLStack
-Checking for badsub
-removing int.SLStack.h int.SLStack.cc
-
-genclass int ref SLStack fig
-Checking for badsub
-removing figSLStack.h figSLStack.cc
-
-Generating: genclass int ref Set
-Checking for badsub
-removing int.Set.h int.Set.cc
-
-genclass int ref Set fig
-Checking for badsub
-removing figSet.h figSet.cc
-
-Generating: genclass int ref SplayBag
-Checking for badsub
-removing int.SplayBag.h int.SplayBag.cc
-
-genclass int ref SplayBag fig
-Checking for badsub
-removing figSplayBag.h figSplayBag.cc
-
-Generating: genclass int ref SplayMap
-genclass: the SplayMap class requires the -2 syntax for the 2nd type
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
-Generation for int-SplayMap failed
-
-genclass int ref SplayMap fig
-genclass: the SplayMap class requires the -2 syntax for the 2nd type
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
-Generation for int-SplayMap failed
-
-Generating: genclass int ref SplayPQ
-Checking for badsub
-removing int.SplayPQ.h int.SplayPQ.cc
-
-genclass int ref SplayPQ fig
-Checking for badsub
-removing figSplayPQ.h figSplayPQ.cc
-
-Generating: genclass int ref SplaySet
-Checking for badsub
-removing int.SplaySet.h int.SplaySet.cc
-
-genclass int ref SplaySet fig
-Checking for badsub
-removing figSplaySet.h figSplaySet.cc
-
-Generating: genclass int ref Stack
-Checking for badsub
-removing int.Stack.h int.Stack.cc
-
-genclass int ref Stack fig
-Checking for badsub
-removing figStack.h figStack.cc
-
-Generating: genclass int ref VHBag
-Checking for badsub
-removing int.VHBag.h int.VHBag.cc
-
-genclass int ref VHBag fig
-Checking for badsub
-removing figVHBag.h figVHBag.cc
-
-Generating: genclass int ref VHMap
-genclass: the VHMap class requires the -2 syntax for the 2nd type
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
-Generation for int-VHMap failed
-
-genclass int ref VHMap fig
-genclass: the VHMap class requires the -2 syntax for the 2nd type
-usage:
- genclass -list [proto ...]
- genclass -catalog [proto ...]
- genclass type1 {ref|val} proto [out_prefix]
- genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
-Generation for int-VHMap failed
-
-Generating: genclass int ref VHSet
-Checking for badsub
-removing int.VHSet.h int.VHSet.cc
-
-genclass int ref VHSet fig
-Checking for badsub
-removing figVHSet.h figVHSet.cc
-
-Generating: genclass int ref VOHSet
-Checking for badsub
-removing int.VOHSet.h int.VOHSet.cc
-
-genclass int ref VOHSet fig
-Checking for badsub
-removing figVOHSet.h figVOHSet.cc
-
-Generating: genclass int ref VQueue
-Checking for badsub
-removing int.VQueue.h int.VQueue.cc
-
-genclass int ref VQueue fig
-Checking for badsub
-removing figVQueue.h figVQueue.cc
-
-Generating: genclass int ref VStack
-Checking for badsub
-removing int.VStack.h int.VStack.cc
-
-genclass int ref VStack fig
-Checking for badsub
-removing figVStack.h figVStack.cc
-
-Generating: genclass int ref Vec
-Checking for badsub
-removing int.Vec.h int.Vec.cc
-
-genclass int ref Vec fig
-Checking for badsub
-removing figVec.h figVec.cc
-
-Generating: genclass int ref XPBag
-Checking for badsub
-removing int.XPBag.h int.XPBag.cc
-
-genclass int ref XPBag fig
-Checking for badsub
-removing figXPBag.h figXPBag.cc
-
-Generating: genclass int ref XPDeque
-Checking for badsub
-removing int.XPDeque.h int.XPDeque.cc
-
-genclass int ref XPDeque fig
-Checking for badsub
-removing figXPDeque.h figXPDeque.cc
-
-Generating: genclass int ref XPPQ
-Checking for badsub
-removing int.XPPQ.h int.XPPQ.cc
-
-genclass int ref XPPQ fig
-Checking for badsub
-removing figXPPQ.h figXPPQ.cc
-
-Generating: genclass int ref XPQueue
-Checking for badsub
-removing int.XPQueue.h int.XPQueue.cc
-
-genclass int ref XPQueue fig
-Checking for badsub
-removing figXPQueue.h figXPQueue.cc
-
-Generating: genclass int ref XPSet
-Checking for badsub
-removing int.XPSet.h int.XPSet.cc
-
-genclass int ref XPSet fig
-Checking for badsub
-removing figXPSet.h figXPSet.cc
-
-Generating: genclass int ref XPStack
-Checking for badsub
-removing int.XPStack.h int.XPStack.cc
-
-genclass int ref XPStack fig
-Checking for badsub
-removing figXPStack.h figXPStack.cc
-
-Generating: genclass int ref XPlex
-Checking for badsub
-removing int.XPlex.h int.XPlex.cc
-
-genclass int ref XPlex fig
-Checking for badsub
-removing figXPlex.h figXPlex.cc
-
-Generating: genclass int ref defs
-genclass: warning, class has a .h but no .cc file
-Checking for badsub
-egrep: int.defs.cc: No such file or directory
-removing int.defs.h int.defs.cc
-rm: int.defs.cc: No such file or directory
-
-genclass int ref defs fig
-genclass: warning, class has a .h but no .cc file
-Checking for badsub
-egrep: figdefs.cc: No such file or directory
-removing figdefs.h figdefs.cc
-rm: figdefs.cc: No such file or directory
-
-Generating: genclass -2 int ref char val AVLMap
-Checking for badsub
-removing int.char.AVLMap.h int.char.AVLMap.cc
-
-Generating: genclass -2 int ref char val AVLMap fig
-Checking for badsub
-removing figAVLMap.h figAVLMap.cc
-
-Generating: genclass -2 int ref char val AVLSet
-Checking for badsub
-removing int.char.AVLSet.h int.char.AVLSet.cc
-
-Generating: genclass -2 int ref char val AVLSet fig
-Checking for badsub
-removing figAVLSet.h figAVLSet.cc
-
-Generating: genclass -2 int ref char val AVec
-Checking for badsub
-removing int.char.AVec.h int.char.AVec.cc
-
-Generating: genclass -2 int ref char val AVec fig
-Checking for badsub
-removing figAVec.h figAVec.cc
-
-Generating: genclass -2 int ref char val BSTSet
-Checking for badsub
-removing int.char.BSTSet.h int.char.BSTSet.cc
-
-Generating: genclass -2 int ref char val BSTSet fig
-Checking for badsub
-removing figBSTSet.h figBSTSet.cc
-
-Generating: genclass -2 int ref char val Bag
-Checking for badsub
-removing int.char.Bag.h int.char.Bag.cc
-
-Generating: genclass -2 int ref char val Bag fig
-Checking for badsub
-removing figBag.h figBag.cc
-
-Generating: genclass -2 int ref char val CHBag
-Checking for badsub
-removing int.char.CHBag.h int.char.CHBag.cc
-
-Generating: genclass -2 int ref char val CHBag fig
-Checking for badsub
-removing figCHBag.h figCHBag.cc
-
-Generating: genclass -2 int ref char val CHMap
-Checking for badsub
-removing int.char.CHMap.h int.char.CHMap.cc
-
-Generating: genclass -2 int ref char val CHMap fig
-Checking for badsub
-removing figCHMap.h figCHMap.cc
-
-Generating: genclass -2 int ref char val CHSet
-Checking for badsub
-removing int.char.CHSet.h int.char.CHSet.cc
-
-Generating: genclass -2 int ref char val CHSet fig
-Checking for badsub
-removing figCHSet.h figCHSet.cc
-
-Generating: genclass -2 int ref char val DLDeque
-Checking for badsub
-removing int.char.DLDeque.h int.char.DLDeque.cc
-
-Generating: genclass -2 int ref char val DLDeque fig
-Checking for badsub
-removing figDLDeque.h figDLDeque.cc
-
-Generating: genclass -2 int ref char val DLList
-Checking for badsub
-removing int.char.DLList.h int.char.DLList.cc
-
-Generating: genclass -2 int ref char val DLList fig
-Checking for badsub
-removing figDLList.h figDLList.cc
-
-Generating: genclass -2 int ref char val Deque
-Checking for badsub
-removing int.char.Deque.h int.char.Deque.cc
-
-Generating: genclass -2 int ref char val Deque fig
-Checking for badsub
-removing figDeque.h figDeque.cc
-
-Generating: genclass -2 int ref char val FPQueue
-Checking for badsub
-removing int.char.FPQueue.h int.char.FPQueue.cc
-
-Generating: genclass -2 int ref char val FPQueue fig
-Checking for badsub
-removing figFPQueue.h figFPQueue.cc
-
-Generating: genclass -2 int ref char val FPStack
-Checking for badsub
-removing int.char.FPStack.h int.char.FPStack.cc
-
-Generating: genclass -2 int ref char val FPStack fig
-Checking for badsub
-removing figFPStack.h figFPStack.cc
-
-Generating: genclass -2 int ref char val FPlex
-Checking for badsub
-removing int.char.FPlex.h int.char.FPlex.cc
-
-Generating: genclass -2 int ref char val FPlex fig
-Checking for badsub
-removing figFPlex.h figFPlex.cc
-
-Generating: genclass -2 int ref char val List
-Checking for badsub
-removing int.char.List.h int.char.List.cc
-
-Generating: genclass -2 int ref char val List fig
-Checking for badsub
-removing figList.h figList.cc
-
-Generating: genclass -2 int ref char val MPlex
-Checking for badsub
-removing int.char.MPlex.h int.char.MPlex.cc
-
-Generating: genclass -2 int ref char val MPlex fig
-Checking for badsub
-removing figMPlex.h figMPlex.cc
-
-Generating: genclass -2 int ref char val Map
-Checking for badsub
-removing int.char.Map.h int.char.Map.cc
-
-Generating: genclass -2 int ref char val Map fig
-Checking for badsub
-removing figMap.h figMap.cc
-
-Generating: genclass -2 int ref char val OSLBag
-Checking for badsub
-removing int.char.OSLBag.h int.char.OSLBag.cc
-
-Generating: genclass -2 int ref char val OSLBag fig
-Checking for badsub
-removing figOSLBag.h figOSLBag.cc
-
-Generating: genclass -2 int ref char val OSLSet
-Checking for badsub
-removing int.char.OSLSet.h int.char.OSLSet.cc
-
-Generating: genclass -2 int ref char val OSLSet fig
-Checking for badsub
-removing figOSLSet.h figOSLSet.cc
-
-Generating: genclass -2 int ref char val OXPBag
-Checking for badsub
-removing int.char.OXPBag.h int.char.OXPBag.cc
-
-Generating: genclass -2 int ref char val OXPBag fig
-Checking for badsub
-removing figOXPBag.h figOXPBag.cc
-
-Generating: genclass -2 int ref char val OXPSet
-Checking for badsub
-removing int.char.OXPSet.h int.char.OXPSet.cc
-
-Generating: genclass -2 int ref char val OXPSet fig
-Checking for badsub
-removing figOXPSet.h figOXPSet.cc
-
-Generating: genclass -2 int ref char val PHPQ
-Checking for badsub
-removing int.char.PHPQ.h int.char.PHPQ.cc
-
-Generating: genclass -2 int ref char val PHPQ fig
-Checking for badsub
-removing figPHPQ.h figPHPQ.cc
-
-Generating: genclass -2 int ref char val PQ
-Checking for badsub
-removing int.char.PQ.h int.char.PQ.cc
-
-Generating: genclass -2 int ref char val PQ fig
-Checking for badsub
-removing figPQ.h figPQ.cc
-
-Generating: genclass -2 int ref char val Plex
-Checking for badsub
-removing int.char.Plex.h int.char.Plex.cc
-
-Generating: genclass -2 int ref char val Plex fig
-Checking for badsub
-removing figPlex.h figPlex.cc
-
-Generating: genclass -2 int ref char val Queue
-Checking for badsub
-removing int.char.Queue.h int.char.Queue.cc
-
-Generating: genclass -2 int ref char val Queue fig
-Checking for badsub
-removing figQueue.h figQueue.cc
-
-Generating: genclass -2 int ref char val RAVLMap
-Checking for badsub
-removing int.char.RAVLMap.h int.char.RAVLMap.cc
-
-Generating: genclass -2 int ref char val RAVLMap fig
-Checking for badsub
-removing figRAVLMap.h figRAVLMap.cc
-
-Generating: genclass -2 int ref char val RPlex
-Checking for badsub
-removing int.char.RPlex.h int.char.RPlex.cc
-
-Generating: genclass -2 int ref char val RPlex fig
-Checking for badsub
-removing figRPlex.h figRPlex.cc
-
-Generating: genclass -2 int ref char val SLBag
-Checking for badsub
-removing int.char.SLBag.h int.char.SLBag.cc
-
-Generating: genclass -2 int ref char val SLBag fig
-Checking for badsub
-removing figSLBag.h figSLBag.cc
-
-Generating: genclass -2 int ref char val SLList
-Checking for badsub
-removing int.char.SLList.h int.char.SLList.cc
-
-Generating: genclass -2 int ref char val SLList fig
-Checking for badsub
-removing figSLList.h figSLList.cc
-
-Generating: genclass -2 int ref char val SLQueue
-Checking for badsub
-removing int.char.SLQueue.h int.char.SLQueue.cc
-
-Generating: genclass -2 int ref char val SLQueue fig
-Checking for badsub
-removing figSLQueue.h figSLQueue.cc
-
-Generating: genclass -2 int ref char val SLSet
-Checking for badsub
-removing int.char.SLSet.h int.char.SLSet.cc
-
-Generating: genclass -2 int ref char val SLSet fig
-Checking for badsub
-removing figSLSet.h figSLSet.cc
-
-Generating: genclass -2 int ref char val SLStack
-Checking for badsub
-removing int.char.SLStack.h int.char.SLStack.cc
-
-Generating: genclass -2 int ref char val SLStack fig
-Checking for badsub
-removing figSLStack.h figSLStack.cc
-
-Generating: genclass -2 int ref char val Set
-Checking for badsub
-removing int.char.Set.h int.char.Set.cc
-
-Generating: genclass -2 int ref char val Set fig
-Checking for badsub
-removing figSet.h figSet.cc
-
-Generating: genclass -2 int ref char val SplayBag
-Checking for badsub
-removing int.char.SplayBag.h int.char.SplayBag.cc
-
-Generating: genclass -2 int ref char val SplayBag fig
-Checking for badsub
-removing figSplayBag.h figSplayBag.cc
-
-Generating: genclass -2 int ref char val SplayMap
-Checking for badsub
-removing int.char.SplayMap.h int.char.SplayMap.cc
-
-Generating: genclass -2 int ref char val SplayMap fig
-Checking for badsub
-removing figSplayMap.h figSplayMap.cc
-
-Generating: genclass -2 int ref char val SplayPQ
-Checking for badsub
-removing int.char.SplayPQ.h int.char.SplayPQ.cc
-
-Generating: genclass -2 int ref char val SplayPQ fig
-Checking for badsub
-removing figSplayPQ.h figSplayPQ.cc
-
-Generating: genclass -2 int ref char val SplaySet
-Checking for badsub
-removing int.char.SplaySet.h int.char.SplaySet.cc
-
-Generating: genclass -2 int ref char val SplaySet fig
-Checking for badsub
-removing figSplaySet.h figSplaySet.cc
-
-Generating: genclass -2 int ref char val Stack
-Checking for badsub
-removing int.char.Stack.h int.char.Stack.cc
-
-Generating: genclass -2 int ref char val Stack fig
-Checking for badsub
-removing figStack.h figStack.cc
-
-Generating: genclass -2 int ref char val VHBag
-Checking for badsub
-removing int.char.VHBag.h int.char.VHBag.cc
-
-Generating: genclass -2 int ref char val VHBag fig
-Checking for badsub
-removing figVHBag.h figVHBag.cc
-
-Generating: genclass -2 int ref char val VHMap
-Checking for badsub
-removing int.char.VHMap.h int.char.VHMap.cc
-
-Generating: genclass -2 int ref char val VHMap fig
-Checking for badsub
-removing figVHMap.h figVHMap.cc
-
-Generating: genclass -2 int ref char val VHSet
-Checking for badsub
-removing int.char.VHSet.h int.char.VHSet.cc
-
-Generating: genclass -2 int ref char val VHSet fig
-Checking for badsub
-removing figVHSet.h figVHSet.cc
-
-Generating: genclass -2 int ref char val VOHSet
-Checking for badsub
-removing int.char.VOHSet.h int.char.VOHSet.cc
-
-Generating: genclass -2 int ref char val VOHSet fig
-Checking for badsub
-removing figVOHSet.h figVOHSet.cc
-
-Generating: genclass -2 int ref char val VQueue
-Checking for badsub
-removing int.char.VQueue.h int.char.VQueue.cc
-
-Generating: genclass -2 int ref char val VQueue fig
-Checking for badsub
-removing figVQueue.h figVQueue.cc
-
-Generating: genclass -2 int ref char val VStack
-Checking for badsub
-removing int.char.VStack.h int.char.VStack.cc
-
-Generating: genclass -2 int ref char val VStack fig
-Checking for badsub
-removing figVStack.h figVStack.cc
-
-Generating: genclass -2 int ref char val Vec
-Checking for badsub
-removing int.char.Vec.h int.char.Vec.cc
-
-Generating: genclass -2 int ref char val Vec fig
-Checking for badsub
-removing figVec.h figVec.cc
-
-Generating: genclass -2 int ref char val XPBag
-Checking for badsub
-removing int.char.XPBag.h int.char.XPBag.cc
-
-Generating: genclass -2 int ref char val XPBag fig
-Checking for badsub
-removing figXPBag.h figXPBag.cc
-
-Generating: genclass -2 int ref char val XPDeque
-Checking for badsub
-removing int.char.XPDeque.h int.char.XPDeque.cc
-
-Generating: genclass -2 int ref char val XPDeque fig
-Checking for badsub
-removing figXPDeque.h figXPDeque.cc
-
-Generating: genclass -2 int ref char val XPPQ
-Checking for badsub
-removing int.char.XPPQ.h int.char.XPPQ.cc
-
-Generating: genclass -2 int ref char val XPPQ fig
-Checking for badsub
-removing figXPPQ.h figXPPQ.cc
-
-Generating: genclass -2 int ref char val XPQueue
-Checking for badsub
-removing int.char.XPQueue.h int.char.XPQueue.cc
-
-Generating: genclass -2 int ref char val XPQueue fig
-Checking for badsub
-removing figXPQueue.h figXPQueue.cc
-
-Generating: genclass -2 int ref char val XPSet
-Checking for badsub
-removing int.char.XPSet.h int.char.XPSet.cc
-
-Generating: genclass -2 int ref char val XPSet fig
-Checking for badsub
-removing figXPSet.h figXPSet.cc
-
-Generating: genclass -2 int ref char val XPStack
-Checking for badsub
-removing int.char.XPStack.h int.char.XPStack.cc
-
-Generating: genclass -2 int ref char val XPStack fig
-Checking for badsub
-removing figXPStack.h figXPStack.cc
-
-Generating: genclass -2 int ref char val XPlex
-Checking for badsub
-removing int.char.XPlex.h int.char.XPlex.cc
-
-Generating: genclass -2 int ref char val XPlex fig
-Checking for badsub
-removing figXPlex.h figXPlex.cc
-
-Generating: genclass -2 int ref char val defs
-genclass: warning, class has a .h but no .cc file
-Checking for badsub
-egrep: int.char.defs.cc: No such file or directory
-removing int.char.defs.h int.char.defs.cc
-rm: int.char.defs.cc: No such file or directory
-
-Generating: genclass -2 int ref char val defs fig
-genclass: warning, class has a .h but no .cc file
-Checking for badsub
-egrep: figdefs.cc: No such file or directory
-removing figdefs.h figdefs.cc
-rm: figdefs.cc: No such file or directory
-
diff --git a/contrib/libg++/libg++/genclass/genclass.sh b/contrib/libg++/libg++/genclass/genclass.sh
deleted file mode 100755
index 08d510754ad24..0000000000000
--- a/contrib/libg++/libg++/genclass/genclass.sh
+++ /dev/null
@@ -1,452 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 1989 Free Software Foundation, Inc.
-#
-# genclass program enhanced by Wendell C. Baker
-# (original by Doug Lea (dl@rocky.oswego.edu))
-
-#This file is part of GNU libg++.
-
-#GNU libg++ is free software; you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation; either version 1, or (at your option)
-#any later version.
-
-#GNU libg++ is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-#GNU General Public License for more details.
-
-#You should have received a copy of the GNU General Public License
-#along with GNU libg++; see the file COPYING. If not, write to
-#the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-
-#
-# genclass -list [proto ...]
-# genclass -catalog [proto ...]
-# genclass type1 {ref|val} proto [out_prefix]
-# genclass -2 type1 {ref|val} type2 {ref, val} proto [out_prefix]
-#
-# Generate classes from prototypes
-#
-name=genclass ;
-usage="
- $name -list [proto ...]
- $name -catalog [proto ...]
- $name type1 {ref|val} proto [out_prefix]
- $name -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]" ;
-
-case "$1" in
--usage)
- #
- # -usage
- #
- echo "usage: $usage" 1>&2 ;
- exit 0;
- ;;
--version)
- #
- # -version
- #
- # is substituted by the build process.
- # We currently use the libg++ version number (extracted from ../Makefile).
- echo "$name: version " ;
- exit 0;
- ;;
--requires)
- #
- # -requires
- #
- # The following line should contain any nonstandard programs
- # which must be in the users's path (i.e. not referenced by a
- # fullpath);it allows one to check a script for dependencies
- # without exhaustively testing its usages.
- # ... in this case genclass depends on nothing else.
- echo ;
- exit 0;
- ;;
-esac ;
-
-# pull it in from the environment
-[ "$TRACE" = "" ] || set -xv
-
-# Search in standard g++ prototype directory and in the current directory
-# NOTE: this variable is edited by the install process
-PROTODIR=/projects/gnu-cygnus/gnu-cygnus-2/mips/lib/g++-include/gen
-
-pwd=`pwd`
-
-case "$1" in
--catalog*|-list*)
- #
- # genclass -catalog [proto ...]
- # genclass -list [proto ...]
- #
- option="$1" ;
- shift ;
-
- case $# in
- 0)
- #
- # -catalog
- # -list
- #
- select=all ;
- select_pattern=p ;
- ;;
- *)
- #
- # -catalog proto ...
- # -list proto ...
- #
- select="$@" ;
- select_pattern= ;
- for i in $@ ; do
- select_pattern="\
-$select_pattern
-/.*$i\$/ p
-" ;
- done ;
-
- ;;
- esac ;
-
- #
- # select_pattern is now a (possibly-vacuous) newline-
- # separated list of patterns of the form:
- #
- # /.*Proto1$/ p
- # /.*Proto2$/ p
- # /.*Proto3$/ p
- #
- # or select_pattern is simply ``p'' to select everything
-
- # Hmmm... not all systems have a fmt program; should we
- # just go ahead and use ``nroff -Tcrt | cat -s'' here?
- fmt='nroff -Tcrt | cat -s'
- #fmt=fmt ;
-
- case "$option" in
- -catalog*)
- #
- # -catalog [proto ...]
- #
- echo "\
-Catalog of ${name} class templates
-directories searched:
- $PROTODIR
- $pwd
-selecting: $select
-classes available:" ;
- ;;
- -list*)
- #
- # -list [proto ...]
- #
- # no need to do anything (the list is coming out next)
- ;;
- esac ;
-
-# The sed script does the following:
-# - If it does not end in a .ccP or .hP then
-# it's not a template and we are not intereseted.
-# - Get rid of pathname components [s;.*/;;]
-# - Just take the template names
-# - change quoting conventions and select off what we want to see
-# -if it did not pass the patterns, kill it
-
- ls $pwd $PROTODIR | sed -e '
-/\.ccP$/ !{
- /\.hP$/ !{
- d
- }
-}
-s;.*/;;
-s/\.ccP$//
-s/\.hP$//
-' -e "$select_pattern
-d
-" | sort -u | case "$option" in
- -catalog*)
- # The library catalog information preceded the list
- # format the list, and tab in in a bit to make it readable.
- # Re-evaluate $fmt because it might contain a shell command
- eval $fmt | sed -e 's/.*/ &/' ;
- ;;
- -list*)
- # nothing special, just let the sorted list dribble out
- # we must use cat to receive (and reproduce) the incoming list
- cat ;
- ;;
- esac ;
- exit 0;
- ;;
--2)
- #
- # genclass -2 type1 {ref|val} type2 {ref|val} proto [out_prefix]
- #
- N=2 ;
-
- case $# in
- 6) # genclass -2 type1 {ref|val} type2 {ref|val} proto
- ;;
- 7) # genclass -2 type1 {ref|val} type2 {ref|val} proto out_prefix
- ;;
- *)
- echo "usage: $usage" 1>&2 ;
- exit 1;
- esac ;
- shift ;
- ;;
-*)
- #
- # genclass type1 {ref|val} proto [out_prefix]
- #
- N=1 ;
-
- case $# in
- 3) # genclass type1 {ref|val} proto
- ;;
- 4) # genclass type1 {ref|val} proto out_prefix
- ;;
- *)
- echo "usage: $usage" 1>&2 ;
- exit 1;
- esac ;
- ;;
-esac
-
-#
-# Args are now (the point being the leading ``-2'' is gone)
-#
-# type1 {ref|val} proto [out_prefix]
-# type1 {ref|val} type2 {ref|val} proto [out_prefix]
-#
-
-#
-# Quote all of the $1 $2 etc references to guard against
-# dynamic syntax errors due to vacuous arguments (i.e. '')
-# as sometimes occurs when genclass is used from a Makefile
-#
-
-T1="$1";
-T1NAME="$T1." ;
-T1SEDNAME="$T1" ;
-
-case "$2" in
-ref)
- T1ACC="\&" ;
- ;;
-val)
- T1ACC=" " ;
- ;;
-*)
- echo "${name}: Must specify type1 access as ref or val" 1>&2 ;
- echo "usage: $usage" 1>&2 ;
- exit 1;
- ;;
-esac
-
-# N is either 1 or 2
-
-case $N in
-1)
- #
- # type1 {ref|val} proto [out_prefix]
- #
- class="$3" ;
-
- T2="" ;
- T2ACC="" ;
- ;;
-2)
- #
- # type1 {ref|val} type2 {ref|val} proto [out_prefix]
- #
- class="$5" ;
-
- T2="$3";
- T2NAME="$T2." ;
- T2SEDNAME="$T2" ;
-
- case "$4" in
- ref)
- T2ACC="\&" ;
- ;;
- val)
- T2ACC=" " ;
- ;;
- *)
- echo "${name}: Must specify type2 access: ref or val" 1>&2 ;
- echo "usage: $usage" 1>&2 ;
- exit 1;;
- esac;
- ;;
-esac
-
-defaultprefix="$T1NAME$T2NAME" ;
-
-case $# in
-3) # type1 {ref|val} proto
- replaceprefix="N" ;
- prefix="$defaultprefix" ;
- ;;
-5) # type1 {ref|val} type2 {ref|val} proto
- replaceprefix="N" ;
- prefix="$defaultprefix" ;
- ;;
-4) # type1 {ref|val} proto out_prefix
- prefix="$4" ;
- replaceprefix="Y" ;
- ;;
-6) # type1 {ref|val} type2 {ref|val} proto out_prefix
- prefix="$6" ;
- replaceprefix="Y" ;
- ;;
-*)
- echo "${name}: too many arguments" 1>&2 ;
- echo "usage: $usage" 1>&2 ;
- exit 1;
- ;;
-esac ;
-
-src_h=$class.hP
-src_cc=$class.ccP
-out_h=$prefix$class.h;
-out_cc=$prefix$class.cc ;
-
-#
-# Note #1: The .h and .cc parts are done separately
-# in case only a .h exists for the prototype
-#
-# Note #2: Bind the .h and .cc parts to the fullpath
-# directories at the same time to ensure consistency.
-#
-
-if [ -f $pwd/$src_h ] ; then
- fullsrc_h=$pwd/$src_h ;
- fullsrc_cc=$pwd/$src_cc ;
-elif [ -f $PROTODIR/$src_h ] ; then
- fullsrc_h=$PROTODIR/$src_h ;
- fullsrc_cc=$PROTODIR/$src_cc ;
-else
- echo "${name}: there is no prototype for class $class - file $src_h" 1>&2 ;
- $0 -list ;
- exit 1;
-fi
-
-CASES="$N$replaceprefix" ;
-# CASES is one of { 2Y 2N 1Y 1N }
-
-#
-# WATCHOUT - we have no way of checking whether or not
-# the proper case type is being used with the prototype.
-#
-# For example, we have no way of ensuring that any of
-# Map variants are specified with the -2 argument set
-# Further, we have no way of ensuring that -2 is not
-# used with the prototypes which require only one.
-#
-# The second problem is not serious because it still
-# results in correctly-generated C++ code; the first
-# problem is serious because it results in C++ code that
-# still has ``'' and ``'' syntax inside it. Such
-# code of course will not compile.
-#
-# SO THE BEST WE CAN DO - is check for the presence of
-# and AFTER the thing has been generated.
-#
-
-case $CASES in
-2Y) # Two output substitutions, change the prefix
- sed < $fullsrc_h > $out_h -e "
-s//$T1/g
-s//$T1$T1ACC/g
-s//$T2/g
-s//$T2$T2ACC/g
-s/$T1SEDNAME\.$T2SEDNAME\./$prefix/g
-s/$T1SEDNAME\./$prefix/g
-s/$T2SEDNAME\./$prefix/g
-" ;
- ;;
-2N) # Two output substitutions, use the default prefix
- sed < $fullsrc_h > $out_h -e "
-s//$T1/g
-s//$T1$T1ACC/g
-s//$T2/g
-s//$T2$T2ACC/g
-" ;
- ;;
-1Y) # One output substitution, change the prefix
- sed < $fullsrc_h > $out_h -e "
-s//$T1/g
-s//$T1$T1ACC/g
-s/$T1SEDNAME\./$prefix/g
-" ;
- ;;
-1N) # One output substitution, use the default prefix
- sed < $fullsrc_h > $out_h -e "
-s//$T1/g
-s//$T1$T1ACC/g
-" ;
- ;;
-esac
-
-if egrep '' $out_h > /dev/null ; then
- echo "${name}: the $class class requires the -2 syntax for the 2nd type" 1>&2 ;
- echo "usage: $usage" 1>&2 ;
- # the user does not get to see the mistakes (he might try to compile it)
- rm $out_h ;
- exit 1;
-fi ;
-
-if [ ! -f $fullsrc_cc ] ; then
- echo "${name}: warning, class has a .h but no .cc file" 1>&2 ;
- exit 0;
-fi
-
-case $CASES in
-2Y) # Two output substitutions, change the prefix
- sed < $fullsrc_cc > $out_cc -e "
-s//$T1/g
-s//$T1$T1ACC/g
-s//$T2/g
-s//$T2$T2ACC/g
-s/$T1SEDNAME\.$T2SEDNAME\./$prefix/g
-s/$T1SEDNAME\./$prefix/g
-s/$T2SEDNAME\./$prefix/g
-"
- ;;
-2N) # Two output substitutions, use the default prefix
- sed < $fullsrc_cc > $out_cc -e "
-s//$T1/g
-s//$T1$T1ACC/g
-s//$T2/g
-s//$T2$T2ACC/g
-"
- ;;
-1Y) # One output substitution, change the prefix
- sed < $fullsrc_cc > $out_cc -e "
-s//$T1/g
-s//$T1$T1ACC/g
-s/$T1SEDNAME\./$prefix/g
-"
- ;;
-1N) # One output substitution, use the default prefix
- sed < $fullsrc_cc > $out_cc -e "
-s//$T1/g
-s//$T1$T1ACC/g
-"
- ;;
-esac
-
-if egrep '' $out_h $out_cc > /dev/null ; then
- echo "${name}: the $class class requires the -2 syntax for the 2nd type" 1>&2 ;
- echo "usage: $usage" 1>&2 ;
- # the user does not get to see the mistakes (he might try to compile it)
- rm $out_h $out_cc ;
- exit 1;
-fi ;
-
-exit 0;
diff --git a/contrib/libg++/libg++/genclass/gentest.sh b/contrib/libg++/libg++/genclass/gentest.sh
deleted file mode 100755
index f3e23482f84eb..0000000000000
--- a/contrib/libg++/libg++/genclass/gentest.sh
+++ /dev/null
@@ -1,174 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 1989 Free Software Foundation, Inc.
-#
-# genclass test program by Wendell C. Baker
-
-#This file is part of GNU libg++.
-
-#GNU libg++ is free software; you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation; either version 1, or (at your option)
-#any later version.
-
-#GNU libg++ is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-#GNU General Public License for more details.
-
-#You should have received a copy of the GNU General Public License
-#along with GNU libg++; see the file COPYING. If not, write to
-#the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-#
-# test.sh
-#
-name=gentest.sh
-usage="$name" ;
-genclass=
-
-case "$1" in
--usage)
- #
- # -usage
- #
- echo "usage: $usage" 1>&2 ;
- exit 0;
- ;;
--version)
- #
- # -version
- #
- version="`expr '$Revision: 1.3 $' : '.*Revision: \(.*\) .*'`" ;
- echo "$name: version $version" ;
- exit 0;
- ;;
--requires)
- #
- # -requires
- #
- echo genclass ;
- exit 0;
- ;;
--genclass)
- #
- shift; genclass=$1
- ;;
-esac ;
-
-# pull it in from the environment
-[ "$TRACE" = "" ] || set -xv
-
-if [ "${genclass}" = "" ]
-then
- genclass="./genclass"
-fi
-
-for arg in -usage -version -requires -catalog -list ; do
- echo "---------- genclass $arg ----------"
- ${genclass} $arg
- echo "-----------"
-done ;
-
-arg="-catalog PQ Set"
-echo "---------- genclass $arg ----------"
-${genclass} $arg
-echo "-----------"
-
-arg="-list Map Stack"
-echo "---------- genclass $arg ----------"
-${genclass} $arg
-echo "-----------"
-
-std1=int ;
-std2=char ;
-
-#
-# Do all of them with the single-type syntax
-# The Map-based classes are expected to fail (good)
-#
-for proto in `${genclass} -list` ; do
- file_h=$std1.$proto.h
- file_cc=$std1.$proto.cc
- files="$file_h $file_cc" ;
- echo "Generating: genclass $std1 ref $proto"
- ${genclass} $std1 ref $proto
- if [ $? != 0 ] ; then
- echo "Generation for $std1-$proto failed"
- else
- echo "Checking for badsub"
- egrep '<[TC]&?>' $files
- echo "removing $files"
- rm $files
- fi ;
- echo ""
-
- nonstd1=fig
- file_h=$nonstd1$proto.h
- file_cc=$nonstd1$proto.cc
- files="$file_h $file_cc" ;
- echo "genclass $std1 ref $proto $nonstd1"
- ${genclass} $std1 ref $proto $nonstd1
- if [ $? != 0 ] ; then
- echo "Generation for $std1-$proto failed"
- else
- echo "Checking for badsub"
- egrep '<[TC]?>' $files
- echo "removing $files"
- rm $files
- fi ;
- echo ""
-
-done ;
-
-#
-# Do them all again with the -2 syntax
-# None are expected to fail because there is no
-# way to tell something that requires the single-type syntax
-#
-for proto in `${genclass} -list` ; do
- file1_h=$std1.$proto.h
- file1_cc=$std1.$proto.cc
- files1="$file1_h $file1_cc";
- file2_h=$std1.$std2.$proto.h
- file2_cc=$std1.$std2.$proto.cc
- files2="$file2_h $file2_cc" ;
- files="$file1_h $file1_cc $file2_h $file2_cc" ;
- echo "Generating: genclass -2 $std1 ref $std2 val $proto"
- ${genclass} -2 $std1 ref $std2 val $proto
- if [ $? != 0 ] ; then
- echo "Generation for $std1-$std2-$proto failed"
- else
- echo "Checking for badsub"
- if [ -f $file1_h ] ; then
- # then $file1_cc is expected to exist
- egrep '<[TC]&?>' $files1
- echo "removing $files1"
- rm $files1
- else
- # then [ -f $file2_h ]
- # and $file2_cc is expected to exist
- egrep '<[TC]&?>' $files2
- echo "removing $files2"
- rm $files2
- fi ;
- fi ;
- echo ""
-
- nonstd=fig
- file_h=$nonstd$proto.h
- file_cc=$nonstd$proto.cc
- files="$file_h $file_cc" ;
- echo "Generating: genclass -2 $std1 ref $std2 val $proto $nonstd"
- ${genclass} -2 $std1 ref $std2 val $proto $nonstd
- if [ $? != 0 ] ; then
- echo "Generation for $std1-$std2-$proto failed"
- else
- echo "Checking for badsub"
- egrep '<[TC]&?>' $files
- echo "removing $files"
- rm $files
- fi ;
- echo ""
-
-done ;
diff --git a/contrib/libg++/libg++/libg++.texi b/contrib/libg++/libg++/libg++.texi
deleted file mode 100644
index 4153a7a2e2f4a..0000000000000
--- a/contrib/libg++/libg++/libg++.texi
+++ /dev/null
@@ -1,4803 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-
-@settitle User's Guide to the GNU C++ Class Library
-@setfilename libg++.info
-
-@ifinfo
-@format
-START-INFO-DIR-ENTRY
-* Libg++: (libg++). The g++ class library.
-END-INFO-DIR-ENTRY
-@end format
-@end ifinfo
-
-@ifinfo
-This file documents the features and implementation of The GNU C++ library
-
-Copyright (C) 1988, 1991, 1992 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-@ignore
-Permission is granted to process this file through @TeX{} and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-section entitled ``GNU Library General Public License'' is included exactly as
-in the original, and provided that the entire resulting derived work is
-distributed under the terms of a permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that the section entitled ``GNU Library General Public License'' and
-this permission notice may be included in translations approved by the
-Free Software Foundation instead of in the original English.
-@end ifinfo
-
-@iftex
-@finalout
-@c @smallbook
-@c @cropmarks
-@end iftex
-
-@setchapternewpage odd
-
-@titlepage
-@title User's Guide
-@title to the GNU C++ Library
-@sp 3
-@subtitle last updated April 29, 1992
-@subtitle for version 2.0
-@author Doug Lea (dl@@g.oswego.edu)
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1988, 1991, 1992 Free Software Foundation, Inc.
-
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-section entitled ``GNU Library General Public License'' is included exactly as
-in the original, and provided that the entire resulting derived work is
-distributed under the terms of a permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that the section entitled ``GNU Library General Public License'' may be
-included in a translation approved by the author instead of in the original
-English.
-
-@strong{Note: The GNU C++ library is still in test release. You will
-be performing a valuable service if you report any bugs you encounter.}
-
-@end titlepage
-
-@ifinfo
-@node Top, Copying, , (DIR)
-
-Introduction
-************
-
-This manual documents how to install and use the GNU C++ library.
-
-@end ifinfo
-@menu
-* Copying:: GNU Library Public License says how you can copy
- and share the GNU C++ library.
-* Contributors:: People who have contributed to GNU C++ library.
-* Installation:: How to configure, compile and install GNU C++ library
-* Trouble:: If you have trouble installing GNU C++ library.
-* General:: Aims, objectives, and limitations of the GNU C++ library
-* Conventions:: Stylistic conventions
-* OK:: Support for representation invariants
-* Proto:: Introduction to container class prototypes
-* Pix:: Pseudo-indexes
-* Representations:: How variable-sized objects are represented
-* Expressions:: Some guidance on programming expression-oriented classes
-* Headers:: Header files and other support for interfacing C++ to C
-* Builtin:: Utility functions for builtin types
-* New:: Library dynamic allocation primitives
-* IOStream:(iostream)Top.
- The input/output library (istreams and ostreams).
-* Stream:: obsolete I/O library
-* Obstack:: Obstacks and their uses.
-* AllocRing:: A place to store objects for a while
-* String:: String, SubString, and Regex classes.
-* Integer:: Multiple precision Integer class.
-* Rational:: Multiple precision Rational class
-* Complex:: Complex number class
-* Fix:: Fixed point proportion classes
-* Bit:: BitSet and BitString classes
-* Random:: Random number generators
-* Data:: SampleStatistic and related classes for data collection
-* Curses:: CursesWindow class
-* List:: Lisp-like List prototype
-* LinkList:: Singly and doubly linked list class prototypes
-* Vector:: Vector prototypes
-* Plex:: Plex (adjustable array) prototypes
-* Stack:: Stack prototypes
-* Queue:: Queue prototypes
-* Deque:: Double ended queue prototypes
-* PQ:: Heap (priority queue) class prototypes
-* Set:: Set class prototypes
-* Bag:: Bag class prototypes
-* Map:: Map (Associative array) prototypes
-* GetOpt:: C++ class-based version of the GNU/UNIX getopt function
-* Projects:: Things Still Left to do
-@end menu
-
-@node Copying, Contributors, Top, Top
-@include lgpl.texinfo
-
-@node Contributors, Installation, Copying, Top
-@unnumbered Contributors to GNU C++ library
-
-Aside from Michael Tiemann, who worked out the front end for GNU C++, and
-Richard Stallman, who worked out the back end, the following people (not
-including those who have made their contributions to GNU CC) should not go
-unmentioned.
-
-@itemize @bullet
-@item
-Doug Lea contributed most otherwise unattributed classes.
-
-@item
-Per Bothner contributed the iostream I/O classes.
-
-@item
-Dirk Grunwald contributed the Random number generation classes,
-and PairingHeaps.
-
-@item
-Kurt Baudendistel contributed Fixed precision reals.
-
-@item
-Doug Schmidt contributed ordered hash tables, a perfect
-hash function generator, and several other utilities.
-
-@item
-Marc Shapiro contributed the ideas and preliminary code for Plexes.
-
-@item
-Eric Newton contributed the curses window classes.
-
-@item
-Some of the I/O code is derived from BSD 4.4,
-and was developed by the University of California, Berkeley.
-
-@item
-The code for converting accurately between floating point numbers
-and their string representations was written by David M. Gay of AT&T.
-@end itemize
-
-@node Installation, Trouble, Contributors, Top
-@chapter Installing GNU C++ library
-
-
-@enumerate
-@item
-Read through the README file and the Makefile. Make sure that all
-paths, system-dependent compile switches, and program names are correct.
-
-@item
-Check that files @file{values.h}, @file{stdio.h},
-and @file{math.h} declare and define values appropriate for your
-system.
-
-@item
-Type @samp{make all} to compile the library, test, and install.
-Current details about contents of the tests and utilities are in the
-@file{README} file.
-
-@end enumerate
-
-@node Trouble, General, Installation, Top
-@chapter Trouble in Installation
-
-Here are some of the things that have caused trouble for people installing
-GNU C++ library.
-
-@enumerate
-@item
-Make sure that your GNU C++ version number is at least as high as your
-libg++ version number. For example, libg++ 1.22.0 requires g++ 1.22.0 or
-later releases.
-
-@item
-Double-check system constants in the header files mentioned above.
-
-@end enumerate
-
-@node General, Conventions, Trouble, Top
-@chapter GNU C++ library aims, objectives, and limitations
-
-The GNU C++ library, libg++ is an attempt to provide a variety of C++
-programming tools and other support to GNU C++ programmers.
-
-Differences in distribution policy are only part of the difference
-between libg++.a and AT&T libC.a. libg++ is not intended to be an
-exact clone of libC. For one, libg++ contains bits of code that depend
-on special features of GNU g++ that are either different or lacking in
-the AT&T version, including slightly different inlining and overloading
-strategies, dynamic local arrays, etc. All of these
-differences are minor. For example, while the AT&T and GNU stream
-classes are implemented in very different ways, the vast majority of
-C++ programs compile and run under either version with no visible
-difference. Additionally, all g++-specific constructs are conditionally
-compiled; The library is designed to be compatible with any 2.0 C++
-compiler.
-
-libg++ has also contained workarounds for some limitations in g++: both
-g++ and libg++ are still undergoing rapid development and testing---a
-task that is helped tremendously by the feedback of active users. This
-manual is also still under development; it has some catching up to do
-to include all the facilities now in the library.
-
-libg++ is not the only freely available source of C++ class libraries.
-Some notable alternative sources are Interviews and NIHCL.
-(InterViews has been available on the X-windows X11 tapes and also
-from interviews.stanford.edu. NIHCL is available by anonymous
-ftp from GNU archives (such as the pub directory of prep.ai.mit.edu),
-although it is not supported by the FSF - and needs some work
-before it will work with g++.)
-
-As every C++ programmer knows, the design (moreso than the
-implementation) of a C++ class library is something of a challenge.
-Part of the reason is that C++ supports two, partially incompatible,
-styles of object-oriented programming -- The "forest" approach,
-involving a collection of free-standing classes that can be mixed and
-matched, versus the completely hierarchical (smalltalk style)
-approach, in which all classes are derived from a common ancestor. Of
-course, both styles have advantages and disadvantages. So far, libg++
-has adopted the "forest" approach. Keith Gorlen's OOPS library adopts
-the hierarchical approach, and may be an attractive alternative for C++
-programmers who prefer this style.
-
-Currently (and/or in the near future) libg++ provides support for a
-few basic kinds of classes:
-
-The first kind of support provides an interface between C++ programs and
-C libraries. This includes basic header files (like @file{stdio.h}) as
-well as things like the File and stream classes. Other classes that
-interface to other aspects of C libraries (like those that maintain
-environmental information) are in various stages of development; all
-will undergo implementation modifications when the forthcoming GNU libc
-library is released.
-
-The second kind of support contains general-purpose basic classes that
-transparently manage variable-sized objects on the freestore. This
-includes Obstacks, multiple-precision Integers and Rationals,
-arbitrary length Strings, BitSets, and BitStrings.
-
-Third, several classes and utilities of common interest (e.g.,
-Complex numbers) are provided.
-
-Fourth, a set of pseudo-generic prototype files are available
-as a mechanism for generating common container classes. These
-are described in more detail in the introduction to container
-prototypes. Currently, only a textual substitution
-mechanism is available for generic class creation.
-
-@node Conventions, OK, General, Top
-@chapter GNU C++ library stylistic conventions
-
-@itemize @bullet
-
-@item
-C++ source files have file extension @file{.cc}. Both C-compatibility
-header files and class declaration files have extension @file{.h}.
-
-@item
-C++ class names begin with capital letters, except for @code{istream}
-and @code{ostream}, for AT&T C++ compatibility. Multi-word class
-names capitalize each word, with no underscore separation.
-
-@item
-Include files that define C++ classes begin with capital letters
-(as do the names of the classes themselves). @file{stream.h} is
-uncapitalized for AT&T C++ compatibility.
-
-@item
-Include files that supply function prototypes for other C
-functions (system calls and libraries) are all lower case.
-
-@item
-All include files define a preprocessor variable _X_h, where X
-is the name of the file, and conditionally compile only if this
-has not been already defined. The @code{#pragma once} facility
-is also used to avoid re-inclusion.
-
-@item
-Structures and objects that must be publicly defined,
-but are not intended for public use have names beginning
-with an underscore. (for example, the @code{_Srep} struct, which
-is used only by the String and SubString classes.)
-
-@item
-The underscore is used to separate components of long function
-names, @*e.g., @code{set_File_exception_handler()}.
-
-@item
-When a function could be usefully defined either as a
-member or a friend, it is generally a member if it modifies
-and/or returns itself, else it is a friend. There are cases
-where naturalness of expression wins out over this rule.
-
-@item
-Class declaration files are formatted so that it is easy
-to quickly check them to determine function names, parameters,
-and so on. Because of the different kinds of things that may
-appear in class declarations, there is no perfect way to do
-this. Any suggestions on developing a common class
-declaration formatting style are welcome.
-
-@item
-All classes use the same simple error (exception) handling strategy.
-Almost every class has a member function named @code{error(char* msg)}
-that invokes an associated error handler function via a pointer to that
-function, so that the error handling function may be reset by
-programmers. By default nearly all call @code{*lib_error_handler}, which
-prints the message and then aborts execution. This system is subject
-to change. In general, errors are assumed to be non-recoverable:
-Library classes do not include code that allows graceful continuation
-after exceptions.
-
-@end itemize
-
-@node OK, Proto, Conventions, Top
-@chapter Support for representation invariants
-
-Most GNU C++ library classes possess a method named @code{OK()},
-that is useful in helping to verify correct performance of class
-operations.
-
-The @code{OK()} operations checks the ``representation invariant'' of a
-class object. This is a test to check whether the object is in a valid
-state. In effect, it is a (sometimes partial) verification of the
-library's promise that (1) class operations always leave objects in
-valid states, and (2) the class protects itself so that client functions
-cannot corrupt this state.
-
-While no simple validation technique can assure that all operations
-perform correctly, calls to @code{OK()} can at least verify that
-operations do not corrupt representations. For example for @code{String
-a, b, c; ... a = b + c;}, a call to @code{a.OK();} will guarantee that
-@code{a} is a valid @code{String}, but does not guarantee that it
-contains the concatenation of @code{b + c}. However, given that @code{a}
-is known to be valid, it is possible to further verify its properties,
-for example via @code{a.after(b) == c && a.before(c) == b}. In other
-words, @code{OK()} generally checks only those internal representation
-properties that are otherwise inaccessible to users of the class. Other
-class operations are often useful for further validation.
-
-Failed calls to @code{OK()} call a class's @code{error} method if
-one exists, else directly call @code{abort}. Failure indicates
-an implementation error that should be reported.
-
-With only rare exceptions, the internal support functions for a class
-never themselves call @code{OK()} (although many of the test files
-in the distribution call @code{OK()} extensively).
-
-Verification of representational invariants can sometimes be
-very time consuming for complicated data structures.
-
-
-@node Proto, Representations, OK, Top
-@chapter Introduction to container class prototypes
-
-As a temporary mechanism enabling the support of generic classes, the GNU
-C++ Library distribution contains a directory (@file{g++-include}) of files
-designed to serve as the basis for generating container classes of
-specified elements. These files can be used to generate @file{.h} and
-@file{.cc} files in the current directory via a supplied shell script
-program that performs simple textual substitution to create specific
-classes.
-
-While these classes are generated independently, and thus share no code,
-it is possible to create versions that do share code among subclasses. For
-example, using @code{typedef void* ent}, and then generating a
-@code{entList} class, other derived classes could be created using the
-@code{void*} coercion method described in Stroustrup, pp204-210.
-
-This very simple class-generation facility is useful enough to serve
-current purposes, but will be replaced with a more coherent mechanism for
-handling C++ generics in a way that minimally disrupts current usage.
-Without knowing exactly when or how parametric classes might be
-added to the C++ language, provision of this simplest possible
-mechanism, textual substitution, appears to be the safest strategy,
-although it does require certain redundancies and awkward constructions.
-
-Specific classes may be generated via the @file{genclass} shell script
-program. This program has arguments specifying the kinds of base types(s)
-to be used. Specifying base types requires two arguments. The first is the
-name of the base type, which may be any named type, like @code{int} or
-@code{String}. Only named types are supported; things like @code{int*} are
-not accepted. However, pointers like this may be used by supplying the
-appropriate typedefs (e.g., editing the resulting files to include
-@code{typedef int* intp;}). The type name must be followed by one of the
-words @code{val} or @code{ref}, to indicate whether the base elements
-should be passed to functions by-value or by-reference.
-
-You can specify basic container classes using @code{genclass base
-[val,ref] proto}, where @code{proto} is the name of the class being
-generated. Container classes like dictionaries and maps that require
-two types may be specified via @code{genclass -2 keytype [val, ref],
-basetype [val, ref] proto}, where the key type is specified first and
-the contents type second. The resulting classnames and filenames are
-generated by prepending the specified type names to the prototype names,
-and separating the filename parts with dots. For example,
-@code{genclass int val List} generates class @code{intList} residing in
-files @file{int.List.h} and @file{int.List.cc}. @code{genclass -2 String
-ref int val VHMap} generates (the awkward, but unavoidable) class name
-@code{StringintVHMap}. Of course, programmers may use @code{typedef} or
-simple editing to create more appropriate names. The existence of dot
-seperators in file names allows the use of GNU make to help automate
-configuration and recompilation. An example Makefile exploiting such
-capabilities may be found in the @file{libg++/proto-kit} directory.
-
-The @code{genclass} utility operates via simple text substitution using
-@code{sed}. All occurrences of the pseudo-types @code{} and @code{}
-(if there are two types) are replaced with the indicated type, and
-occurrences of @code{} and @code{} are replaced by just the types,
-if @code{val} is specified, or types followed by ``&'' if @code{ref} is
-specified.
-
-Programmers will frequently need to edit the @file{.h} file in order to
-insert additional @code{#include} directives or other modifications. A
-simple utility, @file{prepend-header} to prepend other @file{.h} files
-to generated files is provided in the distribution.
-
-One dubious virtue of the prototyping mechanism is that, because sources files,
-not archived library classes, are generated, it is relatively simple for
-programmers to modify container classes in the common case where slight
-variations of standard container classes are required.
-
-It is often a good idea for programmers to archive (via @code{ar})
-generated classes into @file{.a} files so that only those class
-functions actually used in a given application will be loaded.
-The test subdirectory of the distribution shows an example of this.
-
-Because of @code{#pragma interface} directives, the @file{.cc} files
-should be compiled with @code{-O} or @code{-DUSE_LIBGXX_INLINES}
-enabled.
-
-Many container classes require specifications over and above the base
-class type. For example, classes that maintain some kind of ordering of
-elements require specification of a comparison function upon which to
-base the ordering. This is accomplished via a prototype file
-@file{defs.hP} that contains macros for these functions. While these
-macros default to perform reasonable actions, they can and should be
-changed in particular cases. Most prototypes require only one or a few
-of these. No harm is done if unused macros are defined to perform
-nonsensical actions. The macros are:
-
-@table @code
-
-@item DEFAULT_INITIAL_CAPACITY
-The initial capacity for containers (e.g., hash tables) that require
-an initial capacity argument for constructors.
-Default: 100
-
-@item EQ(a, b)
-return true if a is considered equal to b for the purposes of
-locating, etc., an element in a container.
-Default: (a == b)
-
-@item LE(a, b)
-return true if a is less than or equal to b
-Default: (a <= b)
-
-@item CMP(a, b)
-return an integer < 0 if a 0 if a>b.
-Default: (a <= b)? (a==b)? 0 : -1 : 1
-
-@item HASH(a)
-return an unsigned integer representing the hash of a.
-Default: hash(a) ; where extern unsigned int hash().
-(note: several useful hash functions are declared in builtin.h
-and defined in hash.cc)
-
-@end table
-
-Nearly all prototypes container classes support container
-traversal via @code{Pix} pseudo indices, as described elsewhere.
-
-All object containers must perform either a @code{X::X(X&)} (or
-@code{X::X()} followed by @code{X::operator =(X&)}) to copy objects into
-containers. (The latter form is used for containers built from C++
-arrays, like @code{VHSets}). When containers are destroyed, they invoke
-@code{X::~X()}. Any objects used in containers must have well behaved
-constructors and destructors. If you want to create containers that
-merely reference (point to) objects that reside elsewhere, and are not
-copied or destroyed inside the container, you must use containers
-of pointers, not containers of objects.
-
-All prototypes are designed to generate @emph{HOMOGENOUS} container
-classes. There is no universally applicable method in C++ to support
-heterogenous object collections with elements of various subclasses of
-some specified base class. The only way to get heterogenous structures
-is to use collections of pointers-to-objects, not collections of objects
-(which also requires you to take responsibility for managing storage for
-the objects pointed to yourself).
-
-For example, the following usage illustrates a commonly encountered
-danger in trying to use container classes for heterogenous structures:
-
-@smallexample
-class Base @{ int x; ...@}
-class Derived : public Base @{ int y; ... @}
-
-BaseVHSet s; // class BaseVHSet generated via something like
- // `genclass Base ref VHSet'
-
-void f()
-@{
- Base b;
- s.add(b); // OK
-
- Derived d;
- s.add(d); // (CHOP!)
-@}
-@end smallexample
-
-At the line flagged with @samp{(CHOP!)}, a @code{Base::Base(Base&)} is
-called inside @code{Set::add(Base&)}---@emph{not}
-@code{Derived::Derived(Derived&)}. Actually, in @code{VHSet}, a
-@code{Base::operator =(Base&)}, is used instead to place the element in
-an array slot, but with the same effect. So only the Base part is
-copied as a @code{VHSet} element (a so-called chopped-copy). In this
-case, it has an @code{x} part, but no @code{y} part; and a Base, not
-Derived, vtable. Objects formed via chopped copies are rarely
-sensible.@refill
-
-To avoid this, you must resort to pointers:
-
-@smallexample
-typedef Base* BasePtr;
-
-BasePtrVHSet s; // class BaseVHSet generated via something like
- // `genclass BasePtr val VHSet'
-
-void f()
-@{
- Base* bp = new Base;
- s.add(b);
-
- Base* dp = new Derived;
- s.add(d); // works fine.
-
- // Don't forget to delete bp and dp sometime.
- // The VHSet won't do this for you.
-@}
-@end smallexample
-
-@section Example
-
-The prototypes can be difficult to use on first attempt. Here is an
-example that may be helpful. The utilities in the @file{proto-kit}
-simplify much of the actions described, but are not used here.
-
-Suppose you create a class @code{Person}, and want to make an Map that
-links the social security numbers associated with each person. You start
-off with a file @file{Person.h}
-
-@example
-
-#include
-
-class Person
-@{
- String nm;
- String addr;
- //...
-public:
- const String& name() @{ return nm; @}
- const String& address() @{ return addr; @}
- void print() @{ ... @}
- //...
-@}
-
-@end example
-
-And in file @file{SSN.h},
-
-@example
-typedef unsigned int SSN;
-@end example
-
-Your first decision is what storage/usage strategy to use. There are
-several reasonable alternatives here: You might create an ``object
-collection'' of Persons, a ``pointer collection'' of
-pointers-to-Persons, or even a simple String map, housing either copies
-of pointers to the names of Persons, since other fields are unused for
-purposes of the Map. In an object collection, instances of class Person
-``live'' inside the Map, while in a pointer collection, the instances
-live elsewhere. Also, as above, if instances of subclasses of Person are
-to be used inside the Map, you must use pointers. In a String Map, the
-same difference holds, but now only for the name fields. Any of these
-choices might make sense in particular applications.
-
-The second choice is the Map implementation strategy. Either a tree
-or a hash table might make sense. Suppose you want an AVL tree Map.
-There are two things to now check. First, as an object collection,
-the AVLMap requires that the elsement class contain an @code{X(X&)}
-constructor. In C++, if you don't specify such a constructor, one
-is constructed for you, but it is a very good idea to always do this
-yourself, to avoid surprises. In this example, you'd use something like
-@example
-class Person
-@{ ...;
- Person(const Person& p) :nm(p.nm), addr(p.addr) @{@}
-@};
-@end example
-
-Also, an AVLMap requires a comparison function for elements in order
-to maintain order. Rather than requiring you to write a particular
-comparison function, a @file{defs} file is consulted to determine how to
-compare items. You must create and edit such a file.
-
-Before creating @file{Person.defs.h}, you must first make one additional
-decision. Should the Map member functions like @code{m.contains(p)}
-take arguments (@code{p}) by reference (i.e., typed as
-@code{int Map::contains(const Person& p)} or by value (i.e., typed as
-@code{int Map::contains(const Person p)}. Generally, for user-defined
-classes, you want to pass by reference, and for builtins and pointers,
-to pass by value. SO you should pick by-reference.
-
-You can now create @file{Person.defs.h} via @code{genclass Person ref defs}.
-This creates a simple skeleton that you must edit. First, add
-@code{#include "Person.h"} to the top. Second, edit the @code{CMP(a,b)}
-macro to compare on name, via
-
-@example
-#define CMP(a, b) ( compare(a.name(), b.name()) )
-@end example
-
-@noindent
-which invokes the @code{int compare(const String&, const String&)}
-function from @file{String.h}. Of course, you could define this in any
-other way as well. In fact, the default versions in the skeleton turn
-out to be OK (albeit inefficient) in this particular example.
-
-You may also want to create file @file{SSN.defs.h}. Here, choosing
-call-by-value makes sense, and since no other capabilities (like
-comparison functions) of the SSNs are used (and the defaults are OK
-anyway), you'd type
-
-@example
-genclass SSN val defs
-@end example
-
-@noindent
-and then edit to place @code{#include "SSN.h"} at the top.
-
-Finally, you can generate the classes. First, generate the base
-class for Maps via
-
-@example
-genclass -2 Person ref SSN val Map
-@end example
-
-@noindent
-This generates only the abstract class, not the implementation, in file
-@file{Person.SSN.Map.h} and @file{Person.SSN.Map.cc}. To create the
-AVL implementation, type
-
-@example
-genclass -2 Person ref SSN val AVLMap
-@end example
-
-@noindent
-This creates the class @code{PersonSSNAVLMap}, in
-@file{Person.SSN.AVLMap.h} and @file{Person.SSN.AVLMap.cc}.
-
-To use the AVL implementation, compile the two generated @file{.cc} files, and
-specify @samp{#include "Person.SSN.AVLMap.h"} in the application program.
-All other files are included in the right ways automatically.
-
-One last consideration, peculiar to Maps, is to pick a reasonable
-default contents when declaring an AVLMap. Zero might be appropriate
-here, so you might declare a Map,
-
-@example
-PersonSSNAVLMap m((SSN)0);
-@end example
-
-Suppose you wanted a @code{VHMap} instead of an @code{AVLMap} Besides
-generating different implementations, there are two differences in
-how you should prepare the @file{defs} file. First, because a VHMap
-uses a C++ array internally, and because C++ array slots are initialized
-differently than single elements, you must ensure that class Person
-contains (1) a no-argument constructor, and (2) an assignment operator.
-You could arrange this via
-
-@smallexample
-class Person
-@{ ...;
- Person() @{@}
- void operator = (const Person& p) @{ nm = p.nm; addr = p.addr; @}
-@};
-@end smallexample
-
-(The lack of action in the constructor is OK here because @code{Strings}
-possess usable no-argument constructors.)
-
-You also need to edit @file{Person.defs.h} to indicate a usable hash
-function and default capacity, via something like
-
-@example
-#include
-#define HASH(x) (hashpjw(x.name().chars()))
-#define DEFAULT_INITIAL_CAPACITY 1000
-@end example
-
-Since the @code{hashpjw} function from @file{builtin.h} is
-appropriate here. Changing the default capacity to a value
-expected to exceed the actual capacity helps to avoid
-``hidden'' inefficiencies when a new VHMap is created without
-overriding the default, which is all too easy to do.
-
-Otherwise, everything is the same as above, substituting
-@code{VHMap} for @code{AVLMap}.
-
-@node Representations, Expressions, Proto, Top
-@chapter Variable-Sized Object Representation
-
-One of the first goals of the GNU C++ library is to enrich the kinds of
-basic classes that may be considered as (nearly) ``built into'' C++. A good
-deal of the inspiration for these efforts is derived from considering
-features of other type-rich languages, particularly Common Lisp and Scheme.
-The general characteristics of most class and friend operators and
-functions supported by these classes has been heavily influenced
-by such languages.
-
-Four of these types, Strings, Integers, BitSets, and BitStrings (as well as
-associated and/or derived classes) require representations suitable for
-managing variable-sized objects on the free-store. The basic technique used
-for all of these is the same, although various details necessarily differ
-from class to class.
-
-The general strategy for representing such objects is to create chunks of
-memory that include both header information (e.g., the size of the object),
-as well as the variable-size data (an array of some sort) at the end
-of the chunk. Generally the maximum size of an object is limited to
-something less than all of addressable memory, as a safeguard. The minimum
-size is also limited so as not to waste allocations expanding very small
-chunks. Internally, chunks are allocated in blocks well-tuned to the
-performance of the @code{new} operator.
-
-Class elements themselves are merely pointers to these chunks.
-Most class operations are performed via inline ``translation''
-functions that perform the required operation on the corresponding
-representation. However, constructors and assignments operate by
-copying entire representations, not just pointers.
-
-
-No attempt is made to control temporary creation in expressions
-and functions involving these classes. Users of previous versions
-of the classes will note the disappearance of both ``Tmp'' classes
-and reference counting. These were dropped because, while they
-did improve performance in some cases, they obscure class
-mechanics, lead programmers into the false belief that they need not
-worry about such things, and occasionally have paradoxical behavior.
-
-
-These variable-sized object classes are integrated as well as possible
-into C++. Most such classes possess converters that allow automatic
-coercion both from and to builtin basic types. (e.g., char* to and from
-String, long int to and from Integer, etc.). There are pro's and con's
-to circular converters, since they can sometimes lead to the conversion
-from a builtin type through to a class function and back to a builtin
-type without any special attention on the part of the programmer, both
-for better and worse.
-
-Most of these classes also provide special-case operators and functions
-mixing basic with class types, as a way to avoid constructors in cases
-where the operations do not rely on anything special about the
-representations. For example, there is a special case concatenation
-operator for a String concatenated with a char, since building the
-result does not rely on anything about the String header. Again, there
-are arguments both for and against this approach. Supporting these cases
-adds a non-trivial degree of (mainly inline) function proliferation, but
-results in more efficient operations. Efficiency wins out over parsimony
-here, as part of the goal to produce classes that provide sufficient
-functionality and efficiency so that programmers are not tempted to try
-to manipulate or bypass the underlying representations.
-
-@node Expressions, Pix, Representations, Top
-@chapter Some guidelines for using expression-oriented classes
-
-
-The fact that C++ allows operators to be overloaded for user-defined
-classes can make programming with library classes like @code{Integer},
-@code{String}, and so on very convenient. However, it is worth
-becoming familiar with some of the inherent limitations and problems
-associated with such operators.
-
-Many operators are @emph{constructive}, i.e., create a new object
-based on some function of some arguments. Sometimes the creation
-of such objects is wasteful. Most library classes supporting
-expressions contain facilities that help you avoid such waste.
-
-For example, for @code{Integer a, b, c; ...; c = a + b + a;}, the
-plus operator is called to sum a and b, creating a new temporary object
-as its result. This temporary is then added with a, creating another
-temporary, which is finally copied into c, and the temporaries are then
-deleted. In other words, this code might have an effect similar to
-@code{Integer a, b, c; ...; Integer t1(a); t1 += b; Integer t2(t1);
-t2 += a; c = t2;}.
-
-For small objects, simple operators, and/or non-time/space critical
-programs, creation of temporaries is not a big problem. However, often,
-when fine-tuning a program, it may be a good idea to rewrite such
-code in a less pleasant, but more efficient manner.
-
-For builtin types like ints, and floats, C and C++ compilers already
-know how to optimize such expressions to reduce the need for
-temporaries. Unfortunately, this is not true for C++ user defined
-types, for the simple (but very annoying, in this context) reason that
-nothing at all is guaranteed about the semantics of overloaded operators
-and their interrelations. For example, if the above expression just
-involved ints, not Integers, a compiler might internally convert the
-statement into something like @code{ c = a; c += b; c+= a; }, or
-perhaps something even more clever. But since C++ does not know that
-Integer operator += has any relation to Integer operator +, A C++
-compiler cannot do this kind of expression optimization itself.
-
-In many cases, you can avoid construction of temporaries simply by
-using the assignment versions of operators whenever possible, since
-these versions create no temporaries. However, for maximum flexibility,
-most classes provide a set of ``embedded assembly code'' procedures
-that you can use to fully control time, space, and evaluation strategies.
-Most of these procedures are ``three-address'' procedures that take
-two @code{const} source arguments, and a destination argument. The
-procedures perform the appropriate actions, placing the results in
-the destination (which is may involve overwriting old contents). These
-procedures are designed to be fast and robust. In particular, aliasing
-is always handled correctly, so that, for example
-@code{add(x, x, x); } is perfectly OK. (The names of these procedures
-are listed along with the classes.)
-
-For example, suppose you had an Integer expression
-@code{ a = (b - a) * -(d / c); }
-
-This would be compiled as if it were
-@code{ Integer t1=b-a; Integer t2=d/c; Integer t3=-t2; Integer t4=t1*t3; a=t4;}
-
-But, with some manual cleverness, you might yourself some up with
-@code{ sub(a, b, a); mul(a, d, a); div(a, c, a); }
-
-
-A related phenomenon occurs when creating your own constructive
-functions returning instances of such types. Suppose you wanted
-to write function
-@code{Integer f(const Integer& a) @{ Integer r = a; r += a; return r; @}}
-
-This function, when called (as in @code{ a = f(a); }) demonstrates a
-similar kind of wasted copy. The returned value r must be copied
-out of the function before it can be used by the caller. In GNU
-C++, there is an alternative via the use of named return values.
-Named return values allow you to manipulate the returned object
-directly, rather than requiring you to create a local inside
-a function and then copy it out as the returned value. In this
-example, this can be done via
-@code{Integer f(const Integer& a) return r(a) @{ r += a; return; @}}
-
-
-A final guideline: The overloaded operators are very convenient, and
-much clearer to use than procedural code. It is almost always a good
-idea to make it right, @emph{then} make it fast, by translating
-expression code into procedural code after it is known to be correct.
-
-
-
-@node Pix, Headers, Expressions, Top
-@chapter Pseudo-indexes
-
-Many useful classes operate as containers of elements. Techniques for
-accessing these elements from a container differ from class to class.
-In the GNU C++ library, access methods have been partially standardized
-across different classes via the use of pseudo-indexes called
-@code{Pixes}. A @code{Pix} acts in some ways like an index, and in some
-ways like a pointer. (Their underlying representations are just
-@code{void*} pointers). A @code{Pix} is a kind of ``key'' that is
-translated into an element access by the class. In virtually all cases,
-@code{Pixes} are pointers to some kind internal storage cells. The
-containers use these pointers to extract items.
-
-@code{Pixes} support traversal and inspection of elements in a
-collection using analogs of array indexing. However, they are
-pointer-like in that @code{0} is treated as an invalid @code{Pix}, and
-unsafe insofar as programmers can attempt to access nonexistent elements
-via dangling or otherwise invalid @code{Pixes} without first checking
-for their validity.
-
-In general it is a very bad idea to perform traversals in the the midst
-of destructive modifications to containers.
-
-Typical applications might include code using the idiom
-@example
-for (Pix i = a.first(); i != 0; a.next(i)) use(a(i));
-@end example
-for some container @code{a} and function @code{use}.
-
-Classes supporting the use of @code{Pixes} always contain the following
-methods, assuming a container @code{a} of element types of @code{Base}.
-
-@table @code
-
-@item Pix i = a.first()
-Set i to index the first element of a or 0 if a is empty.
-
-@item a.next(i)
-advance i to the next element of a or 0 if there is no next element;
-
-@item Base x = a(i); a(i) = x;
-a(i) returns a reference to the element indexed by i.
-
-@item int present = a.owns(i)
-returns true if Pix i is a valid Pix in a. This is often a
-relatively slow operation, since the collection must usually
-traverse through elements to see if any correspond to the Pix.
-
-@end table
-
-Some container classes also support backwards traversal via
-
-@table @code
-@item Pix i = a.last()
-Set i to the last element of a or 0 if a is empty.
-
-@item a.prev(i)
-sets i to the previous element in a, or 0 if there is none.
-@end table
-
-Collections supporting elements with an equality operation possess
-
-@table @code
-@item Pix j = a.seek(x)
-sets j to the index of the first occurrence of x, or 0 if x is
-not contained in a.
-@end table
-
-Bag classes possess
-
-@table @code
-@item Pix j = a.seek(x, Pix from = 0)
-sets j to the index of the next occurrence of x following i,
-or 0 if x is not contained in a. If i == 0, the first occurrence
-is returned.
-@end table
-
-Set, Bag, and PQ classes possess
-
-@table @code
-@item Pix j = a.add(x) (or a.enq(x) for priority queues)
-add x to the collection, returning its Pix. The Pix of an item
-can change in collections where further additions and deletions
-involve the actual movement of elements (currently in OXPSet,
-OXPBag, XPPQ, VOHSet), but in all other cases, an item's Pix may
-be considered a permanent key to its location.
-@end table
-
-@node Headers, Builtin, Pix, Top
-@chapter Header files for interfacing C++ to C
-
-The following files are provided so that C++ programmers may
-invoke common C library and system calls. The names and contents
-of these files are subject to change in order to be compatible
-with the forthcoming GNU C library. Other files, not listed
-here, are simply C++-compatible interfaces to corresponding C
-library files.
-
-@table @file
-@item values.h
-A collection of constants defining the numbers of bits in builtin
-types, minimum and maximum values, and the like. Most names are
-the same as those found in @file{values.h} found on Sun systems.
-
-@item std.h
-A collection of common system calls and @file{libc.a} functions.
-Only those functions that can be declared without introducing
-new type definitions (socket structures, for example) are
-provided. Common @code{char*} functions (like @code{strcmp}) are among
-the declarations. All functions are declared along with their
-library names, so that they may be safely overloaded.
-
-@item string.h
-This file merely includes @file{}, where string function
-prototypes are declared. This is a workaround for the fact that
-system @file{string.h} and @file{strings.h} files often differ
-in contents.
-
-@item osfcn.h
-This file merely includes @file{}, where system function
-prototypes are declared.
-
-@item libc.h
-This file merely includes @file{}, where C library function
-prototypes are declared.
-
-@item math.h
-A collection of prototypes for functions usually found in
-libm.a, plus some @code{#define}d constants that appear to be
-consistent with those provided in the AT&T version. The value
-of @code{HUGE} should be checked before using. Declarations of
-all common math functions are preceded with @code{overload}
-declarations, since these are commonly overloaded.
-
-@item stdio.h
-Declaration of @code{FILE} (@code{_iobuf}), common macros (like
-@code{getc}), and function prototypes for @file{libc.a}
-functions that operate on @code{FILE*}'s. The value
-@code{BUFSIZ} and the declaration of @code{_iobuf} should be
-checked before using.
-
-@item assert.h
-C++ versions of assert macros.
-
-@item generic.h
-String concatenation macros useful in creating generic classes.
-They are similar in function to the AT&T CC versions.
-
-@item new.h
-Declarations of the default global operator new, the two-argument
-placement version, and associated error handlers.
-@end table
-
-@node Builtin, New, Headers, Top
-@chapter Utility functions for built in types
-
-Files @file{builtin.h} and corresponding @file{.cc} implementation
-files contain various convenient
-inline and non-inline utility functions. These include useful
-enumeration types, such as @code{TRUE}, @code{FALSE} ,the type
-definition for pointers to libg++ error handling functions, and
-the following functions.
-
-@table @code
-@item long abs(long x); double abs(double x);
-inline versions of abs. Note that the standard libc.a version,
-@code{int abs(int)} is @emph{not} declared as inline.
-
-@item void clearbit(long& x, long b);
-clears the b'th bit of x (inline).
-
-@item void setbit(long& x, long b);
-sets the b'th bit of x (inline)
-
-@item int testbit(long x, long b);
-returns the b'th bit of x (inline).
-
-@item int even(long y);
-returns true if x is even (inline).
-
-@item int odd(long y);
-returns true is x is odd (inline).
-
-@item int sign(long x); int sign(double x);
-returns -1, 0, or 1, indicating whether x is less than, equal to, or
-greater than zero (inline).
-
-@item long gcd(long x, long y);
-returns the greatest common divisor of x and y.
-
-@item long lcm(long x, long y);
-returns the least common multiple of x and y.
-
-@item long lg(long x);
-returns the floor of the base 2 log of x.
-
-@item long pow(long x, long y); double pow(double x, long y);
-returns x to the integer power y using via the iterative O(log y)
-``Russian peasant'' method.
-
-@item long sqr(long x); double sqr(double x);
-returns x squared (inline).
-
-@item long sqrt(long y);
-returns the floor of the square root of x.
-
-@item unsigned int hashpjw(const char* s);
-a hash function for null-terminated char* strings using the
-method described in Aho, Sethi, & Ullman, p 436.
-
-@item unsigned int multiplicativehash(int x);
-a hash function for integers that returns the lower bits of
-multiplying x by the golden ratio times pow(2, 32).
-See Knuth, Vol 3, p 508.
-
-@item unsigned int foldhash(double x);
-a hash function for doubles that exclusive-or's the first and
-second words of x, returning the result as an integer.
-
-@item double start_timer()
-Starts a process timer.
-
-@item double return_elapsed_time(double last_time)
-Returns the process time since last_time.
-If last_time == 0 returns the time since the last start_timer.
-Returns -1 if start_timer was not first called.
-
-@end table
-
-File @file{Maxima.h} includes versions of @code{MAX, MIN}
-for builtin types.
-
-File @file{compare.h} includes versions of @code{compare(x, y)}
-for builtin types. These return negative if the first argument
-is less than the second, zero for equal, and positive for greater.
-
-@node New, Stream, Builtin, Top
-@chapter Library dynamic allocation primitives
-
-Libg++ contains versions of @code{malloc, free, realloc} that were
-designed to be well-tuned to C++ applications. The source file
-@file{malloc.c} contains some design and implementation details.
-Here are the major user-visible differences from most system
-malloc routines:
-
-@enumerate
-
-@item
-These routines @emph{overwrite} storage of freed space. This
-means that it is never permissible to use a @code{delete}'d
-object in any way. Doing so will either result in trapped
-fatal errors or random aborts within malloc, free, or realloc.
-
-@item
-The routines tend to perform well when a large number
-of objects of the same size are allocated and freed. You
-may find that it is not worth it to create your
-own special allocation schemes in such cases.
-
-@item
-The library sets top-level @code{operator new()} to call malloc and
-@code{operator delete()} to call free. Of course, you may override these
-definitions in C++ programs by creating your own operators that will
-take precedence over the library versions. However, if you do so, be
-sure to define @emph{both} @code{operator new()} and @code{operator
-delete()}.
-
-@item
-These routines do @emph{not} support the odd convention, maintained by
-some versions of malloc, that you may call @code{realloc} with a pointer
-that has been @code{free}'d.
-
-@item
-The routines automatically perform simple checks on @code{free}'d
-pointers that can often determine whether users have accidentally
-written beyond the boundaries of allocated space, resulting in a fatal
-error.
-
-@item
-The function @code{malloc_usable_size(void* p)} returns the number of
-bytes actually allocated for @code{p}. For a valid pointer (i.e., one
-that has been @code{malloc}'d or @code{realloc}'d but not yet
-@code{free}'d) this will return a number greater than or equal to the
-requested size, else it will normally return 0. Unfortunately, a
-non-zero return can not be an absolutely perfect indication of lack of
-error. If a chunk has been @code{free}'d but then re-allocated for a
-different purpose somewhere elsewhere, then @code{malloc_usable_size}
-will return non-zero. Despite this, the function can be very valuable
-for performing run-time consistency checks.
-
-@item
-@code{malloc} requires 8 bytes of overhead per allocated chunk, plus a
-mmaximum alignment adjustment of 8 bytes. The number of bytes of usable
-space is exactly as requested, rounded to the nearest 8 byte boundary.
-
-@item
-The routines do @emph{not} contain any synchronization support for
-multiprocessing. If you perform global allocation on a shared
-memory multiprocessor, you should disable compilation and use
-of libg++ malloc in the distribution @file{Makefile} and use your
-system version of malloc.
-
-@end enumerate
-
-@iftex
-@node IOStream
-@chapter The new input/output classes
-
-The iostream classes implement most of the features of AT&T
-version 2.0 iostream library classes, and most of the features
-of the ANSI X3J16 library draft (which is based on the AT&T design).
-These classes are available in @code{libg++} for convenience and for
-compatibility with older releases; however, since the iostream classes
-are licensed under less stringent terms than @code{libg++}, they are now
-also available in a separate library called @code{libio}---and
-documented in a separate manual, corresponding to that library.
-
-@xref{Introduction,,Introduction, iostream.info, The GNU C++ Iostream
-Library}.
-@end iftex
-
-@node Stream, Obstack, New, Top
-@chapter The old I/O library
-
-WARNING: This chapter describes classes that are @emph{obsolete}.
-These classes are normally not available when libg++
-is installed normally. The sources are currently included
-in the distribution, and you can configure libg++ to use
-these classes instead of the new iostream classes.
-This is only a temporary measure; you should convert your
-code to use iostreams as soon as possible. The iostream
-classes provide some compatibility support, but it is
-very incomplete (there is no longer a @code{File} class).
-
-@section File-based classes
-
-The @code{File} class supports basic IO on Unix files. Operations are
-based on common C stdio library functions.
-
-@code{File} serves as the base class for istreams, ostreams, and other
-derived classes. It contains the interface between the Unix stdio file
-library and these more structured classes. Most operations are implemented
-as simple calls to stdio functions. @code{File} class operations are also fully
-compatible with raw system file reads and writes (like the system
-@code{read} and @code{lseek} calls) when buffering is disabled (see below).
-The @code{FILE*} stdio file pointer is, however maintained as protected.
-Classes derived from File may only use the IO operations provided by File,
-which encompass essentially all stdio capabilities.
-
-The class contains four general kinds of functions: methods for binding
-@code{File}s to physical Unix files, basic IO methods, file and buffer
-control methods, and methods for maintaining logical and physical file
-status.
-
-
-Binding and related tasks are accomplished via @code{File} constructors and
-destructors, and member functions @code{open, close, remove, filedesc,
-name, setname}.
-
-If a file name is provided in a constructor or open, it is
-maintained as class variable @code{nm} and is accessible
-via @code{name}. If no name is provided, then @code{nm} remains
-null, except that @code{Files} bound to the default files stdin,
-stdout, and stderr are automatically given the names
-@code{(stdin), (stdout), (stderr)} respectively.
-The function @code{setname} may be used to change the
-internal name of the @code{File}. This does not change the name
-of the physical file bound to the File.
-
-The member function @code{close} closes a file. The
-@code{~File} destructor closes a file if it is open, except
-that stdin, stdout, and stderr are flushed but left open for
-the system to close on program exit since some systems may
-require this, and on others it does not matter. @code{remove}
-closes the file, and then deletes it if possible by calling the
-system function to delete the file with the name provided in
-the @code{nm} field.
-
-@section Basic IO
-
-@itemize @bullet
-
-@item
-@code{read} and @code{write} perform binary IO via stdio
-@code{fread} and @code{fwrite}.
-
-@item
-@code{get} and @code{put} for chars invoke stdio @code{getc}
-and @code{putc} macros.
-
-@item
-@code{put(const char* s)} outputs a null-terminated string via
-stdio @code{fputs}.
-
-@item
-@code{unget} and @code{putback} are synonyms. Both call stdio
-@code{ungetc}.
-
-@end itemize
-
-@section File Control
-
-@code{flush}, @code{seek}, @code{tell}, and @code{tell} call the
-corresponding stdio functions.
-
-@code{flush(char)} and @code{fill()} call stdio @code{_flsbuf}
-and @code{_filbuf} respectively.
-
-@code{setbuf} is mainly useful to turn off buffering in cases
-where nonsequential binary IO is being performed. @code{raw} is a
-synonym for @code{setbuf(_IONBF)}. After a @code{f.raw()}, using
-the stdio functions instead of the system @code{read, write},
-etc., calls entails very little overhead. Moreover, these become
-fully compatible with intermixed system calls (e.g.,
-@code{lseek(f.filedesc(), 0, 0)}). While intermixing @code{File}
-and system IO calls is not at all recommended, this technique
-does allow the @code{File} class to be used in conjunction with
-other functions and libraries already set up to operate on file
-descriptors. @code{setbuf} should be called at most once after a
-constructor or open, but before any IO.
-
-@section File Status
-
-File status is maintained in several ways.
-
-A @code{File} may be checked for accessibility via
-@code{is_open()}, which returns true if the File is bound to a
-usable physical file, @code{readable()}, which returns true if
-the File can be read from (opened for reading, and not in a
-_fail state), or @code{writable()}, which returns true if the
-File can be written to.
-
-@code{File} operations return their status via two means: failure and
-success are represented via the logical state. Also, the
-return values of invoked stdio and system functions that
-return useful numeric values (not just failure/success flags)
-are held in a class variable accessible via @code{iocount}.
-(This is useful, for example, in determining the number of
-items actually read by the @code{read} function.)
-
-Like the AT&T i/o-stream classes, but unlike the description in
-the Stroustrup book, p238, @code{rdstate()} returns the bitwise
-OR of @code{_eof}, @code{_fail} and @code{_bad}, not necessarily
-distinct values. The functions @code{eof()}, @code{fail()},
-@code{bad()}, and @code{good()} can be used to test for each of
-these conditions independently.
-
-@code{_fail} becomes set for any input operation that could not
-read in the desired data, and for other failed operations. As
-with all Unix IO, @code{_eof} becomes true only when an input
-operations fails because of an end of file. Therefore,
-@code{_eof} is not immediately true after the last successful
-read of a file, but only after one final read attempt. Thus, for
-input operations, @code{_fail} and @code{_eof} almost always
-become true at the same time. @code{bad} is set for unbound
-files, and may also be set by applications in order to communicate
-input corruption. Conversely, @code{_good} is defined as 0 and
-is returned by @code{rdstate()} if all is well.
-
-The state may be modified via @code{clear(flag)}, which,
-despite its name, sets the corresponding state_value flag.
-@code{clear()} with no arguments resets the state to @code{_good}.
-@code{failif(int cond)} sets the state to @code{_fail} only if
-@code{cond} is true.
-
-Errors occuring during constructors and file opens also invoke the
-function @code{error}. @code{error} in turn calls a resetable error
-handling function pointed to by the non-member global variable
-@code{File_error_handler} only if a system error has been generated.
-Since @code{error} cannot tell if the current system error is actually
-responsible for a failure, it may at times print out spurious messages.
-Three error handlers are provided. The default,
-@code{verbose_File_error_handler} calls the system function
-@code{perror} to print the corresponding error message on standard
-error, and then returns to the caller. @code{quiet_File_error_handler}
-does nothing, and simply returns. @code{fatal_File_error_handler}
-prints the error and then aborts execution. These three handlers, or any
-other user-defined error handlers can be selected via the non-member
-function @code{set_File_error_handler}.
-
-All read and write operations communicate either logical or
-physical failure by setting the @code{_fail} flag. All further
-operations are blocked if the state is in a @code{_fail} or@code{_bad}
-condition. Programmers must explicitly use @code{clear()} to
-reset the state in order to continue IO processing after
-either a logical or physical failure. C programmers who are
-unfamiliar with these conventions should note that, unlike
-the stdio library, @code{File} functions indicate IO success,
-status, or failure solely through the state, not via return values of
-the functions. The @code{void*} operator or @code{rdstate()}
-may be used to test success. In particular, according to c++
-conversion rules, the @code{void*} coercion is automatically
-applied whenever the @code{File&} return value of any @code{File}
-function is tested in an @code{if} or @code{while}. Thus,
-for example, an easy way to copy all of stdin to stdout until
-eof (at which point @code{get} fails) or some error is
-@code{char c; while(cin.get(c) && cout.put(c));}.
-
-@ignore
-@section The istream and ostream classes
-
-Some of these are supported by incorporating additional,
-mainly virtual, functions into streambufs:
-
-@table @code
-
-@item streambuf::open([various args])
-attaches the streambuf to a file, if applicable
-
-@item streambuf::close()
-detaches the streambuf from a file, if applicable.
-
-@item streambuf::sputs(const char* s)
-outputs null-terminated string s in a generally faster way
-than repeated @code{sputcs}.
-
-@item streambuf::sputsn(const char* s, int n)
-outputs the first n characters of s in a generally faster way
-than repeated @code{sputcs}.
-
-@end table
-@end ignore
-
-The current version of istreams and ostreams differs significantly
-from previous versions in order to obtain compatibility with
-AT&T 1.2 streams. Most code using previous versions should still
-work. However, the following features of @code{File} are not
-incorporated in streams (they are still present in @code{File}):
-@code{scan(const char* fmt...), remove(), read(), write(),
-setbuf(), raw()}. Additionally, the feature of previous streams
-that allowed free intermixing of stream and stdio input and output
-is no longer guaranteed to always behave as desired.
-
-@node Obstack, AllocRing, Stream, Top
-@chapter The Obstack class
-
-
-The @code{Obstack} class is a simple rewrite of the C obstack macros and
-functions provided in the GNU CC compiler source distribution.
-
-Obstacks provide a simple method of creating and maintaining a string
-table, optimized for the very frequent task of building strings
-character-by-character, and sometimes keeping them, and sometimes
-not. They seem especially useful in any parsing application. One of the
-test files demonstrates usage.
-
-A brief summary:
-@table @code
-
-@item grow
-places something on the obstack without committing to wrap
-it up as a single entity yet.
-
-@item finish
-wraps up a constructed object as a single entity,
-and returns the pointer to its start address.
-
-@item copy
-places things on the obstack, and @emph{does} wrap them up.
-@code{copy} is always equivalent to first grow, then finish.
-
-@item free
-deletes something, and anything else put on the obstack since its creation.
-@end table
-
-The other functions are less commonly needed:
-@table @code
-@item blank
-is like grow, except it just grows the space by size units
-without placing anything into this space
-@item alloc
-is like @code{blank}, but it wraps up the object and returns its starting
-address.
-@item chunk_size, base, next_free, alignment_mask, size, room
-returns the appropriate class variables.
-@item grow_fast
-places a character on the obstack without checking if there is enough room.
-@item blank_fast
-like @code{blank}, but without checking if there is enough room.
-@item shrink(int n)
-shrink the current chunk by n bytes.
-@item contains(void* addr)
-returns true if the Obstack holds the address addr.
-@end table
-
-Here is a lightly edited version of the original C documentation:
-
-These functions operate a stack of objects. Each object starts life
-small, and may grow to maturity. (Consider building a word syllable
-by syllable.) An object can move while it is growing. Once it has
-been ``finished'' it never changes address again. So the ``top of the
-stack'' is typically an immature growing object, while the rest of the
-stack is of mature, fixed size and fixed address objects.
-
-These routines grab large chunks of memory, using the GNU C++ @code{new}
-operator. On occasion, they free chunks, via @code{delete}.
-
-Each independent stack is represented by a Obstack.
-
-One motivation for this package is the problem of growing char strings
-in symbol tables. Unless you are a ``fascist pig with a read-only mind''
-[Gosper's immortal quote from HAKMEM item 154, out of context] you
-would not like to put any arbitrary upper limit on the length of your
-symbols.
-
-In practice this often means you will build many short symbols and a
-few long symbols. At the time you are reading a symbol you don't know
-how long it is. One traditional method is to read a symbol into a
-buffer, @code{realloc()}ating the buffer every time you try to read a
-symbol that is longer than the buffer. This is beaut, but you still will
-want to copy the symbol from the buffer to a more permanent
-symbol-table entry say about half the time.
-
-With obstacks, you can work differently. Use one obstack for all symbol
-names. As you read a symbol, grow the name in the obstack gradually.
-When the name is complete, finalize it. Then, if the symbol exists already,
-free the newly read name.
-
-The way we do this is to take a large chunk, allocating memory from
-low addresses. When you want to build a symbol in the chunk you just
-add chars above the current ``high water mark'' in the chunk. When you
-have finished adding chars, because you got to the end of the symbol,
-you know how long the chars are, and you can create a new object.
-Mostly the chars will not burst over the highest address of the chunk,
-because you would typically expect a chunk to be (say) 100 times as
-long as an average object.
-
-In case that isn't clear, when we have enough chars to make up
-the object, @emph{they are already contiguous in the chunk} (guaranteed)
-so we just point to it where it lies. No moving of chars is
-needed and this is the second win: potentially long strings need
-never be explicitly shuffled. Once an object is formed, it does not
-change its address during its lifetime.
-
-When the chars burst over a chunk boundary, we allocate a larger
-chunk, and then copy the partly formed object from the end of the old
-chunk to the beginning of the new larger chunk. We then carry on
-accreting characters to the end of the object as we normally would.
-
-A special version of grow is provided to add a single char at a time
-to a growing object.
-
-Summary:
-
-@itemize @bullet
-@item
-We allocate large chunks.
-@item
-We carve out one object at a time from the current chunk.
-@item
-Once carved, an object never moves.
-@item
-We are free to append data of any size to the currently growing object.
-@item
-Exactly one object is growing in an obstack at any one time.
-@item
-You can run one obstack per control block.
-@item
-You may have as many control blocks as you dare.
-@item
-Because of the way we do it, you can `unwind' a obstack back to a
-previous state. (You may remove objects much as you would with a stack.)
-@end itemize
-
-The obstack data structure is used in many places in the GNU C++ compiler.
-
-Differences from the the GNU C version
-@enumerate
-@item
-The obvious differences stemming from the use of classes and
-inline functions instead of structs and macros. The C
-@code{init} and @code{begin} macros are replaced by constructors.
-
-@item
-Overloaded function names are used for grow (and others),
-rather than the C @code{grow}, @code{grow0}, etc.
-
-@item
-All dynamic allocation uses the the built-in @code{new} operator.
-This restricts flexibility by a little, but maintains compatibility
-with usual C++ conventions.
-
-@item
-There are now two versions of finish:
-
-@enumerate
-@item
-finish() behaves like the C version.
-
-@item
-finish(char terminator) adds @code{terminator}, and then calls
-@code{finish()}. This enables the normal invocation of @code{finish(0)} to
-wrap up a string being grown character-by-character.
-@end enumerate
-
-@item
-There are special versions of grow(const char* s) and
-copy(const char* s) that add the null-terminated string @code{s}
-after computing its length.
-
-@item
-The shrink and contains functions are provided.
-
-@end enumerate
-
-@node AllocRing, String, Obstack, Top
-@chapter The AllocRing class
-
-An AllocRing is a bounded ring (circular list), each of whose elements
-contains a pointer to some space allocated via @code{new
-char[some_size]}. The entries are used cyclicly. The size, n, of the
-ring is fixed at construction. After that, every nth use of the ring
-will reuse (or reallocate) the same space. AllocRings are needed in
-order to temporarily hold chunks of space that are needed transiently,
-but across constructor-destructor scopes. They mainly useful for storing
-strings containing formatted characters to print across various
-functions and coercions. These strings are needed across routines, so
-may not be deleted in any one of them, but should be recovered at some
-point. In other words, an AllocRing is an extremely simple minded
-garbage collection mechanism. The GNU C++ library used to use one
-AllocRing for such formatting purposes, but it is being phased out,
-and is now only used by obsolete functions.
-These days, AllocRings are probably not very useful.
-
-Support includes:
-
-@table @code
-
-@item AllocRing a(int n)
-constructs an Alloc ring with n entries, all null.
-
-@item void* mem = a.alloc(sz)
-moves the ring pointer to the next entry, and reuses the space
-if their is enough, also allocates space via new char[sz].
-
-@item int present = a.contains(void* ptr)
-returns true if ptr is held in one of the ring entries.
-
-@item a.clear()
-deletes all space pointed to in any entry. This is called
-automatically upon destruction.
-
-@item a.free(void* ptr)
-If ptr is one of the entries, calls delete of the pointer,
-and resets to entry pointer to null.
-
-@end table
-
-@node String, Integer, AllocRing, Top
-@chapter The String class
-
-The @code{String} class is designed to extend GNU C++ to support
-string processing capabilities similar to those in languages like
-Awk. The class provides facilities that ought to be convenient
-and efficient enough to be useful replacements for @code{char*}
-based processing via the C string library (i.e., @code{strcpy,
-strcmp,} etc.) in many applications. Many details about String
-representations are described in the Representation section.
-
-A separate @code{SubString} class supports substring extraction
-and modification operations. This is implemented in a way that
-user programs never directly construct or represent substrings,
-which are only used indirectly via String operations.
-
-Another separate class, @code{Regex} is also used indirectly via String
-operations in support of regular expression searching, matching, and the
-like. The Regex class is based entirely on the GNU Emacs regex
-functions. @xref{Regexps, Syntax of Regular Expressions, Syntax of
-Regular Expressions, emacs.info, GNU Emacs Manual}, for a full
-explanation of regular expression syntax. (For implementation details,
-see the internal documentation in files @file{regex.h} and
-@file{regex.c}.)
-
-@section Constructors
-
-Strings are initialized and assigned as in the following examples:
-
-@table @code
-
-@item String x; String y = 0; String z = "";
-Set x, y, and z to the nil string. Note that either 0 or "" may
-always be used to refer to the nil string.
-
-@item String x = "Hello"; String y("Hello");
-Set x and y to a copy of the string "Hello".
-
-@item String x = 'A'; String y('A');
-Set x and y to the string value "A"
-
-@item String u = x; String v(x);
-Set u and v to the same string as String x
-
-@item String u = x.at(1,4); String v(x.at(1,4));
-Set u and v to the length 4 substring of x starting at position 1
-(counting indexes from 0).
-
-@item String x("abc", 2);
-Sets x to "ab", i.e., the first 2 characters of "abc".
-
-@item String x = dec(20);
-Sets x to "20". As here, Strings may be initialized or assigned
-the results of any @code{char*} function.
-
-@end table
-
-There are no directly accessible forms for declaring SubString
-variables.
-
-The declaration @code{Regex r("[a-zA-Z_][a-zA-Z0-9_]*");} creates
-a compiled regular expression suitable for use in String
-operations described below. (In this case, one that matches any
-C++ identifier). The first argument may also be a String.
-Be careful in distinguishing the role of backslashes in quoted
-GNU C++ char* constants versus those in Regexes. For example, a Regex
-that matches either one or more tabs or all strings beginning
-with "ba" and ending with any number of occurrences of "na"
-could be declared as @code{Regex r = "\\(\t+\\)\\|\\(ba\\(na\\)*\\)"}
-Note that only one backslash is needed to signify the tab, but
-two are needed for the parenthesization and virgule, since the
-GNU C++ lexical analyzer decodes and strips backslashes before
-they are seen by Regex.
-
-There are three additional optional arguments to the Regex constructor
-that are less commonly useful:
-
-@table @code
-@item fast (default 0)
-@code{fast} may be set to true (1) if the Regex should be
-"fast-compiled". This causes an additional compilation step that
-is generally worthwhile if the Regex will be used many times.
-
-@item bufsize (default max(40, length of the string))
-This is an estimate of the size of the internal compiled
-expression. Set it to a larger value if you know that the
-expression will require a lot of space. If you do not know,
-do not worry: realloc is used if necessary.
-
-@item transtable (default none == 0)
-The address of a byte translation table (a char[256]) that
-translates each character before matching.
-
-@end table
-
-As a convenience, several Regexes are predefined and usable in
-any program. Here are their declarations from @file{String.h}.
-
-@smallexample
-extern Regex RXwhite; // = "[ \n\t]+"
-extern Regex RXint; // = "-?[0-9]+"
-extern Regex RXdouble; // = "-?\\(\\([0-9]+\\.[0-9]*\\)\\|
- // \\([0-9]+\\)\\|
- // \\(\\.[0-9]+\\)\\)
- // \\([eE][---+]?[0-9]+\\)?"
-extern Regex RXalpha; // = "[A-Za-z]+"
-extern Regex RXlowercase; // = "[a-z]+"
-extern Regex RXuppercase; // = "[A-Z]+"
-extern Regex RXalphanum; // = "[0-9A-Za-z]+"
-extern Regex RXidentifier; // = "[A-Za-z_][A-Za-z0-9_]*"
-
-@end smallexample
-
-@section Examples
-
-Most @code{String} class capabilities are best shown via example.
-The examples below use the following declarations.
-
-@example
- String x = "Hello";
- String y = "world";
- String n = "123";
- String z;
- char* s = ",";
- String lft, mid, rgt;
- Regex r = "e[a-z]*o";
- Regex r2("/[a-z]*/");
- char c;
- int i, pos, len;
- double f;
- String words[10];
- words[0] = "a";
- words[1] = "b";
- words[2] = "c";
-
-@end example
-
-@section Comparing, Searching and Matching
-
-The usual lexicographic relational operators (@code{==, !=, <, <=, >, >=})
-are defined. A functional form @code{compare(String, String)} is also
-provided, as is @code{fcompare(String, String)}, which compares
-Strings without regard for upper vs. lower case.
-
-All other matching and searching operations are based on some form of the
-(non-public) @code{match} and @code{search} functions. @code{match} and
-@code{search} differ in that @code{match} attempts to match only at the
-given starting position, while @code{search} starts at the position, and
-then proceeds left or right looking for a match. As seen in the following
-examples, the second optional @code{startpos} argument to functions using
-@code{match} and @code{search} specifies the starting position of the
-search: If non-negative, it results in a left-to-right search starting at
-position @code{startpos}, and if negative, a right-to-left search starting
-at position @code{x.length() + startpos}. In all cases, the index returned
-is that of the beginning of the match, or -1 if there is no match.
-
-Three String functions serve as front ends to @code{search} and @code{match}.
-@code{index} performs a search, returning the index, @code{matches} performs
-a match, returning nonzero (actually, the length of the match) on success,
-and @code{contains} is a boolean function performing either a search or
-match, depending on whether an index argument is provided:
-
-@table @code
-
-@item x.index("lo")
-returns the zero-based index of the leftmost occurrence of
-substring "lo" (3, in this case). The argument may be a
-String, SubString, char, char*, or Regex.
-
-@item x.index("l", 2)
-returns the index of the first of the leftmost occurrence of "l"
-found starting the search at position x[2], or 2 in this case.
-
-@item x.index("l", -1)
-returns the index of the rightmost occurrence of "l", or 3 here.
-
-@item x.index("l", -3)
-returns the index of the rightmost occurrence of "l" found by
-starting the search at the 3rd to the last position of x,
-returning 2 in this case.
-
-@item pos = r.search("leo", 3, len, 0)
-returns the index of r in the @code{char*} string of length 3,
-starting at position 0, also placing the length of the match
-in reference parameter len.
-
-@item x.contains("He")
-returns nonzero if the String x contains the substring "He". The
-argument may be a String, SubString, char, char*, or Regex.
-
-@item x.contains("el", 1)
-returns nonzero if x contains the substring "el" at position 1.
-As in this example, the second argument to @code{contains},
-if present, means to match the substring only at that position,
-and not to search elsewhere in the string.
-
-@item x.contains(RXwhite);
-returns nonzero if x contains any whitespace (space, tab, or
-newline). Recall that @code{RXwhite} is a global whitespace Regex.
-
-@item x.matches("lo", 3)
-returns nonzero if x starting at position 3 exactly matches "lo", with
-no trailing characters (as it does in this example).
-
-@item x.matches(r)
-returns nonzero if String x as a whole matches Regex r.
-
-@item int f = x.freq("l")
-returns the number of distinct, nonoverlapping matches to the argument
-(2 in this case).
-
-@end table
-
-@section Substring extraction
-
-Substrings may be extracted via the @code{at}, @code{before},
-@code{through}, @code{from}, and @code{after} functions.
-These behave as either lvalues or rvalues.
-
-@table @code
-
-@item z = x.at(2, 3)
-sets String z to be equal to the length 3 substring of String x
-starting at zero-based position 2, setting z to "llo" in this
-case. A nil String is returned if the arguments don't make sense.
-
-@item x.at(2, 2) = "r"
-Sets what was in positions 2 to 3 of x to "r", setting x to
-"Hero" in this case. As indicated here, SubString assignments may
-be of different lengths.
-
-@item x.at("He") = "je";
-x("He") is the substring of x that matches the first occurrence of
-it's argument. The substitution sets x to "jello". If "He" did
-not occur, the substring would be nil, and the assignment would
-have no effect.
-
-@item x.at("l", -1) = "i";
-replaces the rightmost occurrence of "l" with "i", setting x to
-"Helio".
-
-@item z = x.at(r)
-sets String z to the first match in x of Regex r, or "ello" in this
-case. A nil String is returned if there is no match.
-
-@item z = x.before("o")
-sets z to the part of x to the left of the first occurrence of
-"o", or "Hell" in this case. The argument may also be a String,
-SubString, or Regex. (If there is no match, z is set to "".)
-
-@item x.before("ll") = "Bri";
-sets the part of x to the left of "ll" to "Bri", setting x to
-"Brillo".
-
-@item z = x.before(2)
-sets z to the part of x to the left of x[2], or "He" in this
-case.
-
-@item z = x.after("Hel")
-sets z to the part of x to the right of "Hel", or "lo" in this
-case.
-
-@item z = x.through("el")
-sets z to the part of x up and including "el", or "Hel" in this case.
-
-@item z = x.from("el")
-sets z to the part of x from "el" to the end, or "ello" in this case.
-
-@item x.after("Hel") = "p";
-sets x to "Help";
-
-@item z = x.after(3)
-sets z to the part of x to the right of x[3] or "o" in this case.
-
-@item z = " ab c"; z = z.after(RXwhite)
-sets z to the part of its old string to the right of the first
-group of whitespace, setting z to "ab c"; Use gsub(below) to
-strip out multiple occurrences of whitespace or any pattern.
-
-@item x[0] = 'J';
-sets the first element of x to 'J'. x[i] returns a reference to
-the ith element of x, or triggers an error if i is out of range.
-
-@item common_prefix(x, "Help")
-returns the String containing the common prefix of the two Strings
-or "Hel" in this case.
-
-@item common_suffix(x, "to")
-returns the String containing the common suffix of the two Strings
-or "o" in this case.
-
-@end table
-
-@section Concatenation
-
-@table @code
-
-@item z = x + s + ' ' + y.at("w") + y.after("w") + ".";
-sets z to "Hello, world."
-
-@item x += y;
-sets x to "Helloworld"
-
-@item cat(x, y, z)
-A faster way to say z = x + y.
-
-@item cat(z, y, x, x)
-Double concatenation; A faster way to say x = z + y + x.
-
-@item y.prepend(x);
-A faster way to say y = x + y.
-
-@item z = replicate(x, 3);
-sets z to "HelloHelloHello".
-
-@item z = join(words, 3, "/")
-sets z to the concatenation of the first 3 Strings in String
-array words, each separated by "/", setting z to "a/b/c" in this
-case. The last argument may be "" or 0, indicating no separation.
-
-@end table
-
-@section Other manipulations
-
-@table @code
-
-@item z = "this string has five words"; i = split(z, words, 10, RXwhite);
-sets up to 10 elements of String array words to the parts of z
-separated by whitespace, and returns the number of parts actually
-encountered (5 in this case). Here, words[0] = "this", words[1] =
-"string", etc. The last argument may be any of the usual.
-If there is no match, all of z ends up in words[0]. The words array
-is @emph{not} dynamically created by split.
-
-@item int nmatches x.gsub("l","ll")
-substitutes all original occurrences of "l" with "ll", setting x
-to "Hellllo". The first argument may be any of the usual,
-including Regex. If the second argument is "" or 0, all
-occurrences are deleted. gsub returns the number of matches
-that were replaced.
-
-@item z = x + y; z.del("loworl");
-deletes the leftmost occurrence of "loworl" in z, setting z to
-"Held".
-
-@item z = reverse(x)
-sets z to the reverse of x, or "olleH".
-
-@item z = upcase(x)
-sets z to x, with all letters set to uppercase, setting z to "HELLO"
-
-@item z = downcase(x)
-sets z to x, with all letters set to lowercase, setting z to "hello"
-
-@item z = capitalize(x)
-sets z to x, with the first letter of each word set to uppercase,
-and all others to lowercase, setting z to "Hello"
-
-@item x.reverse(), x.upcase(), x.downcase(), x.capitalize()
-in-place, self-modifying versions of the above.
-
-@end table
-
-@section Reading, Writing and Conversion
-
-@table @code
-
-@item cout << x
-writes out x.
-
-@item cout << x.at(2, 3)
-writes out the substring "llo".
-
-@item cin >> x
-reads a whitespace-bounded string into x.
-
-@item x.length()
-returns the length of String x (5, in this case).
-
-@item s = (const char*)x
-can be used to extract the @code{char*} char array. This
-coercion is useful for sending a String as an argument to any
-function expecting a @code{const char*} argument (like
-@code{atoi}, and @code{File::open}). This operator must be
-used with care, since the conversion returns a pointer
-to @code{String} internals without copying the characters:
-The resulting @code{(char*)} is only valid until
-the next String operation, and you must not modify it.
-(The conversion is defined to return a const
-value so that GNU C++ will produce warning and/or error
-messages if changes are attempted.)
-
-@end table
-
-@node Integer, Rational, String, Top
-@chapter The Integer class.
-
-The @code{Integer} class provides multiple precision integer arithmetic
-facilities. Some representation details are discussed in the
-Representation section.
-
-@code{Integers} may be up to @code{b * ((1 << b) - 1)} bits long, where
-@code{b} is the number of bits per short (typically 1048560 bits when
-@code{b = 16}). The implementation assumes that a @code{long} is at least
-twice as long as a @code{short}. This assumption hides beneath almost all
-primitive operations, and would be very difficult to change. It also relies
-on correct behavior of @emph{unsigned} arithmetic operations.
-
-Some of the arithmetic algorithms are very loosely based on those
-provided in the MIT Scheme @file{bignum.c} release, which is
-Copyright (c) 1987 Massachusetts Institute of Technology. Their use
-here falls within the provisions described in the Scheme release.
-
-Integers may be constructed in the following ways:
-@table @code
-
-@item Integer x;
-Declares an uninitialized Integer.
-
-@item Integer x = 2; Integer y(2);
-Set x and y to the Integer value 2;
-
-@item Integer u(x); Integer v = x;
-Set u and v to the same value as x.
-
-@end table
-
-@deftypefn Method long Integer::as_long() const
-Used to coerce an @code{Integer} back into longs via the @code{long}
-coercion operator. If the Integer cannot fit into a long, this returns
-MINLONG or MAXLONG (depending on the sign) where MINLONG is the most
-negative, and MAXLONG is the most positive representable long.
-@end deftypefn
-
-@deftypefn Method int Integer::fits_in_long() const
-Returns true iff the @code{Integer} is @code{< MAXLONG} and @code{> MINLONG}.
-@end deftypefn
-
-@deftypefn Method double Integer::as_double() const
-Coerce the @code{Integer} to a @code{double}, with potential
-loss of precision.
-@code{+/-HUGE} is returned if the Integer cannot fit into a double.
-@end deftypefn
-
-@deftypefn Method int Integer::fits_in_double() const
-Returns true iff the @code{Integer} can fit into a double.
-@end deftypefn
-
-All of the usual arithmetic operators are provided (@code{+, -, *, /,
-%, +=, ++, -=, --, *=, /=, %=, ==, !=, <, <=, >, >=}). All operators
-support special versions for mixed arguments of Integers and regular
-C++ longs in order to avoid useless coercions, as well as to allow
-automatic promotion of shorts and ints to longs, so that they may be
-applied without additional Integer coercion operators. The only
-operators that behave differently than the corresponding int or long
-operators are @code{++} and @code{--}. Because C++ does not
-distinguish prefix from postfix application, these are declared as
-@code{void} operators, so that no confusion can result from applying
-them as postfix. Thus, for Integers x and y, @code{ ++x; y = x; } is
-correct, but @code{ y = ++x; } and @code{ y = x++; } are not.
-
-Bitwise operators (@code{~}, @code{&}, @code{|}, @code{^}, @code{<<},
-@code{>>}, @code{&=}, @code{|=}, @code{^=}, @code{<<=}, @code{>>=}) are
-also provided. However, these operate on sign-magnitude, rather than
-two's complement representations. The sign of the result is arbitrarily
-taken as the sign of the first argument. For example, @code{Integer(-3)
-& Integer(5)} returns @code{Integer(-1)}, not -3, as it would using
-two's complement. Also, @code{~}, the complement operator, complements
-only those bits needed for the representation. Bit operators are also
-provided in the BitSet and BitString classes. One of these classes
-should be used instead of Integers when the results of bit manipulations
-are not interpreted numerically.
-
-The following utility functions are also provided. (All arguments
-are Integers unless otherwise noted).
-
-@deftypefun void divide(const Integer& @var{x}, const Integer& @var{y}, Integer& @var{q}, Integer& @var{r})
-Sets @var{q} to the quotient and @var{r} to the remainder of @var{x} and @var{y}.
-(@var{q} and @var{r} are returned by reference).
-@end deftypefun
-
-@deftypefun Integer pow(const Integer& @var{x}, const Integer& @var{p})
-Returns @var{x} raised to the power @var{p}.
-@end deftypefun
-
-@deftypefun Integer Ipow(long @var{x}, long @var{p})
-Returns @var{x} raised to the power @var{p}.
-@end deftypefun
-
-@deftypefun Integer gcd(const Integer& @var{x}, const Integer& @var{p})
-Returns the greatest common divisor of @var{x} and @var{y}.
-@end deftypefun
-
-@deftypefun Integer lcm(const Integer& @var{x}, const Integer& @var{p})
-Returns the least common multiple of @var{x} and @var{y}.
-@end deftypefun
-
-@deftypefun Integer abs(const Integer& @var{x}
-Returns the absolute value of @var{x}.
-@end deftypefun
-
-@deftypefn Method void Integer::negate()
-Negates @code{this} in place.
-@end deftypefn
-
-@table @code
-
-@item Integer sqr(x)
-returns x * x;
-
-@item Integer sqrt(x)
-returns the floor of the square root of x.
-
-@item long lg(x);
-returns the floor of the base 2 logarithm of abs(x)
-
-@item int sign(x)
-returns -1 if x is negative, 0 if zero, else +1.
-Using @code{if (sign(x) == 0)} is a generally faster method
-of testing for zero than using relational operators.
-
-@item int even(x)
-returns true if x is an even number
-
-@item int odd(x)
-returns true if x is an odd number.
-
-@item void setbit(Integer& x, long b)
-sets the b'th bit (counting right-to-left from zero) of x to 1.
-
-@item void clearbit(Integer& x, long b)
-sets the b'th bit of x to 0.
-
-@item int testbit(Integer x, long b)
-returns true if the b'th bit of x is 1.
-
-@item Integer atoI(char* asciinumber, int base = 10);
-converts the base base char* string into its Integer form.
-
-@item void Integer::printon(ostream& s, int base = 10, int width = 0);
-prints the ascii string value of @code{(*this)} as a base @code{base}
-number, in field width at least @code{width}.
-
-@item ostream << x;
-prints x in base ten format.
-
-@item istream >> x;
-reads x as a base ten number.
-
-@item int compare(Integer x, Integer y)
-returns a negative number if xy.
-
-@item int ucompare(Integer x, Integer y)
-like compare, but performs unsigned comparison.
-
-@item add(x, y, z)
-A faster way to say z = x + y.
-
-@item sub(x, y, z)
-A faster way to say z = x - y.
-
-@item mul(x, y, z)
-A faster way to say z = x * y.
-
-@item div(x, y, z)
-A faster way to say z = x / y.
-
-@item mod(x, y, z)
-A faster way to say z = x % y.
-
-@item and(x, y, z)
-A faster way to say z = x & y.
-
-@item or(x, y, z)
-A faster way to say z = x | y.
-
-@item xor(x, y, z)
-A faster way to say z = x ^ y.
-
-@item lshift(x, y, z)
-A faster way to say z = x << y.
-
-@item rshift(x, y, z)
-A faster way to say z = x >> y.
-
-@item pow(x, y, z)
-A faster way to say z = pow(x, y).
-
-@item complement(x, z)
-A faster way to say z = ~x.
-
-@item negate(x, z)
-A faster way to say z = -x.
-
-@end table
-
-@node Rational, Complex, Integer, Top
-@chapter The Rational Class
-
-Class @code{Rational} provides multiple precision rational
-number arithmetic. All rationals are maintained in simplest
-form (i.e., with the numerator and denominator relatively
-prime, and with the denominator strictly positive).
-Rational arithmetic and relational operators are provided
-(@code{+, -, *, /, +=, -=, *=, /=, ==, !=, <, <=, >, >=}).
-Operations resulting in a rational number with zero denominator
-trigger an exception.
-
-Rationals may be constructed and used in the following ways:
-
-@table @code
-
-@item Rational x;
-Declares an uninitialized Rational.
-
-@item Rational x = 2; Rational y(2);
-Set x and y to the Rational value 2/1;
-
-@item Rational x(2, 3);
-Sets x to the Rational value 2/3;
-
-@item Rational x = 1.2;
-Sets x to a Rational value close to 1.2. Any double precision value
-may be used to construct a Rational. The Rational will possess
-exactly as much precision as the double. Double values that do
-not have precise floating point equivalents (like 1.2) produce
-similarly imprecise rational values.
-
-@item Rational x(Integer(123), Integer(4567));
-Sets x to the Rational value 123/4567.
-
-@item Rational u(x); Rational v = x;
-Set u and v to the same value as x.
-
-@item double(Rational x)
-A Rational may be coerced to a double with potential
-loss of precision. +/-HUGE is returned if it will not fit.
-
-@item Rational abs(x)
-returns the absolute value of x.
-
-@item void x.negate()
-negates x.
-
-@item void x.invert()
-sets x to 1/x.
-
-@item int sign(x)
-returns 0 if x is zero, 1 if positive, and -1 if negative.
-
-@item Rational sqr(x)
-returns x * x.
-
-@item Rational pow(x, Integer y)
-returns x to the y power.
-
-@item Integer x.numerator()
-returns the numerator.
-
-@item Integer x.denominator()
-returns the denominator.
-
-@item Integer floor(x)
-returns the greatest Integer less than x.
-
-@item Integer ceil(x)
-returns the least Integer greater than x.
-
-@item Integer trunc(x)
-returns the Integer part of x.
-
-@item Integer round(x)
-returns the nearest Integer to x.
-
-@item int compare(x, y)
-returns a negative, zero, or positive number signifying whether x is
-less than, equal to, or greater than y.
-
-@item ostream << x;
-prints x in the form num/den, or just num if the denominator is one.
-
-@item istream >> x;
-reads x in the form num/den, or just num in which case the
-denominator is set to one.
-
-@item add(x, y, z)
-A faster way to say z = x + y.
-
-@item sub(x, y, z)
-A faster way to say z = x - y.
-
-@item mul(x, y, z)
-A faster way to say z = x * y.
-
-@item div(x, y, z)
-A faster way to say z = x / y.
-
-@item pow(x, y, z)
-A faster way to say z = pow(x, y).
-
-@item negate(x, z)
-A faster way to say z = -x.
-
-@end table
-
-@node Complex, Fix, Rational, Top
-@chapter The Complex class.
-
-Class @code{Complex} is implemented in a way similar to that
-described by Stroustrup. In keeping with libg++ conventions,
-the class is named @code{Complex}, not @code{complex}.
-Complex arithmetic and relational operators are provided
-(@code{+, -, *, /, +=, -=, *=, /=, ==, !=}).
-Attempted division by (0, 0) triggers an exception.
-
-Complex numbers may be constructed and used in the following ways:
-
-@table @code
-
-@item Complex x;
-Declares an uninitialized Complex.
-
-@item Complex x = 2; Complex y(2.0);
-Set x and y to the Complex value (2.0, 0.0);
-
-@item Complex x(2, 3);
-Sets x to the Complex value (2, 3);
-
-@item Complex u(x); Complex v = x;
-Set u and v to the same value as x.
-
-@item double real(Complex& x);
-returns the real part of x.
-
-@item double imag(Complex& x);
-returns the imaginary part of x.
-
-@item double abs(Complex& x);
-returns the magnitude of x.
-
-@item double norm(Complex& x);
-returns the square of the magnitude of x.
-
-@item double arg(Complex& x);
-returns the argument (amplitude) of x.
-
-@item Complex polar(double r, double t = 0.0);
-returns a Complex with abs of r and arg of t.
-
-@item Complex conj(Complex& x);
-returns the complex conjugate of x.
-
-@item Complex cos(Complex& x);
-returns the complex cosine of x.
-
-@item Complex sin(Complex& x);
-returns the complex sine of x.
-
-@item Complex cosh(Complex& x);
-returns the complex hyperbolic cosine of x.
-
-@item Complex sinh(Complex& x);
-returns the complex hyperbolic sine of x.
-
-@item Complex exp(Complex& x);
-returns the exponential of x.
-
-@item Complex log(Complex& x);
-returns the natural log of x.
-
-@item Complex pow(Complex& x, long p);
-returns x raised to the p power.
-
-@item Complex pow(Complex& x, Complex& p);
-returns x raised to the p power.
-
-@item Complex sqrt(Complex& x);
-returns the square root of x.
-
-@item ostream << x;
-prints x in the form (re, im).
-
-@item istream >> x;
-reads x in the form (re, im), or just (re) or re in which case the
-imaginary part is set to zero.
-
-@end table
-
-@node Fix, Bit, Complex, Top
-@chapter Fixed precision numbers
-
-Classes @code{Fix16}, @code{Fix24}, @code{Fix32}, and @code{Fix48}
-support operations on 16, 24, 32, or 48 bit quantities that are
-considered as real numbers in the range [-1, +1). Such numbers are
-often encountered in digital signal processing applications. The classes
-may be be used in isolation or together. Class @code{Fix32}
-operations are entirely self-contained. Class @code{Fix16} operations
-are self-contained except that the multiplication operation @code{Fix16
-* Fix16} returns a @code{Fix32}. @code{Fix24} and @code{Fix48} are
-similarly related.
-
-The standard arithmetic and relational operations are supported
-(@code{=}, @code{+}, @code{-}, @code{*}, @code{/}, @code{<<}, @code{>>},
-@code{+=}, @code{-=}, @code{*=}, @code{/=}, @code{<<=}, @code{>>=},
-@code{==}, @code{!=}, @code{<}, @code{<=}, @code{>}, @code{>=}).
-All operations include provisions for special handling in cases where
-the result exceeds +/- 1.0. There are two cases that may be handled
-separately: ``overflow'' where the results of addition and subtraction
-operations go out of range, and all other ``range errors'' in which
-resulting values go off-scale (as with division operations, and
-assignment or initialization with off-scale values). In signal
-processing applications, it is often useful to handle these two cases
-differently. Handlers take one argument, a reference to the integer
-mantissa of the offending value, which may then be manipulated. In
-cases of overflow, this value is the result of the (integer) arithmetic
-computation on the mantissa; in others it is a fully saturated (i.e.,
-most positive or most negative) value. Handling may be reset to any of
-several provided functions or any other user-defined function via
-@code{set_overflow_handler} and @code{set_range_error_handler}. The
-provided functions for @code{Fix16} are as follows (corresponding
-functions are also supported for the others).
-
-@table @code
-
-@item Fix16_overflow_saturate
-The default overflow handler. Results are ``saturated'': positive results
-are set to the largest representable value (binary 0.111111...), and
-negative values to -1.0.
-
-@item Fix16_ignore
-Performs no action. For overflow, this will allow addition and
-subtraction operations to ``wrap around'' in the same manner
-as integer arithmetic, and for saturation, will leave values saturated.
-
-@item Fix16_overflow_warning_saturate
-Prints a warning message on standard error, then saturates the results.
-
-@item Fix16_warning
-The default range_error handler. Prints a warning message
-on standard error; otherwise leaving the argument unmodified.
-
-@item Fix16_abort
-prints an error message on standard error, then aborts execution.
-
-
-@end table
-
-In addition to arithmetic operations, the following are provided:
-
-@table @code
-
-@item Fix16 a = 0.5;
-Constructs fixed precision objects from double precision values.
-Attempting to initialize to a value outside the range invokes
-the range_error handler, except, as a convenience,
-initialization to 1.0 sets the variable to the most positive
-representable value (binary 0.1111111...) without invoking the handler.
-
-@item short& mantissa(a); long& mantissa(b);
-return a * pow(2, 15) or b * pow(2, 31) as an integer. These
-are returned by reference, to enable ``manual'' data manipulation.
-
-@item double value(a); double value(b);
-return a or b as floating point numbers.
-
-@end table
-
-@node Bit, Random, Fix, Top
-@chapter Classes for Bit manipulation
-
-libg++ provides several different classes supporting the use
-and manipulation of collections of bits in different ways.
-
-@itemize @bullet
-
-@item
-Class @code{Integer} provides ``integer'' semantics. It supports
-manipulation of bits in ways that are often useful when treating bit arrays
-as numerical (integer) quantities. This class is described elsewhere.
-
-@item
-Class @code{BitSet} provides ``set'' semantics. It supports operations
-useful when treating collections of bits as representing potentially
-infinite sets of integers.
-
-@item
-Class @code{BitSet32} supports fixed-length BitSets holding exactly
-32 bits.
-
-@item
-Class @code{BitSet256} supports fixed-length BitSets holding exactly
-256 bits.
-
-@item
-Class @code{BitString} provides ``string'' (or ``vector'') semantics.
-It supports operations useful when treating collections of bits as
-strings of zeros and ones.
-
-@end itemize
-
-These classes also differ in the following ways:
-
-@itemize @bullet
-
-
-@item
-BitSets are logically infinite. Their space is dynamically altered to
-adjust to the smallest number of consecutive bits actually required to
-represent the sets. Integers also have this property. BitStrings are
-logically finite, but their sizes are internally dynamically managed to
-maintain proper length. This means that, for example, BitStrings are
-concatenatable while BitSets and Integers are not.
-
-@item
-BitSet32 and BitSet256 have precisely the same properties as BitSets,
-except that they use constant fixed length bit vectors.
-
-@item
-While all classes support basic unary and binary operations @code{~, &,
-|, ^, -}, the semantics differ. BitSets perform bit operations that
-precisely mirror those for infinite sets. For example, complementing an
-empty BitSet returns one representing an infinite number of set bits.
-Operations on BitStrings and Integers operate only on those bits
-actually present in the representation. For BitStrings and Integers,
-the the @code{&} operation returns a BitString with a length equal to
-the minimum length of the operands, and @code{|, ^} return one with
-length of the maximum.
-
-@item
-Only BitStrings support substring extraction and bit pattern matching.
-
-@end itemize
-
-@section BitSet
-
-BitSets are objects that contain logically infinite sets of nonnegative
-integers. Representational details are discussed in the Representation
-chapter. Because they are logically infinite, all BitSets possess a
-trailing, infinitely replicated 0 or 1 bit, called the ``virtual bit'', and
-indicated via 0* or 1*.
-
-BitSet32 and BitSet256 have they same properties, except they are
-of fixed length, and thus have no virtual bit.
-
-BitSets may be constructed as follows:
-
-@table @code
-
-@item BitSet a;
-declares an empty BitSet.
-
-@item BitSet a = atoBitSet("001000");
-sets a to the BitSet 0010*, reading left-to-right. The ``0*''
-indicates that the set ends with an infinite number of zero
-(clear) bits.
-
-@item BitSet a = atoBitSet("00101*");
-sets a to the BitSet 00101*, where ``1*'' means that the set ends
-with an infinite number of one (set) bits.
-
-@item BitSet a = longtoBitSet((long)23);
-sets a to the BitSet 111010*, the binary representation of decimal 23.
-
-@item BitSet a = utoBitSet((unsigned)23);
-sets a to the BitSet 111010*, the binary representation of decimal 23.
-
-@end table
-
-The following functions and operators are provided (Assume the
-declaration of BitSets a = 0011010*, b = 101101*, throughout, as
-examples).
-
-@table @code
-
-@item ~a
-returns the complement of a, or 1100101* in this case.
-
-@item a.complement()
-sets a to ~a.
-
-@item a & b; a &= b;
-returns a intersected with b, or 0011010*.
-
-@item a | b; a |= b;
-returns a unioned with b, or 1011111*.
-
-@item a - b; a -= b;
-returns the set difference of a and b, or 000010*.
-
-@item a ^ b; a ^= b;
-returns the symmetric difference of a and b, or 1000101*.
-
-@item a.empty()
-returns true if a is an empty set.
-
-@item a == b;
-returns true if a and b contain the same set.
-
-@item a <= b;
-returns true if a is a subset of b.
-
-@item a < b;
-returns true if a is a proper subset of b;
-
-@item a != b; a >= b; a > b;
-are the converses of the above.
-
-@item a.set(7)
-sets the 7th (counting from 0) bit of a, setting a to 001111010*
-
-@item a.clear(2)
-clears the 2nd bit bit of a, setting a to 00011110*
-
-@item a.clear()
-clears all bits of a;
-
-@item a.set()
-sets all bits of a;
-
-@item a.invert(0)
-complements the 0th bit of a, setting a to 10011110*
-
-@item a.set(0,1)
-sets the 0th through 1st bits of a, setting a to 110111110*
-The two-argument versions of clear and invert are similar.
-
-@item a.test(3)
-returns true if the 3rd bit of a is set.
-
-@item a.test(3, 5)
-returns true if any of bits 3 through 5 are set.
-
-@item int i = a[3]; a[3] = 0;
-The subscript operator allows bits to be inspected and changed
-via standard subscript semantics, using a friend class BitSetBit.
-The use of the subscript operator a[i] rather than a.test(i)
-requires somewhat greater overhead.
-
-@item a.first(1) or a.first()
-returns the index of the first set bit of a (2 in this case),
-or -1 if no bits are set.
-
-@item a.first(0)
-returns the index of the first clear bit of a (0 in this case),
-or -1 if no bits are clear.
-
-@item a.next(2, 1) or a.next(2)
-returns the index of the next bit after position 2 that is set (3
-in this case) or -1. @code{first} and @code{next} may be used as
-iterators, as in
-@code{for (int i = a.first(); i >= 0; i = a.next(i))...}.
-
-@item a.last(1)
-returns the index of the rightmost set bit, or -1 if there or no set
-bits or all set bits.
-
-@item a.prev(3, 0)
-returns the index of the previous clear bit before position 3.
-
-@item a.count(1)
-returns the number of set bits in a, or -1 if there are
-an infinite number.
-
-@item a.virtual_bit()
-returns the trailing (infinitely replicated) bit of a.
-
-@item a = atoBitSet("ababX", 'a', 'b', 'X');
-converts the char* string into a bitset, with 'a' denoting false,
-'b' denoting true, and 'X' denoting infinite replication.
-
-@item a.printon(cout, '-', '.', 0)
-prints @code{a} to @code{cout} represented with
-@code{'-'} for falses, @code{'.'} for trues, and no replication marker.
-
-@item cout << a
-prints @code{a} to @code{cout} (representing lases by @code{'f'},
-trues by @code{'t'}, and using @code{'*'} as the replication marker).
-
-@end table
-
-@section BitString
-
-BitStrings are objects that contain arbitrary-length strings of
-zeroes and ones. BitStrings possess some features that make them
-behave like sets, and others that behave as strings. They are
-useful in applications (such as signature-based algorithms) where
-both capabilities are needed. Representational details are
-discussed in the Representation chapter. Most capabilities are
-exact analogs of those supported in the BitSet and String
-classes. A BitSubString is used with substring operations along
-the same lines as the String SubString class. A BitPattern class
-is used for masked bit pattern searching.
-
-Only a default constructor is supported. The declaration
-@code{BitString a;} initializes a to be an empty BitString.
-BitStrings may often be initialized via @code{atoBitString}
-and @code{longtoBitString}.
-
-Set operations (@code{ ~, complement, &, &=, |, |=, -, ^, ^=})
-behave just as the BitSet versions, except that there is no
-``virtual bit'': complementing complements only those bits in the
-BitString, and all binary operations across unequal length
-BitStrings assume a virtual bit of zero. The @code{&} operation
-returns a BitString with a length equal to the minimum length of
-the operands, and @code{|, ^} return one with length of the
-maximum.
-
-Set-based relational operations (@code{==, !=, <=, <, >=, >})
-follow the same rules. A string-like lexicographic comparison
-function, @code{lcompare}, tests the lexicographic relation between
-two BitStrings. For example, lcompare(1100, 0101) returns 1,
-since the first BitString starts with 1 and the second with 0.
-
-Individual bit setting, testing, and iterator operations
-(@code{set, clear, invert, test, first, next, last, prev})
-are also like those for BitSets. BitStrings are automatically
-expanded when setting bits at positions greater than their
-current length.
-
-The string-based capabilities are just as those for class String.
-BitStrings may be concatenated (@code{+, +=}), searched
-(@code{index, contains, matches}), and extracted into
-BitSubStrings (@code{before, at, after}) which may be assigned and
-otherwise manipulated. Other string-based utility functions
-(@code{reverse, common_prefix, common_suffix}) are also provided.
-These have the same capabilities and descriptions as those
-for Strings.
-
-String-oriented operations can also be performed with a mask via
-class BitPattern. BitPatterns consist of two BitStrings, a
-pattern and a mask. On searching and matching, bits in the pattern
-that correspond to 0 bits in the mask are ignored. (The mask may
-be shorter than the pattern, in which case trailing mask bits are
-assumed to be 0). The pattern and mask are both public variables,
-and may be individually subjected to other bit operations.
-
-Converting to char* and printing (@code{(atoBitString,
-atoBitPattern, printon, ostream <<)}) are also as in BitSets,
-except that no virtual bit is used, and an 'X' in a BitPattern means
-that the pattern bit is masked out.
-
-The following features are unique to BitStrings.
-
-Assume declarations of BitString a = atoBitString("01010110") and b =
-atoBitSTring("1101").
-
-@table @code
-
-@item a = b + c;
-Sets a to the concatenation of b and c;
-
-@item a = b + 0; a = b + 1;
-sets a to b, appended with a zero (one).
-
-@item a += b;
-appends b to a;
-
-@item a += 0; a += 1;
-appends a zero (one) to a.
-
-@item a << 2; a <<= 2
-return a with 2 zeros prepended, setting a to 0001010110. (Note
-the necessary confusion of << and >> operators. For consistency
-with the integer versions, << shifts low bits to high, even though
-they are printed low bits first.)
-
-@item a >> 3; a >>= 3
-return a with the first 3 bits deleted, setting a to 10110.
-
-@item a.left_trim(0)
-deletes all 0 bits on the left of a, setting a to 1010110.
-
-@item a.right_trim(0)
-deletes all trailing 0 bits of a, setting a to 0101011.
-
-@item cat(x, y, z)
-A faster way to say z = x + y.
-
-@item diff(x, y, z)
-A faster way to say z = x - y.
-
-@item and(x, y, z)
-A faster way to say z = x & y.
-
-@item or(x, y, z)
-A faster way to say z = x | y.
-
-@item xor(x, y, z)
-A faster way to say z = x ^ y.
-
-@item lshift(x, y, z)
-A faster way to say z = x << y.
-
-@item rshift(x, y, z)
-A faster way to say z = x >> y.
-
-@item complement(x, z)
-A faster way to say z = ~x.
-
-@end table
-
-
-@node Random, Data, Bit, Top
-@chapter Random Number Generators and related classes
-
-The two classes @code{RNG} and @code{Random} are used together to
-generate a variety of random number distributions. A distinction must
-be made between @emph{random number generators}, implemented by class
-@code{RNG}, and @emph{random number distributions}. A random number
-generator produces a series of randomly ordered bits. These bits can be
-used directly, or cast to other representations, such as a floating
-point value. A random number generator should produce a @emph{uniform}
-distribution. A random number distribution, on the other hand, uses the
-randomly generated bits of a generator to produce numbers from a
-distribution with specific properties. Each instance of @code{Random}
-uses an instance of class @code{RNG} to provide the raw, uniform
-distribution used to produce the specific distribution. Several
-instances of @code{Random} classes can share the same instance of
-@code{RNG}, or each instance can use its own copy.
-
-@section RNG
-
-Random distributions are constructed from members of class @code{RNG},
-the actual random number generators. The @code{RNG} class contains no
-data; it only serves to define the interface to random number
-generators. The @code{RNG::asLong} member returns an unsigned long
-(typically 32 bits) of random bits. Applications that require a number
-of random bits can use this directly. More often, these random bits are
-transformed to a uniform random number:
-
-@smallexample
- //
- // Return random bits converted to either a float or a double
- //
- float asFloat();
- double asDouble();
-@};
-@end smallexample
-
-@noindent
-using either @code{asFloat} or @code{asDouble}. It is intended that
-@code{asFloat} and @code{asDouble} return differing precisions;
-typically, @code{asDouble} will draw two random longwords and transform
-them into a legal @code{double}, while @code{asFloat} will draw a single
-longword and transform it into a legal @code{float}. These members are
-used by subclasses of the @code{Random} class to implement a variety of
-random number distributions.
-
-@section ACG
-
-Class @code{ACG} is a variant of a Linear Congruential Generator
-(Algorithm M) described in Knuth, @emph{Art of Computer Programming, Vol
-III}. This result is permuted with a Fibonacci Additive Congruential
-Generator to get good independence between samples. This is a very high
-quality random number generator, although it requires a fair amount of
-memory for each instance of the generator.
-
-The @code{ACG::ACG} constructor takes two parameters: the seed and the
-size. The seed is any number to be used as an initial seed. The
-performance of the generator depends on having a distribution of bits
-through the seed. If you choose a number in the range of 0 to 31, a
-seed with more bits is chosen. Other values are deterministically
-modified to give a better distribution of bits. This provides a good
-random number generator while still allowing a sequence to be repeated
-given the same initial seed.
-
-The @code{size} parameter determines the size of two tables used in the
-generator. The first table is used in the Additive Generator; see the
-algorithm in Knuth for more information. In general, this table is
-@code{size} longwords long. The default value, used in the algorithm in
-Knuth, gives a table of 220 bytes. The table size affects the period of
-the generators; smaller values give shorter periods and larger tables
-give longer periods. The smallest table size is 7 longwords, and the
-longest is 98 longwords. The @code{size} parameter also determines the
-size of the table used for the Linear Congruential Generator. This value
-is chosen implicitly based on the size of the Additive Congruential
-Generator table. It is two powers of two larger than the power of two
-that is larger than @code{size}. For example, if @code{size} is 7, the
-ACG table is 7 longwords and the LCG table is 128 longwords. Thus, the
-default size (55) requires 55 + 256 longwords, or 1244 bytes. The
-largest table requires 2440 bytes and the smallest table requires 100
-bytes. Applications that require a large number of generators or
-applications that aren't so fussy about the quality of the generator may
-elect to use the @code{MLCG} generator.
-
-@section MLCG
-
-The @code{MLCG} class implements a @emph{Multiplicative Linear
-Congruential Generator}. In particular, it is an implementation of the
-double MLCG described in @emph{``Efficient and Portable Combined Random
-Number Generators''} by Pierre L'Ecuyer, appearing in
-@emph{Communications of the ACM, Vol. 31. No. 6}. This generator has a
-fairly long period, and has been statistically analyzed to show that it
-gives good inter-sample independence.
-
-The @code{MLCG::MLCG} constructor has two parameters, both of which are
-seeds for the generator. As in the @code{MLCG} generator, both seeds are
-modified to give a ``better'' distribution of seed digits. Thus, you can
-safely use values such as `0' or `1' for the seeds. The @code{MLCG}
-generator used much less state than the @code{ACG} generator; only two
-longwords (8 bytes) are needed for each generator.
-
-@section Random
-
-A random number generator may be declared by first declaring a
-@code{RNG} and then a @code{Random}. For example, @code{ACG gen(10, 20);
-NegativeExpntl rnd (1.0, &gen);} declares an additive congruential
-generator with seed 10 and table size 20, that is used to generate
-exponentially distributed values with mean of 1.0.
-
-The virtual member @code{Random::operator()} is the common way of
-extracting a random number from a particular distribution. The base
-class, @code{Random} does not implement @code{operator()}. This is
-performed by each of the subclasses. Thus, given the above declaration
-of @code{rnd}, new random values may be obtained via, for example,
-@code{double next_exp_rand = rnd();} Currently, the following subclasses
-are provided.
-
-@section Binomial
-
-The binomial distribution models successfully drawing items from
-a pool. The first parameter to the constructor, @code{n}, is the
-number of items in the pool, and the second parameter, @code{u},
-is the probability of each item being successfully drawn. The
-member @code{asDouble} returns the number of samples drawn from
-the pool. Although it is not checked, it is assumed that
-@code{n>0} and @code{0 <= u <= 1}. The remaining members allow
-you to read and set the parameters.
-
-@section Erlang
-
-The @code{Erlang} class implements an Erlang distribution with
-mean @code{mean} and variance @code{variance}.
-
-@section Geometric
-
-The @code{Geometric} class implements a discrete geometric
-distribution. The first parameter to the constructor,
-@code{mean}, is the mean of the distribution. Although it is not
-checked, it is assumed that @code{0 <= mean <= 1}.
-@code{Geometric()} returns the number of uniform random samples
-that were drawn before the sample was larger than @code{mean}.
-This quantity is always greater than zero.
-
-@section HyperGeometric
-
-The @code{HyperGeometric} class implements the hypergeometric
-distribution. The first parameter to the constructor,
-@code{mean}, is the mean and the second, @code{variance}, is the
-variance. The remaining members allow you to inspect and change
-the mean and variance.
-
-@section NegativeExpntl
-
-The @code{NegativeExpntl} class implements the negative
-exponential distribution. The first parameter to the constructor
-is the mean. The remaining members allow you to inspect and
-change the mean.
-
-@section Normal
-
-The @code{Normal}class implements the normal distribution. The
-first parameter to the constructor, @code{mean}, is the mean and
-the second, @code{variance}, is the variance. The remaining
-members allow you to inspect and change the mean and variance.
-The @code{LogNormal} class is a subclass of @code{Normal}.
-
-@section LogNormal
-
-The @code{LogNormal}class implements the logarithmic normal
-distribution. The first parameter to the constructor,
-@code{mean}, is the mean and the second, @code{variance}, is the
-variance. The remaining members allow you to inspect and change
-the mean and variance. The @code{LogNormal} class is a subclass
-of @code{Normal}.
-
-@section Poisson
-
-The @code{Poisson} class implements the poisson distribution.
-The first parameter to the constructor is the mean. The
-remaining members allow you to inspect and change the mean.
-
-@section DiscreteUniform
-
-The @code{DiscreteUniform} class implements a uniform random variable over
-the closed interval ranging from @code{[low..high]}. The first parameter
-to the constructor is @code{low}, and the second is @code{high}, although
-the order of these may be reversed. The remaining members allow you to
-inspect and change @code{low} and @code{high}.
-
-@section Uniform
-
-The @code{Uniform} class implements a uniform random variable over the
-open interval ranging from @code{[low..high)}. The first parameter to
-the constructor is @code{low}, and the second is @code{high}, although
-the order of these may be reversed. The remaining members allow you to
-inspect and change @code{low} and @code{high}.@refill
-
-@section Weibull
-
-The @code{Weibull} class implements a weibull distribution with
-parameters @code{alpha} and @code{beta}. The first parameter to
-the class constructor is @code{alpha}, and the second parameter
-is @code{beta}. The remaining members allow you to inspect and
-change @code{alpha} and @code{beta}.
-
-@section RandomInteger
-
-The @code{RandomInteger} class is @emph{not} a subclass of Random,
-but a stand-alone integer-oriented class that is dependent on the
-RNG classes. RandomInteger returns random integers uniformly from
-the closed interval @code{[low..high]}. The first parameter to the
-constructor is @code{low}, and the second is @code{high}, although
-both are optional. The last argument is always a generator.
-Additional members allow you to inspect and change @code{low} and
-@code{high}. Random integers are generated using @code{asInt()} or
-@code{asLong()}. Operator syntax (@code{()}) is also available as a
-shorthand for @code{asLong()}. Because @code{RandomInteger} is often
-used in simulations for which uniform random integers are desired over
-a variety of ranges, @code{asLong()} and @code{asInt} have @code{high}
-as an optional argument. Using this optional argument produces a
-single value from the new range, but does not change the default
-range.
-
-
-@node Data, Curses, Random, Top
-@chapter Data Collection
-Libg++ currently provides two classes for @emph{data collection}
-and analysis of the collected data.
-
-@section SampleStatistic
-
-Class @code{SampleStatistic} provides a means of accumulating
-samples of @code{double} values and providing common sample statistics.
-
-Assume declaration of @code{double x}.
-
-@table @code
-
-@item SampleStatistic a;
-declares and initializes a.
-
-@item a.reset();
-re-initializes a.
-
-@item a += x;
-adds sample x.
-
-@item int n = a.samples();
-returns the number of samples.
-
-@item x = a.mean;
-returns the means of the samples.
-
-@item x = a.var()
-returns the sample variance of the samples.
-
-@item x = a.stdDev()
-returns the sample standard deviation of the samples.
-
-@item x = a.min()
-returns the minimum encountered sample.
-
-@item x = a.max()
-returns the maximum encountered sample.
-
-@item x = a.confidence(int p)
-returns the p-percent (0 <= p < 100) confidence interval.
-
-@item x = a.confidence(double p)
-returns the p-probability (0 <= p < 1) confidence interval.
-
-
-@end table
-
-@section SampleHistogram
-
-Class @code{SampleHistogram} is a derived class of
-@code{SampleStatistic} that supports collection and display of samples
-in bucketed intervals. It supports the following in addition to
-@code{SampleStatisic} operations.
-
-@table @code
-
-@item SampleHistogram h(double lo, double hi, double width);
-declares and initializes h to have buckets of size width from lo to hi.
-If the optional argument width is not specified, 10 buckets are
-created. The first bucket and also holds samples less than lo,
-and the last one holds samples greater than hi.
-
-@item int n = h.similarSamples(x)
-returns the number of samples in the same bucket as x.
-
-@item int n = h.inBucket(int i)
-returns the number of samples in bucket i.
-
-@item int b = h.buckets()
-returns the number of buckets.
-
-@item h.printBuckets(ostream s)
-prints bucket counts on ostream s.
-
-@item double bound = h.bucketThreshold(int i)
-returns the upper bound of bucket i.
-
-
-@end table
-
-@node Curses, List, Data, Top
-@chapter Curses-based classes
-
-The @code{CursesWindow} class is a repackaging of standard
-curses library features into a class. It relies on @file{curses.h}.
-
-The supplied @file{curses.h} is a fairly conservative declaration
-of curses library features, and does not include features like
-``screen'' or X-window support. It is, for the most part, an
-adaptation, rather than an improvement of C-based @file{curses.h}
-files. The only substantive changes are the declarations of
-many functions as inline functions rather than macros, which
-was done solely to allow overloading.
-
-The @code{CursesWindow} class encapsulates curses window functions
-within a class. Only those functions that control windows are included:
-Terminal control functions and macros like @code{cbreak} are not part
-of the class. All @code{CursesWindows} member functions have names
-identical to the corresponding curses library functions, except that the
-``w'' prefix is generally dropped. Descriptions of these functions may
-be found in your local curses library documentation.
-
-A @code{CursesWindow} may be declared via
-
-@table @code
-
-@item CursesWindow w(WINDOW* win)
-attaches w to the existing WINDOW* win. This is constructor is normally
-used only in the following special case.
-
-@item CursesWindow w(stdscr)
-attaches w to the default curses library standard screen window.
-
-@item CursesWindow w(int lines, int cols, int begin_y, int begin_x)
-attaches to an allocated curses window with the indicated size and
-screen position.
-
-@item CursesWindow sub(CursesWindow& w,int l,int c,int by,int bx,char ar='a')
-attaches to a subwindow of w created via the curses `subwin' command.
-If ar is sent as `r', the origin (by, bx) is relative to the parent
-window, else it is absolute.
-
-@end table
-
-The class maintains a static counter that is used in order to
-automatically call the curses library @code{initscr} and @code{endscr}
-functions at the proper times. These need not, and should not be
-called ``manually''.
-
-@code{CursesWindow}s maintain a tree of their subwindows. Upon
-destruction of a @code{CursesWindow}, all of their subwindows are
-also invalidated if they had not previously been destroyed.
-
-It is possible to traverse trees of subwindows via the following
-member functions
-
-@table @code
-
-@item CursesWindow* w.parent()
-returns a pointer to the parent of the subwindow, or 0 if there is none.
-
-@item CursesWindow* w.child()
-returns the first child subwindow of the window, or 0 if there is none.
-
-@item CursesWindow* w.sibling()
-returns the next sibling of the subwindow, or 0 if there is none.
-
-@end table
-
-For example, to call some function @code{visit} for all subwindows
-of a window, you could write
-
-@example
-
-void traverse(CursesWindow& w)
-@{
- visit(w);
- if (w.child() != 0) traverse(*w.child);
- if (w.sibling() != 0) traverse(*w.sibling);
-@}
-
-@end example
-
-@node List, LinkList, Curses, Top
-@chapter List classes
-
-The files @file{g++-include/List.hP} and @file{g++-include/List.ccP}
-provide pseudo-generic Lisp-type List classes. These lists are homogeneous
-lists, more similar to lists in statically typed functional languages like
-ML than Lisp, but support operations very similar to those found in Lisp.
-Any particular kind of list class may be generated via the @code{genclass}
-shell command. However, the implementation assumes that the base class
-supports an equality operator @code{==}. All equality tests use the
-@code{==} operator, and are thus equivalent to the use of @code{equal}, not
-@code{eq} in Lisp.@refill
-
-All list nodes are created dynamically, and managed via reference counts.
-@code{List} variables are actually pointers to these list nodes.
-Lists may also be traversed via Pixes, as described in the section
-describing Pixes. @xref{Pix}
-
-Supported operations are mirrored closely after those in Lisp. Generally,
-operations with functional forms are constructive, functional operations,
-while member forms (often with the same name) are sometimes
-procedural, possibly destructive operations.
-
-As with Lisp, destructive operations are supported. Programmers
-are allowed to change head and tail fields in any fashion, creating
-circular structures and the like. However, again as with Lisp, some
-operations implicitly assume that they are operating on pure lists, and
-may enter infinite loops when presented with improper lists. Also, the
-reference-counting storage management facility may fail to reclaim
-unused circularly-linked nodes.
-
-Several Lisp-like higher order functions are supported (e.g., @code{map}).
-Typedef declarations for the required functional forms are provided
-int the @file{.h} file.
-
-For purposes of illustration, assume the specification of class
-@code{intList}. Common Lisp versions of supported operations are shown
-in brackets for comparison purposes.
-
-@section Constructors and assignment
-
-@table @code
-
-@item intList a; [ (setq a nil) ]
-Declares a to be a nil intList.
-
-@item intList b(2); [ (setq b (cons 2 nil)) ]
-Declares b to be an intList with a head value of 2, and a nil tail.
-
-@item intList c(3, b); [ (setq c (cons 3 b)) ]
-Declares c to be an intList with a head value of 3, and b as its tail.
-
-@item b = a; [ (setq b a) ]
-Sets b to be the same list as a.
-
-@end table
-
-Assume the declarations of intLists a, b, and c in the following.
-@xref{Pix}.
-
-@section List status
-
-@table @code
-
-@item a.null(); OR !a; [ (null a) ]
-returns true if a is null.
-
-@item a.valid(); [ (listp a) ]
-returns true if a is non-null. Inside a conditional test, the
-@code{void*} coercion may also be used as in @code{if (a) ...}.
-
-@item intList(); [ nil ]
-intList() may be used to null terminate a list, as in
-@code{intList f(int x) @{if (x == 0) return intList(); ... @} }.
-
-@item a.length(); [ (length a) ]
-returns the length of a.
-
-@item a.list_length(); [ (list-length a) ]
-returns the length of a, or -1 if a is circular.
-@end table
-
-@section heads and tails
-
-@table @code
-
-@item a.get(); OR a.head() [ (car a) ]
-returns a reference to the head field.
-
-@item a[2]; [ (elt a 2) ]
-returns a reference to the second (counting from zero) head field.
-
-@item a.tail(); [ (cdr a) ]
-returns the intList that is the tail of a.
-
-@item a.last(); [ (last a) ]
-returns the intList that is the last node of a.
-
-@item a.nth(2); [ (nth a 2) ]
-returns the intList that is the nth node of a.
-
-@item a.set_tail(b); [ (rplacd a b) ]
-sets a's tail to b.
-
-@item a.push(2); [ (push 2 a) ]
-equivalent to a = intList(2, a);
-
-@item int x = a.pop() [ (setq x (car a)) (pop a) ]
-returns the head of a, also setting a to its tail.
-
-@end table
-
-@section Constructive operations
-
-@table @code
-
-@item b = copy(a); [ (setq b (copy-seq a)) ]
-sets b to a copy of a.
-
-@item b = reverse(a); [ (setq b (reverse a)) ]
-Sets b to a reversed copy of a.
-
-@item c = concat(a, b); [ (setq c (concat a b)) ]
-Sets c to a concatenated copy of a and b.
-
-@item c = append(a, b); [ (setq c (append a b)) ]
-Sets c to a concatenated copy of a and b. All nodes of a are
-copied, with the last node pointing to b.
-
-@item b = map(f, a); [ (setq b (mapcar f a)) ]
-Sets b to a new list created by applying function f to each node
-of a.
-
-@item c = combine(f, a, b);
-Sets c to a new list created by applying function f to successive
-pairs of a and b. The resulting list has length the shorter of a
-and b.
-
-@item b = remove(x, a); [ (setq b (remove x a)) ]
-Sets b to a copy of a, omitting all occurrences of x.
-
-@item b = remove(f, a); [ (setq b (remove-if f a)) ]
-Sets b to a copy of a, omitting values causing function f to
-return true.
-
-@item b = select(f, a); [ (setq b (remove-if-not f a)) ]
-Sets b to a copy of a, omitting values causing function f to
-return false.
-
-@item c = merge(a, b, f); [ (setq c (merge a b f)) ]
-Sets c to a list containing the ordered elements (using the
-comparison function f) of the sorted lists a and b.
-
-@end table
-
-@section Destructive operations
-
-@table @code
-
-@item a.append(b); [ (rplacd (last a) b) ]
-appends b to the end of a. No new nodes are constructed.
-
-@item a.prepend(b); [ (setq a (append b a)) ]
-prepends b to the beginning of a.
-
-@item a.del(x); [ (delete x a) ]
-deletes all nodes with value x from a.
-
-@item a.del(f); [ (delete-if f a) ]
-deletes all nodes causing function f to return true.
-
-@item a.select(f); [ (delete-if-not f a) ]
-deletes all nodes causing function f to return false.
-
-@item a.reverse(); [ (nreverse a) ]
-reverses a in-place.
-
-@item a.sort(f); [ (sort a f) ]
-sorts a in-place using ordering (comparison) function f.
-
-@item a.apply(f); [ (mapc f a) ]
-Applies void function f (int x) to each element of a.
-
-@item a.subst(int old, int repl); [ (nsubst repl old a) ]
-substitutes repl for each occurrence of old in a. Note the
-different argument order than the Lisp version.
-
-@end table
-
-@section Other operations
-
-@table @code
-
-@item a.find(int x); [ (find x a) ]
-returns the intList at the first occurrence of x.
-
-@item a.find(b); [ (find b a) ]
-returns the intList at the first occurrence of sublist b.
-
-@item a.contains(int x); [ (member x a) ]
-returns true if a contains x.
-
-@item a.contains(b); [ (member b a) ]
-returns true if a contains sublist b.
-
-@item a.position(int x); [ (position x a) ]
-returns the zero-based index of x in a, or -1 if x does not occur.
-
-@item int x = a.reduce(f, int base); [ (reduce f a :initial-value base) ]
-Accumulates the result of applying int function f(int, int) to
-successive elements of a, starting with base.
-
-@end table
-
-
-@node LinkList, Vector, List, Top
-@chapter Linked Lists
-
-SLLists provide pseudo-generic singly linked lists. DLLists provide
-doubly linked lists. The lists are designed for the simple maintenance
-of elements in a linked structure, and do not provide the more extensive
-operations (or node-sharing) of class @code{List}. They behave similarly
-to the @code{slist} and similar classes described by Stroustrup.@refill
-
-All list nodes are created dynamically. Assignment is performed via
-copying.
-
-Class @code{DLList} supports all @code{SLList} operations, plus
-additional operations described below.
-
-For purposes of illustration, assume the specification of class
-@code{intSLList}. In addition to the operations listed here,
-SLLists support traversal via Pixes. @xref{Pix}
-
-@table @code
-
-@item intSLList a;
-Declares a to be an empty list.
-
-@item intSLList b = a;
-Sets b to an element-by-element copy of a.
-
-@item a.empty()
-returns true if a contains no elements
-
-@item a.length();
-returns the number of elements in a.
-
-@item a.prepend(x);
-places x at the front of the list.
-
-@item a.append(x);
-places x at the end of the list.
-
-@item a.join(b)
-places all nodes from b to the end of a, simultaneously destroying b.
-
-@item x = a.front()
-returns a reference to the item stored at the head of the list,
-or triggers an error if the list is empty.
-
-@item a.rear()
-returns a reference to the rear of the list, or triggers an error if the
-list is empty.
-
-@item x = a.remove_front()
-deletes and returns the item stored at the head of the list.
-
-@item a.del_front()
-deletes the first element, without returning it.
-
-@item a.clear()
-deletes all items from the list.
-
-@item a.ins_after(Pix i, item);
-inserts item after position i. If i is null, insertion is at the front.
-
-@item a.del_after(Pix i);
-deletes the element following i. If i is 0, the first item is deleted.
-
-@end table
-
-@section Doubly linked lists
-
-Class @code{DLList} supports the following additional operations,
-as well as backward traversal via Pixes.
-
-@table @code
-
-@item x = a.remove_rear();
-deletes and returns the item stored at the rear of the list.
-
-@item a.del_rear();
-deletes the last element, without returning it.
-
-@item a.ins_before(Pix i, x)
-inserts x before the i.
-
-@item a.del(Pix& iint dir = 1)
-deletes the item at the current position, then advances forward
-if dir is positive, else backward.
-
-@end table
-
-@node Vector, Plex, LinkList, Top
-@chapter Vector classes
-
-The files @file{g++-include/Vec.ccP} and @file{g++-include/AVec.ccP}
-provide pseudo-generic standard array-based vector operations. The
-corresponding header files are @file{g++-include/Vec.hP} and
-@file{g++-include/AVec.hP}. Class @code{Vec} provides operations
-suitable for any base class that includes an equality operator. Subclass
-@code{AVec} provides additional arithmetic operations suitable for base
-classes that include the full complement of arithmetic operators.
-
-@code{Vecs} are constructed and assigned by copying. Thus, they should
-normally be passed by reference in applications programs.
-
-Several mapping functions are provided that allow programmers to
-specify operations on vectors as a whole.
-
-For illustrative purposes assume that classes @code{intVec} and
-@code{intAVec} have been generated via @code{genclass}.
-
-@section Constructors and assignment
-
-@table @code
-@item intVec a;
-declares a to be an empty vector. Its size may be changed via resize.
-
-@item intVec a(10);
-declares a to be an uninitialized vector of ten elements (numbered 0-9).
-
-@item intVec b(6, 0);
-declares b to be a vector of six elements, all initialized to zero. Any
-value can be used as the initial fill argument.
-
-@item a = b;
-Copies b to a. a is resized to be the same as b.
-
-@item a = b.at(2, 4)
-constructs a from the 4 elements of b starting at b[2].
-@end table
-
-Assume declarations of @code{intVec a, b, c} and @code{int i, x} in
-the following.
-
-@section Status and access
-
-@table @code
-@item a.capacity();
-returns the number of elements that can be held in a.
-
-@item a.resize(20);
-sets a's length to 20. All elements are unchanged, except that if
-the new size is smaller than the original, than trailing elements
-are deleted, and if greater, trailing elements are uninitialized.
-
-@item a[i];
-returns a reference to the i'th element of a, or produces an error
-if i is out of range.
-
-@item a.elem(i)
-returns a reference to the i'th element of a. Unlike the @code{[]} operator,
-i is not checked to ensure that it is within range.
-
-@item a == b;
-returns true if a and b contain the same elements in the same order.
-
-@item a != b;
-is the converse of a == b.
-@end table
-
-@section Constructive operations
-
-@table @code
-@item c = concat(a, b);
-sets c to the new vector constructed from all of the elements of
-a followed by all of b.
-
-@item c = map(f, a);
-sets c to the new vector constructed by applying int function f(int)
-to each element of a.
-
-@item c = merge(a, b, f);
-sets c to the new vector constructed by merging the elements of
-ordered vectors a and b using ordering (comparison) function f.
-
-@item c = combine(f, a, b);
-sets c to the new vector constructed by applying int function f(int, int)
-to successive pairs of a and b. The result has length the shorter of
-a and b.
-
-@item c = reverse(a)
-sets c to a, with elements in reverse order.
-@end table
-
-@section Destructive operations
-
-@table @code
-@item a.reverse();
-reverses a in-place.
-
-@item a.sort(f)
-sorts a in-place using comparison function f. The sorting method is a
-variation of the quicksort functions supplied with GNU emacs.
-
-@item a.fill(0, 4, 2)
-fills the 2 elements starting at a[4] with zero.
-
-@end table
-
-@section Other operations
-
-@table @code
-
-@item a.apply(f)
-applies function f to each element in a.
-
-@item x = a.reduce(f, base)
-accumulates the results of applying function f to successive elements
-of a starting with base.
-
-@item a.index(int targ);
-returns the index of the leftmost occurrence of the target, or -1,
-if it does not occur.
-
-@item a.error(char* msg)
-invokes the error handler. The default version prints the error message,
-then aborts.
-@end table
-
-@section AVec operations.
-
-AVecs provide additional arithmetic operations. All vector-by-vector
-operators generate an error if the vectors are not the same length. The
-following operations are provided, for @code{AVecs a, b} and
-base element (scalar) @code{s}.
-
-@table @code
-@item a = b;
-Copies b to a. a and b must be the same size.
-
-@item a = s;
-fills all elements of a with the value s. a is not resized.
-
-@item a + s; a - s; a * s; a / s
-adds, subtracts, multiplies, or divides each element of a with the scalar.
-
-@item a += s; a -= s; a *= s; a /= s;
-adds, subtracts, multiplies, or divides the scalar into a.
-
-@item a + b; a - b; product(a, b), quotient(a, b)
-adds, subtracts, multiplies, or divides corresponding elements of a and b.
-
-@item a += b; a -= b; a.product(b); a.quotient(b);
-adds, subtracts, multiplies, or divides corresponding elements of b into a.
-
-@item s = a * b;
-returns the inner (dot) product of a and b.
-
-@item x = a.sum();
-returns the sum of elements of a.
-
-@item x = a.sumsq();
-returns the sum of squared elements of a.
-
-@item x = a.min();
-returns the minimum element of a.
-
-@item x = a.max();
-returns the maximum element of a.
-
-@item i = a.min_index();
-returns the index of the minimum element of a.
-
-@item i = a.max_index();
-returns the index of the maximum element of a.
-
-Note that it is possible to apply vector versions other arithmetic
-operators via the mapping functions. For example, to set vector b
-to the cosines of doubleVec a, use @code{b = map(cos, a);}.
-This is often more efficient than performing the operations
-in an element-by-element fashion.
-@end table
-
-@node Plex, Stack, Vector, Top
-@chapter Plex classes
-
-A ``Plex'' is a kind of array with the following properties:
-
-@itemize @bullet
-@item
-Plexes may have arbitrary upper and lower index bounds. For example
-a Plex may be declared to run from indices -10 .. 10.
-
-@item
-Plexes may be dynamically expanded at both the lower and upper bounds
-of the array in steps of one element.
-
-@item
-Only elements that have been specifically initialized or added may
-be accessed.
-
-@item
-Elements may be accessed via indices. Indices are always checked for
-validity at run time. Plexes may be traversed via simple variations of
-standard array indexing loops.
-
-@item
-Plex elements may be accessed and traversed via Pixes.
-
-@item
-Plex-to-Plex assignment and related operations on entire Plexes
-are supported.
-
-@item
-Plex classes contain methods to help programmers check the validity
-of indexing and pointer operations.
-
-@item
-Plexes form ``natural'' base classes for many restricted-access data
-structures relying on logically contiguous indices, such as array-based
-stacks and queues.
-
-@item
-Plexes are implemented as pseudo-generic classes, and must be generated
-via the @code{genclass} utility.
-@end itemize
-
-Four subclasses of Plexes are supported: A @code{FPlex} is a Plex that
-may only grow or shrink within declared bounds; an @code{XPlex} may
-dynamically grow or shrink without bounds; an @code{RPlex} is the
-same as an @code{XPlex} but better supports indexing with poor
-locality of reference; a @code{MPlex} may grow
-or shrink, and additionally allows the logical deletion and restoration
-of elements. Because these classes are virtual subclasses of the
-``abstract'' class @code{Plex}, it is possible to write user code
-such as @code{void f(Plex& a) ...} that operates on any kind of
-Plex. However, as with nearly any virtual class, specifying the
-particular Plex class being used results in more efficient code.
-
-Plexes are implemented as a linked list of @code{IChunks}. Each chunk
-contains a part of the array. Chunk sizes may be specified within Plex
-constructors. Default versions also exist, that use a @code{#define'd}
-default. Plexes grow by filling unused space in existing chunks, if
-possible, else, except for FPlexes, by adding another chunk. Whenever
-Plexes grow by a new chunk, the default element constructors (i.e.,
-those which take no arguments) for all chunk elements are called at
-once. When Plexes shrink, destructors for the elements are not called
-until an entire chunk is freed. For this reason, Plexes (like C++
-arrays) should only be used for elements with default constructors and
-destructors that have no side effects.
-
-Plexes may be indexed and used like arrays, although traversal
-syntax is slightly different. Even though Plexes maintain elements
-in lists of chunks, they are implemented so that iteration and
-other constructs that maintain locality of reference require very
-little overhead over that for simple array traversal
-Pix-based traversal is also supported. For example, for a plex, p,
-of ints, the following traversal methods could be used.
-
-@smallexample
-for (int i = p.low(); i < p.fence(); p.next(i)) use(p[i]);
-for (int i = p.high(); i > p.ecnef(); p.prev(i)) use(p[i]);
-for (Pix t = p.first(); t != 0; p.next(t)) use(p(i));
-for (Pix t = p.last(); t != 0; p.prev(t)) use(p(i));
-@end smallexample
-
-Except for MPlexes, simply using @code{++i} and @code{--i} works just as
-well as @code{p.next(i)} and @code{p.prev(i)} when traversing by index.
-Index-based traversal is generally a bit faster than Pix-based
-traversal.
-
-@code{XPlexes} and @code{MPlexes} are less than optimal for applications
-in which widely scattered elements are indexed, as might occur when
-using Plexes as hash tables or ``manually'' allocated linked lists.
-In such applications, @code{RPlexes} are often preferable. @code{RPlexes}
-use a secondary chunk index table that requires slightly greater,
-but entirely uniform overhead per index operation.
-
-Even though they may grow in either direction, Plexes are normally
-constructed so that their ``natural'' growth direction is upwards,
-in that default chunk construction leaves free space, if present,
-at the end of the plex. However, if the chunksize arguments to
-constructors are negative, they leave space at the beginning.
-
-All versions of Plexes support the following basic capabilities.
-(letting @code{Plex} stand for the type name constructed via the
-genclass utility (e.g., @code{intPlex}, @code{doublePlex})). Assume
-declarations of @code{Plex p, q}, @code{int i, j}, base element
-@code{x}, and Pix @code{pix}.
-
-@table @code
-
-@item Plex p;
-Declares p to be an initially zero-sized Plex with low index of zero,
-and the default chunk size. For FPlexes, chunk sizes represent maximum
-sizes.
-
-@item Plex p(int size);
-Declares p to be an initially zero-sized Plex with low index of zero,
-and the indicated chunk size. If size is negative, then the Plex
-is created with free space at the beginning of the Plex,
-allowing more efficient add_low() operations. Otherwise, it
-leaves space at the end.
-
-@item Plex p(int low, int size);
-Declares p to be an initially zero-sized Plex with low index of low,
-and the indicated chunk size.
-
-@item Plex p(int low, int high, Base initval, int size = 0);
-Declares p to be a Plex with indices from low to high, initially
-filled with initval, and the indicated chunk size if specified,
-else the default or (high - low + 1), whichever is greater.
-
-@item Plex q(p);
-Declares q to be a copy of p.
-
-@item p = q;
-Copies Plex q into p, deleting its previous contents.
-
-@item p.length()
-Returns the number of elements in the Plex.
-
-@item p.empty()
-Returns true if Plex p contains no elements.
-
-@item p.full()
-Returns true if Plex p cannot be expanded. This always returns
-false for XPlexes and MPlexes.
-
-@item p[i]
-Returns a reference to the i'th element of p. An exception (error) occurs
-if i is not a valid index.
-
-@item p.valid(i)
-Returns true if i is a valid index into Plex p.
-
-@item p.low(); p.high();
-Return the minimum (maximum) valid index of the Plex, or the high (low)
-fence if the plex is empty.
-
-@item p.ecnef(); p.fence();
-Return the index one position past the minimum (maximum) valid index.
-
-@item p.next(i); i = p.prev(i);
-Set i to the next (previous) index. This index may not be within bounds.
-
-@item p(pix)
-returns a reference to the item at Pix pix.
-
-@item pix = p.first(); pix = p.last();
-Return the minimum (maximum) valid Pix of the Plex, or 0
-if the plex is empty.
-
-@item p.next(pix); p.prev(pix);
-set pix to the next (previous) Pix, or 0 if there is none.
-
-@item p.owns(pix)
-Returns true if the Plex contains the element associated with pix.
-
-@item p.Pix_to_index(pix)
-If pix is a valid Pix to an element of the Plex,
-returns its corresponding index, else raises an exception.
-
-@item ptr = p.index_to_Pix(i)
-if i is a valid index, returns a the corresponding Pix.
-
-@item p.low_element(); p.high_element();
-Return a reference to the element at the minimum (maximum) valid index.
-An exception occurs if the Plex is empty.
-
-@item p.can_add_low(); p.can_add_high();
-Returns true if the plex can be extended one element downward (upward).
-These always return true for XPlex and MPlex.
-
-@item j = p.add_low(x); j = p.add_high(x);
-Extend the Plex by one element downward (upward). The new minimum
-(maximum) index is returned.
-
-@item j = p.del_low(); j = p.del_high()
-Shrink the Plex by one element on the low (high) end. The new
-minimum (maximum) element is returned. An exception occurs if the
-Plex is empty.
-
-@item p.append(q);
-Append all of Plex q to the high side of p.
-
-@item p.prepend(q);
-Prepend all of q to the low side of p.
-
-@item p.clear()
-Delete all elements, resetting p to a zero-sized Plex.
-
-@item p.reset_low(i);
-Resets p to be indexed starting at low() = i. For example.
-if p were initially declared via @code{Plex p(0, 10, 0)},
-and then re-indexed via @code{p.reset_low(5)},
-it could then be indexed from indices 5 .. 14.
-
-@item p.fill(x)
-sets all p[i] to x.
-
-@item p.fill(x, lo, hi)
-sets all of p[i] from lo to hi, inclusive, to x.
-
-@item p.reverse()
-reverses p in-place.
-
-@item p.chunk_size()
-returns the chunk size used for the plex.
-
-@item p.error(const char * msg)
-calls the resettable error handler.
-
-@end table
-
-MPlexes are plexes with bitmaps that allow items to be logically
-deleted and restored. They behave like other plexes, but
-also support the following additional and modified capabilities:
-
-@table @code
-
-@item p.del_index(i); p.del_Pix(pix)
-logically deletes p[i] (p(pix)). After deletion, attempts to access p[i]
-generate a error. Indexing via low(), high(), prev(),
-and next() skip the element. Deleting an element never changes the
-logical bounds of the plex.
-
-@item p.undel_index(i); p.undel_Pix(pix)
-logically undeletes p[i] (p(pix)).
-
-@item p.del_low(); p.del_high()
-Delete the lowest (highest) undeleted element, resetting the
-logical bounds of the plex to the next lowest (highest) undeleted
-index. Thus, MPlex del_low() and del_high() may shrink the bounds
-of the plex by more than one index.
-
-@item p.adjust_bounds()
-Resets the low and high bounds of the Plex to the indexes of
-the lowest and highest actual undeleted elements.
-
-@item int i = p.add(x)
-Adds x in an unused index, if possible, else performs add_high.
-
-@item p.count()
-returns the number of valid (undeleted) elements.
-
-@item p.available()
-returns the number of available (deleted) indices.
-
-@item int i = p.unused_index()
-returns the index of some deleted element, if one exists,
-else triggers an error. An unused element may be reused via undel.
-
-@item pix = p.unused_Pix()
-returns the pix of some deleted element, if one exists, else 0.
-An unused element may be reused via undel.
-
-@end table
-
-@node Stack, Queue, Plex, Top
-@chapter Stacks
-
-Stacks are declared as an ``abstract'' class. They are currently
-implemented in any of three ways.
-
-@table @code
-
-@item VStack
-implement fixed sized stacks via arrays.
-
-@item XPStack
-implement dynamically-sized stacks via XPlexes.
-
-@item SLStack
-implement dynamically-size stacks via linked lists.
-
-@end table
-
-All possess the same capabilities. They differ only in constructors.
-VStack constructors require a fixed maximum capacity argument.
-XPStack constructors optionally take a chunk size argument.
-SLStack constructors take no argument.
-
-Assume the declaration of a base element @code{x}.
-
-@table @code
-
-@item Stack s; or Stack s(int capacity)
-declares a Stack.
-
-@item s.empty()
-returns true if stack s is empty.
-
-@item s.full()
-returns true if stack s is full. XPStacks and SLStacks never become full.
-
-@item s.length()
-returns the current number of elements in the stack.
-
-@item s.push(x)
-pushes x on stack s.
-
-@item x = s.pop()
-pops and returns the top of stack
-
-@item s.top()
-returns a reference to the top of stack.
-
-@item s.del_top()
-pops, but does not return the top of stack. When large items are held
-on the stack it is often a good idea to use @code{top()} to inspect and use
-the top of stack, followed by a @code{del_top()}
-
-@item s.clear()
-removes all elements from the stack.
-
-@end table
-
-@node Queue, Deque, Stack, Top
-@chapter Queues
-
-Queues are declared as an ``abstract'' class. They are currently
-implemented in any of three ways.
-
-@table @code
-@item VQueue
-implement fixed sized Queues via arrays.
-
-@item XPQueue
-implement dynamically-sized Queues via XPlexes.
-
-@item SLQueue
-implement dynamically-size Queues via linked lists.
-@end table
-
-All possess the same capabilities; they differ only in constructors.
-@code{VQueue} constructors require a fixed maximum capacity argument.
-@code{XPQueue} constructors optionally take a chunk size argument.
-@code{SLQueue} constructors take no argument.
-
-Assume the declaration of a base element @code{x}.
-
-@table @code
-@item Queue q; or Queue q(int capacity);
-declares a queue.
-
-@item q.empty()
-returns true if queue q is empty.
-
-@item q.full()
-returns true if queue q is full. XPQueues and SLQueues are never full.
-
-@item q.length()
-returns the current number of elements in the queue.
-
-@item q.enq(x)
-enqueues x on queue q.
-
-@item x = q.deq()
-dequeues and returns the front of queue
-
-@item q.front()
-returns a reference to the front of queue.
-
-@item q.del_front()
-dequeues, but does not return the front of queue
-
-@item q.clear()
-removes all elements from the queue.
-@end table
-
-@node Deque, PQ, Queue, Top
-@chapter Double ended Queues
-
-Deques are declared as an ``abstract'' class. They are currently
-implemented in two ways.
-
-@table @code
-
-@item XPDeque
-implement dynamically-sized Deques via XPlexes.
-
-@item DLDeque
-implement dynamically-size Deques via linked lists.
-
-@end table
-
-All possess the same capabilities. They differ only in constructors.
-XPDeque constructors optionally take a chunk size argument.
-DLDeque constructors take no argument.
-
-Double-ended queues support both stack-like and queue-like capabilities:
-
-Assume the declaration of a base element @code{x}.
-
-@table @code
-
-@item Deque d; or Deque d(int initial_capacity)
-declares a deque.
-
-@item d.empty()
-returns true if deque d is empty.
-
-@item d.full()
-returns true if deque d is full.
-Always returns false in current implementations.
-
-@item d.length()
-returns the current number of elements in the deque.
-
-@item d.enq(x)
-inserts x at the rear of deque d.
-
-@item d.push(x)
-inserts x at the front of deque d.
-
-@item x = d.deq()
-dequeues and returns the front of deque
-
-@item d.front()
-returns a reference to the front of deque.
-
-@item d.rear()
-returns a reference to the rear of the deque.
-
-@item d.del_front()
-deletes, but does not return the front of deque
-
-@item d.del_rear()
-deletes, but does not return the rear of the deque.
-
-@item d.clear()
-removes all elements from the deque.
-
-@end table
-
-@node PQ, Set, Deque, Top
-@chapter Priority Queue class prototypes.
-
-Priority queues maintain collections of objects arranged for fast
-access to the least element.
-
-Several prototype implementations of priority queues are supported.
-
-@table @code
-
-@item XPPQs
-implement 2-ary heaps via XPlexes.
-
-@item SplayPQs
-implement PQs via Sleator and Tarjan's (JACM 1985)
-splay trees. The algorithms use a version of ``simple top-down
-splaying'' (described on page 669 of the article). The simple-splay
-mechanism for priority queue functions is loosely based on the one used
-by D. Jones in the C splay tree functions available from volume 14 of
-the uunet.uu.net archives.
-
-@item PHPQs
-implement pairing heaps (as described by Fredman and
-Sedgewick in @cite{Algorithmica}, Vol 1, p111-129). Storage for heap elements
-is managed via an internal freelist technique. The constructor allows an
-initial capacity estimate for freelist space. The storage is automatically
-expanded if necessary to hold new items. The deletion technique is a fast
-``lazy deletion'' strategy that marks items as deleted, without reclaiming
-space until the items come to the top of the heap.
-
-@end table
-
-All PQ classes support the following operations, for some PQ class
-@code{Heap}, instance @code{h}, @code{Pix ind}, and base class
-variable @code{x}.
-
-@table @code
-
-@item h.empty()
-returns true if there are no elements in the PQ.
-
-@item h.length()
-returns the number of elements in h.
-
-@item ind = h.enq(x)
-Places x in the PQ, and returns its index.
-
-@item x = h.deq()
-Dequeues the minimum element of the PQ into x, or generates an error
-if the PQ is empty.
-
-@item h.front()
-returns a reference to the minimum element.
-
-@item h.del_front()
-deletes the minimum element.
-
-@item h.clear();
-deletes all elements from h;
-
-@item h.contains(x)
-returns true if x is in h.
-
-@item h(ind)
-returns a reference to the item indexed by ind.
-
-@item ind = h.first()
-returns the Pix of first item in the PQ or 0 if empty.
-This need not be the Pix of the least element.
-
-@item h.next(ind)
-advances ind to the Pix of next element, or 0 if there are no more.
-
-@item ind = h.seek(x)
-Sets ind to the Pix of x, or 0 if x is not in h.
-
-@item h.del(ind)
-deletes the item with Pix ind.
-
-@end table
-
-@node Set, Bag, PQ, Top
-@chapter Set class prototypes
-
-Set classes maintain unbounded collections of items containing
-no duplicate elements.
-
-These are currently implemented in several ways, differing in
-representation strategy, algorithmic efficiency, and appropriateness for
-various tasks. (Listed next to each are average (followed by worst-case,
-if different) time complexities for [a] adding, [f] finding (via seek,
-contains), [d] deleting, elements, and [c] comparing (via ==, <=) and
-[m] merging (via |=, -=, &=) sets).
-
-@table @code
-@item XPSets
-implement unordered sets via XPlexes.
-([a O(n)], [f O(n)], [d O(n)], [c O(n^2)] [m O(n^2)]).
-
-@item OXPSets
-implement ordered sets via XPlexes.
-([a O(n)], [f O(log n)], [d O(n)], [c O(n)] [m O(n)]).
-
-@item SLSets
-implement unordered sets via linked lists
-([a O(n)], [f O(n)], [d O(n)], [c O(n^2)] [m O(n^2)]).
-
-@item OSLSets
-implement ordered sets via linked lists
-([a O(n)], [f O(n)], [d O(n)], [c O(n)] [m O(n)]).
-
-@item AVLSets
-implement ordered sets via threaded AVL trees
-([a O(log n)], [f O(log n)], [d O(log n)], [c O(n)] [m O(n)]).
-
-@item BSTSets
-implement ordered sets via binary search trees. The trees may
-be manually rebalanced via the O(n) @code{balance()} member function.
-([a O(log n)/O(n)], [f O(log n)/O(n)], [d O(log n)/O(n)], [c O(n)] [m O(n)]).
-
-@item SplaySets
-implement ordered sets via Sleator and Tarjan's (JACM 1985)
-splay trees. The algorithms use a version of ``simple top-down
-splaying'' (described on page 669 of the article).
-(Amortized: [a O(log n)], [f O(log n)], [d O(log n)], [c O(n)] [m O(n log n)]).
-
-@item VHSets
-implement unordered sets via hash tables.
-The tables are automatically resized when their capacity is exhausted.
-([a O(1)/O(n)], [f O(1)/O(n)], [d O(1)/O(n)], [c O(n)/O(n^2)] [m O(n)/O(n^2)]).
-
-@item VOHSets
-implement unordered sets via ordered hash tables
-The tables are automatically resized when their capacity is exhausted.
-([a O(1)/O(n)], [f O(1)/O(n)], [d O(1)/O(n)], [c O(n)/O(n^2)] [m O(n)/O(n^2)]).
-
-@item CHSets
-implement unordered sets via chained hash tables.
-([a O(1)/O(n)], [f O(1)/O(n)], [d O(1)/O(n)], [c O(n)/O(n^2)] [m O(n)/O(n^2)]).
-@end table
-
-The different implementations differ in whether their constructors
-require an argument specifying their initial capacity. Initial
-capacities are required for plex and hash table based Sets. If none is
-given @code{DEFAULT_INITIAL_CAPACITY} (from @file{defs.h}) is
-used.@refill
-
-Sets support the following operations, for some class @code{Set},
-instances @code{a} and @code{b}, @code{Pix ind}, and base
-element @code{x}. Since all implementations are virtual derived classes
-of the @code{Set} class, it is possible to mix and match operations
-across different implementations, although, as usual, operations
-are generally faster when the particular classes are specified
-in functions operating on Sets.
-
-Pix-based operations are more fully described in the section
-on Pixes. @xref{Pix}
-
-@table @code
-
-@item Set a; or Set a(int initial_size);
-Declares a to be an empty Set. The second version is allowed in
-set classes that require initial capacity or sizing specifications.
-
-@item a.empty()
-returns true if a is empty.
-
-@item a.length()
-returns the number of elements in a.
-
-@item Pix ind = a.add(x)
-inserts x into a, returning its index.
-
-@item a.del(x)
-deletes x from a.
-
-@item a.clear()
-deletes all elements from a;
-
-@item a.contains(x)
-returns true if x is in a.
-
-@item a(ind)
-returns a reference to the item indexed by ind.
-
-@item ind = a.first()
-returns the Pix of first item in the set or 0 if the Set is empty.
-For ordered Sets, this is the Pix of the least element.
-
-@item a.next(ind)
-advances ind to the Pix of next element, or 0 if there are no more.
-
-@item ind = a.seek(x)
-Sets ind to the Pix of x, or 0 if x is not in a.
-
-@item a == b
-returns true if a and b contain all the same elements.
-
-@item a != b
-returns true if a and b do not contain all the same elements.
-
-@item a <= b
-returns true if a is a subset of b.
-
-@item a |= b
-Adds all elements of b to a.
-
-@item a -= b
-Deletes all elements of b from a.
-
-@item a &= b
-Deletes all elements of a not occurring in b.
-
-@end table
-
-
-@node Bag, Map, Set, Top
-@chapter Bag class prototypes
-
-Bag classes maintain unbounded collections of items potentially
-containing duplicate elements.
-
-These are currently implemented in several ways, differing in
-representation strategy, algorithmic efficiency, and appropriateness for
-various tasks. (Listed next to each are average (followed by worst-case,
-if different) time complexities for [a] adding, [f] finding (via seek,
-contains), [d] deleting elements).
-
-
-@table @code
-
-@item XPBags
-implement unordered Bags via XPlexes.
-([a O(1)], [f O(n)], [d O(n)]).
-
-@item OXPBags
-implement ordered Bags via XPlexes.
-([a O(n)], [f O(log n)], [d O(n)]).
-
-@item SLBags
-implement unordered Bags via linked lists
-([a O(1)], [f O(n)], [d O(n)]).
-
-@item OSLBags
-implement ordered Bags via linked lists
-([a O(n)], [f O(n)], [d O(n)]).
-
-@item SplayBags
-implement ordered Bags via Sleator and Tarjan's (JACM 1985)
-splay trees. The algorithms use a version of ``simple top-down
-splaying'' (described on page 669 of the article).
-(Amortized: [a O(log n)], [f O(log n)], [d O(log n)]).
-
-@item VHBags
-implement unordered Bags via hash tables.
-The tables are automatically resized when their capacity is exhausted.
-([a O(1)/O(n)], [f O(1)/O(n)], [d O(1)/O(n)]).
-
-@item CHBags
-implement unordered Bags via chained hash tables.
-([a O(1)/O(n)], [f O(1)/O(n)], [d O(1)/O(n)]).
-
-@end table
-
-The implementations differ in whether their constructors
-require an argument to specify their initial capacity. Initial
-capacities are required for plex and hash table based Bags. If none is
-given @code{DEFAULT_INITIAL_CAPACITY} (from @file{defs.h}) is used.@refill
-
-Bags support the following operations, for some class @code{Bag},
-instances @code{a} and @code{b}, @code{Pix ind}, and base
-element @code{x}. Since all implementations are virtual derived classes
-of the @code{Bag} class, it is possible to mix and match operations
-across different implementations, although, as usual, operations
-are generally faster when the particular classes are specified
-in functions operating on Bags.
-
-Pix-based operations are more fully described in the section
-on Pixes. @xref{Pix}
-
-@table @code
-
-@item Bag a; or Bag a(int initial_size)
-Declares a to be an empty Bag. The second version is allowed in
-Bag classes that require initial capacity or sizing specifications.
-
-@item a.empty()
-returns true if a is empty.
-
-@item a.length()
-returns the number of elements in a.
-
-@item ind = a.add(x)
-inserts x into a, returning its index.
-
-@item a.del(x)
-deletes one occurrence of x from a.
-
-@item a.remove(x)
-deletes all occurrences of x from a.
-
-@item a.clear()
-deletes all elements from a;
-
-@item a.contains(x)
-returns true if x is in a.
-
-@item a.nof(x)
-returns the number of occurrences of x in a.
-
-@item a(ind)
-returns a reference to the item indexed by ind.
-
-@item int = a.first()
-returns the Pix of first item in the Bag or 0 if the Bag is empty.
-For ordered Bags, this is the Pix of the least element.
-
-@item a.next(ind)
-advances ind to the Pix of next element, or 0 if there are no more.
-
-@item ind = a.seek(x, Pix from = 0)
-Sets ind to the Pix of the next occurrence x, or 0 if there are none.
-If from is 0, the first occurrence is returned, else the following from.
-
-@end table
-
-@node Map, GetOpt, Bag, Top
-@chapter Map Class Prototypes
-
-Maps support associative array operations (insertion, deletion, and
-membership of records based on an associated key). They require
-the specification of two types, the key type and the contents type.
-
-These are currently implemented in several ways, differing in
-representation strategy, algorithmic efficiency, and appropriateness for
-various tasks. (Listed next to each are average (followed by worst-case,
-if different) time complexities for [a] accessing (via op [],
-contains), [d] deleting elements).
-
-
-@table @code
-
-@item AVLMaps
-implement ordered Maps via threaded AVL trees
-([a O(log n)], [d O(log n)]).
-
-@item RAVLMaps
-Similar, but also maintain ranking information, used via
-@code{ranktoPix(int r)}, that returns the @code{Pix} of the
-item at rank r, and @code{rank(key)} that returns the
-rank of the corresponding item.
-([a O(log n)], [d O(log n)]).
-
-@item SplayMaps
-implement ordered Maps via Sleator and Tarjan's (JACM 1985)
-splay trees. The algorithms use a version of ``simple top-down
-splaying'' (described on page 669 of the article).
-(Amortized: [a O(log n)], [d O(log n)]).
-
-@item VHMaps
-implement unordered Maps via hash tables.
-The tables are automatically resized when their capacity is exhausted.
-([a O(1)/O(n)], [d O(1)/O(n)]).
-
-@item CHMaps
-implement unordered Maps via chained hash tables.
-([a O(1)/O(n)], [d O(1)/O(n)]).
-
-@end table
-
-The different implementations differ in whether their constructors
-require an argument specifying their initial capacity. Initial
-capacities are required for hash table based Maps. If none is
-given @code{DEFAULT_INITIAL_CAPACITY} (from @file{defs.h}) is
-used.@refill
-
-All Map classes share the following operations (for some Map class,
-@code{Map} instance @code{d}, @code{Pix ind} and key variable @code{k},
-and contents variable @code{x}).
-
-Pix-based operations are more fully described in the section
-on Pixes. @xref{Pix}
-
-@table @code
-
-@item Map d(x); Map d(x, int initial_capacity)
-Declare d to be an empty Map. The required argument, x, specifies
-the default contents, i.e., the contents of an otherwise
-uninitialized location. The second version, specifying
-initial capacity is allowed for Maps with an initial capacity
-argument.
-
-@item d.empty()
-returns true if d contains no items.
-
-@item d.length()
-returns the number of items in d.
-
-@item d[k]
-returns a reference to the contents of item with key k. If no
-such item exists, it is installed with the default contents.
-Thus d[k] = x installs x, and x = d[k] retrieves it.
-
-@item d.contains(k)
-returns true if an item with key field k exists in d.
-
-@item d.del(k)
-deletes the item with key k.
-
-@item d.clear()
-deletes all items from the table.
-
-@item x = d.dflt()
-returns the default contents.
-
-@item k = d.key(ind)
-returns a reference to the key at Pix ind.
-
-@item x = d.contents(ind)
-returns a reference to the contents at Pix ind.
-
-@item ind = d.first()
-returns the Pix of the first element in d, or 0 if d is empty.
-
-@item d.next(ind)
-advances ind to the next element, or 0 if there are no more.
-
-@item ind = d.seek(k)
-returns the Pix of element with key k, or 0 if k is not in d.
-
-@end table
-
-@node GetOpt, Projects, Map, Top
-@chapter C++ version of the GNU getopt function
-
-The GetOpt class provides an efficient and structured mechanism for
-processing command-line options from an application program. The sample
-program fragment below illustrates a typical use of the GetOpt class
-for some hypothetical application program:
-
-@smallexample
-#include
-#include
-//...
-int debug_flag, compile_flag, size_in_bytes;
-
-int
-main (int argc, char **argv)
-@{
- // Invokes ctor `GetOpt (int argc, char **argv,
- // char *optstring);'
- GetOpt getopt (argc, argv, "dcs:");
- int option_char;
-
- // Invokes member function `int operator ()(void);'
- while ((option_char = getopt ()) != EOF)
- switch (option_char)
- @{
- case 'd': debug_flag = 1; break;
- case 'c': compile_flag = 1; break;
- case 's': size_in_bytes = atoi (getopt.optarg); break;
- case '?': fprintf (stderr,
- "usage: %s [dcs]\n", argv[0]);
- @}
-@}
-@end smallexample
-
-Unlike the C library version, the libg++ GetOpt class uses its
-constructor to initialize class data members containing the argument
-count, argument vector, and the option string. This simplifies the
-interface for each subsequent call to member function @code{int operator
-()(void)}.
-
-The C version, on the other hand, uses hidden static variables to retain
-the option string and argument list values between calls to
-@code{getopt}. This complicates the @code{getopt} interface since the
-argument count, argument vector, and option string must be passed as
-parameters for each invocation. For the C version, the loop in the
-previous example becomes:
-
-@smallexample
- while ((option_char = getopt (argc, argv, "dcs:")) != EOF)
- // ...
-@end smallexample
-
-which requires extra overhead to pass the parameters for every call.
-
-Along with the GetOpt constructor and @code{int operator ()(void)},
-the other relevant elements of class GetOpt are:
-
-@table @code
-@item char *optarg
-Used for communication from @code{operator ()(void)} to the caller.
-When @code{operator ()(void)} finds an option that takes an argument, the
-argument value is stored here.
-@item int optind
-Index in @code{argv} of the next element to be scanned.
-This is used for communication to and from the caller
-and for communication between successive calls to @code{operator ()(void)}.
-
-When @code{operator ()(void)} returns EOF, this is the index of the
-first of the non-option elements that the caller should itself scan.
-
-Otherwise, @code{optind} communicates from one call to the next how much
-of @code{argv} has been scanned so far.
-@end table
-
-The libg++ version of GetOpt acts like standard UNIX @code{getopt} for
-the calling routine, but it behaves differently for the user, since it
-allows the user to intersperse the options with the other arguments.
-
-As GetOpt works, it permutes the elements of @code{argv} so that, when
-it is done, all the options precede everything else. Thus all
-application programs are extended to handle flexible argument order.
-
-Setting the environment variable _POSIX_OPTION_ORDER disables
-permutation. Then the behavior is completely standard.
-
-@ignore
-((Left out because it is not part of libg++ proper, and does not
-use the library copyright.))
-
-@node Gperf, Projects, GetOpt, Top
-@chapter A Perfect Hash Function Generator
-
-GNU GPERF is a utility program that automatically generates perfect hash
-functions from a list of keywords. The GNU C, GNU C++, GNU Pascal, GNU
-Modula 3 compilers and the GNU indent code formatting program all
-utilize reserved word recognizer routines generated by GPERF. Complete
-documentation and source code is available in the ./gperf subdirectory
-in the libg++ distribution. A paper describing GPERF in detail is
-available in the proceedings of the USENIX Second C++ Conference.
-@end ignore
-
-@node Projects, , GetOpt, Top
-@chapter Projects and other things left to do
-
-@section Coming Attractions
-
-Some things that will probably be available in libg++ in the near future:
-
-@itemize @bullet
-
-@item
-Revamped C-compatibility header files that will be compatible with
-the forthcoming (ANSI-based) GNU libc.a
-
-@item
-A revision of the File-based classes that will use the GNU stdio library,
-and also be 100% compatible (even at the streambuf level) with the AT&T
-2.0 stream classes.
-
-@item
-Additional container class prototypes.
-
-@item
-generic Matrix class prototypes.
-
-@item
-A task package probably based on Dirk Grunwald's threads package.
-
-@end itemize
-
-@section Wish List
-
-Some things that people have mentioned that they would like to
-see in libg++, but for which there have not been any offers:
-
-@itemize @bullet
-
-@item
-A method to automatically convert or incorporate libg++ classes
-so they can be used directly in Gorlen's OOPS environment.
-
-@item
-A class browser.
-
-@item
-A better general exception-handling strategy.
-
-@item
-Better documentation.
-
-@end itemize
-
-@section How to contribute
-
-Programmers who have written C++ classes that they believe to
-be of general interest are encourage to write to dl at rocky.oswego.edu.
-Contributing code is not difficult. Here are some general guidelines:
-
-@itemize @bullet
-
-@item
-FSF must maintain the right to accept or reject potential contributions.
-Generally, the only reasons for rejecting contributions are cases where
-they duplicate existing or nearly-released code, contain unremovable
-specific machine dependencies, or are somehow incompatible with the
-rest of the library.
-
-@item
-Acceptance of contributions means that the code is accepted for adaptation
-into libg++. FSF must reserve the right to make various editorial changes
-in code. Very often, this merely entails formatting, maintenance of various
-conventions, etc. Contributors are always given authorship credit and shown
-the final version for approval.
-
-@item
-Contributors must assign their copyright to FSF via a form sent out
-upon acceptance. Assigning copyright to FSF ensures that the code
-may be freely distributed.
-
-@item
-Assistance in providing documentation, test files, and debugging
-support is strongly encouraged.
-
-@end itemize
-
-Extensions, comments, and suggested modifications of existing libg++
-features are also very welcome.
-@contents
-@bye
diff --git a/contrib/libg++/libg++/src/ACG.cc b/contrib/libg++/libg++/src/ACG.cc
deleted file mode 100644
index b8a3c89e582a6..0000000000000
--- a/contrib/libg++/libg++/src/ACG.cc
+++ /dev/null
@@ -1,292 +0,0 @@
-// This may look like C code, but it is really -*- C++ -*-
-/*
-Copyright (C) 1989 Free Software Foundation
-
-This file is part of the GNU C++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library is distributed in the hope
-that it will be useful, but WITHOUT ANY WARRANTY; without even the
-implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE. See the GNU Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include
-#include
-
-//
-// This is an extension of the older implementation of Algorithm M
-// which I previously supplied. The main difference between this
-// version and the old code are:
-//
-// + Andres searched high & low for good constants for
-// the LCG.
-//
-// + theres more bit chopping going on.
-//
-// The following contains his comments.
-//
-// agn@UNH.CS.CMU.EDU sez..
-//
-// The generator below is based on 2 well known
-// methods: Linear Congruential (LCGs) and Additive
-// Congruential generators (ACGs).
-//
-// The LCG produces the longest possible sequence
-// of 32 bit random numbers, each being unique in
-// that sequence (it has only 32 bits of state).
-// It suffers from 2 problems: a) Independence
-// isnt great, that is the (n+1)th number is
-// somewhat related to the preceding one, unlike
-// flipping a coin where knowing the past outcomes
-// dont help to predict the next result. b)
-// Taking parts of a LCG generated number can be
-// quite non-random: for example, looking at only
-// the least significant byte gives a permuted
-// 8-bit counter (that has a period length of only
-// 256). The advantage of an LCA is that it is
-// perfectly uniform when run for the entire period
-// length (and very uniform for smaller sequences
-// too, if the parameters are chosen carefully).
-//
-// ACGs have extremly long period lengths and
-// provide good independence. Unfortunately,
-// uniformity isnt not too great. Furthermore, I
-// didnt find any theoretically analysis of ACGs
-// that addresses uniformity.
-//
-// The RNG given below will return numbers
-// generated by an LCA that are permuted under
-// control of a ACG. 2 permutations take place: the
-// 4 bytes of one LCG generated number are
-// subjected to one of 16 permutations selected by
-// 4 bits of the ACG. The permutation a such that
-// byte of the result may come from each byte of
-// the LCG number. This effectively destroys the
-// structure within a word. Finally, the sequence
-// of such numbers is permuted within a range of
-// 256 numbers. This greatly improves independence.
-//
-//
-// Algorithm M as describes in Knuths "Art of Computer Programming",
-// Vol 2. 1969
-// is used with a linear congruential generator (to get a good uniform
-// distribution) that is permuted with a Fibonacci additive congruential
-// generator to get good independence.
-//
-// Bit, byte, and word distributions were extensively tested and pass
-// Chi-squared test near perfect scores (>7E8 numbers tested, Uniformity
-// assumption holds with probability > 0.999)
-//
-// Run-up tests for on 7E8 numbers confirm independence with
-// probability > 0.97.
-//
-// Plotting random points in 2d reveals no apparent structure.
-//
-// Autocorrelation on sequences of 5E5 numbers (A(i) = SUM X(n)*X(n-i),
-// i=1..512)
-// results in no obvious structure (A(i) ~ const).
-//
-// Except for speed and memory requirements, this generator outperforms
-// random() for all tests. (random() scored rather low on uniformity tests,
-// while independence test differences were less dramatic).
-//
-// AGN would like to..
-// thanks to M.Mauldin, H.Walker, J.Saxe and M.Molloy for inspiration & help.
-//
-// And I would (DGC) would like to thank Donald Kunth for AGN for letting me
-// use his extensions in this implementation.
-//
-
-//
-// Part of the table on page 28 of Knuth, vol II. This allows us
-// to adjust the size of the table at the expense of shorter sequences.
-//
-
-static randomStateTable[][3] = {
-{3,7,16}, {4,9, 32}, {3,10, 32}, {1,11, 32}, {1,15,64}, {3,17,128},
-{7,18,128}, {3,20,128}, {2,21, 128}, {1,22, 128}, {5,23, 128}, {3,25, 128},
-{2,29, 128}, {3,31, 128}, {13,33, 256}, {2,35, 256}, {11,36, 256},
-{14,39,256}, {3,41,256}, {9,49,256}, {3,52,256}, {24,55,256}, {7,57, 256},
-{19,58,256}, {38,89,512}, {17,95,512}, {6,97,512}, {11,98,512}, {-1,-1,-1} };
-
-//
-// spatial permutation table
-// RANDOM_PERM_SIZE must be a power of two
-//
-
-#define RANDOM_PERM_SIZE 64
-_G_uint32_t randomPermutations[RANDOM_PERM_SIZE] = {
-0xffffffff, 0x00000000, 0x00000000, 0x00000000, // 3210
-0x0000ffff, 0x00ff0000, 0x00000000, 0xff000000, // 2310
-0xff0000ff, 0x0000ff00, 0x00000000, 0x00ff0000, // 3120
-0x00ff00ff, 0x00000000, 0xff00ff00, 0x00000000, // 1230
-
-0xffff0000, 0x000000ff, 0x00000000, 0x0000ff00, // 3201
-0x00000000, 0x00ff00ff, 0x00000000, 0xff00ff00, // 2301
-0xff000000, 0x00000000, 0x000000ff, 0x00ffff00, // 3102
-0x00000000, 0x00000000, 0x00000000, 0xffffffff, // 2103
-
-0xff00ff00, 0x00000000, 0x00ff00ff, 0x00000000, // 3012
-0x0000ff00, 0x00000000, 0x00ff0000, 0xff0000ff, // 2013
-0x00000000, 0x00000000, 0xffffffff, 0x00000000, // 1032
-0x00000000, 0x0000ff00, 0xffff0000, 0x000000ff, // 1023
-
-0x00000000, 0xffffffff, 0x00000000, 0x00000000, // 0321
-0x00ffff00, 0xff000000, 0x00000000, 0x000000ff, // 0213
-0x00000000, 0xff000000, 0x0000ffff, 0x00ff0000, // 0132
-0x00000000, 0xff00ff00, 0x00000000, 0x00ff00ff // 0123
-};
-
-//
-// SEED_TABLE_SIZE must be a power of 2
-//
-#define SEED_TABLE_SIZE 32
-static _G_uint32_t seedTable[SEED_TABLE_SIZE] = {
-0xbdcc47e5, 0x54aea45d, 0xec0df859, 0xda84637b,
-0xc8c6cb4f, 0x35574b01, 0x28260b7d, 0x0d07fdbf,
-0x9faaeeb0, 0x613dd169, 0x5ce2d818, 0x85b9e706,
-0xab2469db, 0xda02b0dc, 0x45c60d6e, 0xffe49d10,
-0x7224fea3, 0xf9684fc9, 0xfc7ee074, 0x326ce92a,
-0x366d13b5, 0x17aaa731, 0xeb83a675, 0x7781cb32,
-0x4ec7c92d, 0x7f187521, 0x2cf346b4, 0xad13310f,
-0xb89cff2b, 0x12164de1, 0xa865168d, 0x32b56cdf
-};
-
-//
-// The LCG used to scramble the ACG
-//
-//
-// LC-parameter selection follows recommendations in
-// "Handbook of Mathematical Functions" by Abramowitz & Stegun 10th, edi.
-//
-// LC_A = 251^2, ~= sqrt(2^32) = 66049
-// LC_C = result of a long trial & error series = 3907864577
-//
-
-static const _G_uint32_t LC_A = 66049;
-static const _G_uint32_t LC_C = 3907864577;
-static inline _G_uint32_t LCG(_G_uint32_t x)
-{
- return( x * LC_A + LC_C );
-}
-
-
-ACG::ACG(_G_uint32_t seed, int size)
-{
- register int l;
- initialSeed = seed;
-
- //
- // Determine the size of the state table
- //
-
- for (l = 0;
- randomStateTable[l][0] != -1 && randomStateTable[l][1] < size;
- l++);
-
- if (randomStateTable[l][1] == -1) {
- l--;
- }
-
- initialTableEntry = l;
-
- stateSize = randomStateTable[ initialTableEntry ][ 1 ];
- auxSize = randomStateTable[ initialTableEntry ][ 2 ];
-
- //
- // Allocate the state table & the auxillary table in a single malloc
- //
-
- state = new _G_uint32_t[stateSize + auxSize];
- auxState = &state[stateSize];
-
- reset();
-}
-
-//
-// Initialize the state
-//
-void
-ACG::reset()
-{
- register _G_uint32_t u;
-
- if (initialSeed < SEED_TABLE_SIZE) {
- u = seedTable[ initialSeed ];
- } else {
- u = initialSeed ^ seedTable[ initialSeed & (SEED_TABLE_SIZE-1) ];
- }
-
-
- j = randomStateTable[ initialTableEntry ][ 0 ] - 1;
- k = randomStateTable[ initialTableEntry ][ 1 ] - 1;
-
- register int i;
- for(i = 0; i < stateSize; i++) {
- state[i] = u = LCG(u);
- }
-
- for (i = 0; i < auxSize; i++) {
- auxState[i] = u = LCG(u);
- }
-
- k = u % stateSize;
- int tailBehind = (stateSize - randomStateTable[ initialTableEntry ][ 0 ]);
- j = k - tailBehind;
- if (j < 0) {
- j += stateSize;
- }
-
- lcgRecurr = u;
-
- assert(sizeof(double) == 2 * sizeof(_G_int32_t));
-}
-
-ACG::~ACG()
-{
- if (state) delete state;
- state = 0;
- // don't delete auxState, it's really an alias for state.
-}
-
-//
-// Returns 32 bits of random information.
-//
-
-_G_uint32_t
-ACG::asLong()
-{
- _G_uint32_t result = state[k] + state[j];
- state[k] = result;
- j = (j <= 0) ? (stateSize-1) : (j-1);
- k = (k <= 0) ? (stateSize-1) : (k-1);
-
- short int auxIndex = (result >> 24) & (auxSize - 1);
- register _G_uint32_t auxACG = auxState[auxIndex];
- auxState[auxIndex] = lcgRecurr = LCG(lcgRecurr);
-
- //
- // 3c is a magic number. We are doing four masks here, so we
- // do not want to run off the end of the permutation table.
- // This insures that we have always got four entries left.
- //
- register _G_uint32_t *perm = & randomPermutations[result & 0x3c];
-
- result = *(perm++) & auxACG;
- result |= *(perm++) & ((auxACG << 24)
- | ((auxACG >> 8)& 0xffffff));
- result |= *(perm++) & ((auxACG << 16)
- | ((auxACG >> 16) & 0xffff));
- result |= *(perm++) & ((auxACG << 8)
- | ((auxACG >> 24) & 0xff));
-
- return(result);
-}
diff --git a/contrib/libg++/libg++/src/ACG.h b/contrib/libg++/libg++/src/ACG.h
deleted file mode 100644
index aa1d25914a834..0000000000000
--- a/contrib/libg++/libg++/src/ACG.h
+++ /dev/null
@@ -1,68 +0,0 @@
-// This may look like C code, but it is really -*- C++ -*-
-/*
-Copyright (C) 1988 Free Software Foundation
- written by Dirk Grunwald (grunwald@cs.uiuc.edu)
-
-This file is part of the GNU C++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library is distributed in the hope
-that it will be useful, but WITHOUT ANY WARRANTY; without even the
-implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE. See the GNU Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-#ifndef _ACG_h
-#define _ACG_h 1
-
-#include
-#include
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-//
-// Additive number generator. This method is presented in Volume II
-// of The Art of Computer Programming by Knuth. I've coded the algorithm
-// and have added the extensions by Andres Nowatzyk of CMU to randomize
-// the result of algorithm M a bit by using an LCG & a spatial
-// permutation table.
-//
-// The version presented uses the same constants for the LCG that Andres
-// uses (chosen by trial & error). The spatial permutation table is
-// the same size (it's based on word size). This is for 32-bit words.
-//
-// The ``auxillary table'' used by the LCG table varies in size, and
-// is chosen to be the the smallest power of two which is larger than
-// twice the size of the state table.
-//
-
-class ACG : public RNG {
-
- _G_uint32_t initialSeed; // used to reset generator
- int initialTableEntry;
-
- _G_uint32_t *state;
- _G_uint32_t *auxState;
- short stateSize;
- short auxSize;
- _G_uint32_t lcgRecurr;
- short j;
- short k;
-
-protected:
-
-public:
- ACG(_G_uint32_t seed = 0, int size = 55);
- virtual ~ACG();
- //
- // Return a long-words word of random bits
- //
- virtual _G_uint32_t asLong();
- virtual void reset();
-};
-
-#endif
diff --git a/contrib/libg++/libg++/src/AllocRing.cc b/contrib/libg++/libg++/src/AllocRing.cc
deleted file mode 100644
index 883288ab04803..0000000000000
--- a/contrib/libg++/libg++/src/AllocRing.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-// This may look like C code, but it is really -*- C++ -*-
-/*
-Copyright (C) 1989 Free Software Foundation
- written by Doug Lea (dl@rocky.oswego.edu)
-
-This file is part of the GNU C++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library is distributed in the hope
-that it will be useful, but WITHOUT ANY WARRANTY; without even the
-implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE. See the GNU Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include
-#include
-#include
-
-AllocRing::AllocRing(int max)
- :nodes(new AllocQNode[max]), n(max), current(0)
-{
- for (int i = 0; i < n; ++i)
- {
- nodes[i].ptr = 0;
- nodes[i].sz = 0;
- }
-}
-
-int AllocRing::find(void* p)
-{
- if (p == 0) return -1;
-
- for (int i = 0; i < n; ++i)
- if (nodes[i].ptr == p)
- return i;
-
- return -1;
-}
-
-
-void AllocRing::clear()
-{
- for (int i = 0; i < n; ++i)
- {
- if (nodes[i].ptr != 0)
- {
- delete(nodes[i].ptr);
- nodes[i].ptr = 0;
- }
- nodes[i].sz = 0;
- }
- current = 0;
-}
-
-
-void AllocRing::free(void* p)
-{
- int idx = find(p);
- if (idx >= 0)
- {
- delete nodes[idx].ptr;
- nodes[idx].ptr = 0;
- }
-}
-
-AllocRing::~AllocRing()
-{
- clear();
-}
-
-int AllocRing::contains(void* p)
-{
- return find(p) >= 0;
-}
-
-static inline unsigned int good_size(unsigned int s)
-{
- unsigned int req = s + 4;
- unsigned int good = 8;
- while (good < req) good <<= 1;
- return good - 4;
-}
-
-void* AllocRing::alloc(int s)
-{
- unsigned int size = good_size(s);
-
- void* p;
- if (nodes[current].ptr != 0 &&
- nodes[current].sz >= int(size) &&
- nodes[current].sz < int(4 * size))
- p = nodes[current].ptr;
- else
- {
- if (nodes[current].ptr != 0) operator delete (nodes[current].ptr);
- p = operator new (size);
- nodes[current].ptr = p;
- nodes[current].sz = size;
- }
- ++current;
- if (current >= n) current = 0;
- return p;
-}
diff --git a/contrib/libg++/libg++/src/AllocRing.h b/contrib/libg++/libg++/src/AllocRing.h
deleted file mode 100644
index fc8b30c44d556..0000000000000
--- a/contrib/libg++/libg++/src/AllocRing.h
+++ /dev/null
@@ -1,62 +0,0 @@
-// This may look like C code, but it is really -*- C++ -*-
-/*
-Copyright (C) 1989 Free Software Foundation
- written by Doug Lea (dl@rocky.oswego.edu)
-
-This file is part of the GNU C++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library is distributed in the hope
-that it will be useful, but WITHOUT ANY WARRANTY; without even the
-implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE. See the GNU Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-
-#ifndef _AllocRing_h
-#ifdef __GNUG__
-#pragma interface
-#endif
-#define _AllocRing_h 1
-
-
-/*
- An AllocRing holds the last n malloc'ed strings, reallocating/reusing
- one only when the queue wraps around. It thus guarantees that the
- last n allocations are intact. It is useful for things like I/O
- formatting where reasonable restrictions may be made about the
- number of allowable live allocations before auto-deletion.
-*/
-
-class AllocRing
-{
-
- struct AllocQNode
- {
- void* ptr;
- int sz;
- };
-
- AllocQNode* nodes;
- int n;
- int current;
-
- int find(void* p);
-
-public:
-
- AllocRing(int max);
- ~AllocRing();
-
- void* alloc(int size);
- int contains(void* ptr);
- void clear();
- void free(void* p);
-};
-
-
-#endif
diff --git a/contrib/libg++/libg++/src/Binomial.cc b/contrib/libg++/libg++/src/Binomial.cc
deleted file mode 100644
index 8e2b56d71ab30..0000000000000
--- a/contrib/libg++/libg++/src/Binomial.cc
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright (C) 1988 Free Software Foundation
- written by Dirk Grunwald (grunwald@cs.uiuc.edu)
-
-This file is part of the GNU C++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library is distributed in the hope
-that it will be useful, but WITHOUT ANY WARRANTY; without even the
-implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE. See the GNU Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include
-#include
-#include