With a clean, minimal RH 8.0 install, I try to build gcc-3.0.4 [ since I need it's ABI ]: mkdir ~/tmp ; cd ~/tmp tar xzf gcc-3.0.4 cd gcc* ./configure --prefix=/home/michael/tmp make ... In file included from locale.cc:557: /home/michael/tmp/gcc-3.0.4/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu/bits/ctype_noninline.h: In constructor `std::ctype<char>::ctype(const short unsigned int*, bool, unsigned int)': /home/michael/tmp/gcc-3.0.4/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu/bits/ctype_noninline.h:44: `__ctype_toupper' undeclared (first use this function) /home/michael/tmp/gcc-3.0.4/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu/bits/ctype_noninline.h:44: (Each undeclared identifier is reported only once for each function it appears in.) /home/michael/tmp/gcc-3.0.4/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu/bits/ctype_noninline.h:44: `__ctype_tolower' undeclared (first use this function) /home/michael/tmp/gcc-3.0.4/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu/bits/ctype_noninline.h:45: `__ctype_b' undeclared (first use this function) make[3]: *** [locale.lo] Error 1 make[3]: Leaving directory `/home/michael/tmp/gcc-3.0.4/i686-pc-linux-gnu/libstdc++-v3/src' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/michael/tmp/gcc-3.0.4/i686-pc-linux-gnu/libstdc++-v3' make[1]: *** [all-recursive-am] Error 2 make[1]: Leaving directory `/home/michael/tmp/gcc-3.0.4/i686-pc-linux-gnu/libstdc++-v3' make: *** [all-target-libstdc++-v3] Error 2 Other compilers such as gcc-3.2.1 build just fine; this same package builds perfectly on RH 7.3. Is it not the case that gcc should be buildable on a load of different, flakey systems such as AIX, Solaris etc. ? what gives ? glibc ?
libstdc++-v3 makes fairly big assumptions about glibc headers on glibc systems, and these assumptions are no longer true in glibc 2.3+. So you need to patch gcc 3.0.4 if you want to build it.