Hello, I recently tried to upgrade my glibc from 2.2.5 to 2.3.2 on my
RH7.3 box. glibc 2.2.5 is still there but I can no longer use GCC 3.2.1
(I had both GCC 3.2.1 and 2.96 working just fine on this system prior to
the upgrade.)

When I try to recompile gcc 3.2.1, just as I did originally (with GCC
2.96), I get these errors (after `make clean`, `configure`, then `make`,
from the "build" directory. Also note GCC 3.2.1 is from a source rpm.)
Note, before all this, when I first installed GCC 3.2.1, it compiled
just fine, never changed any source or anything.


$ make clean; ../configure --prefix=/usr/local
$ make
[...]
jargrep.o: In function `extract_line':
/usr/src/redhat/SOURCES/gcc-3.2-20020903/build/fastjar/../../fastjar/
jargrep.c:347: undefined reference to `__ctype_b_loc'
/usr/src/redhat/SOURCES/gcc-3.2-20020903/build/fastjar/../../fastjar/
jargrep.c:349: undefined reference to `__ctype_b_loc'

jargrep.o: In function `chk_wrd':
/usr/src/redhat/SOURCES/gcc-3.2-20020903/build/fastjar/../../fastjar/
jargrep.c:386: undefined reference to `__ctype_b_loc'
/usr/src/redhat/SOURCES/gcc-3.2-20020903/build/fastjar/../../fastjar/
jargrep.c:392: undefined reference to `__ctype_b_loc'

jargrep.o: In function `mk_ascii':
/usr/src/redhat/SOURCES/gcc-3.2-20020903/build/fastjar/../../fastjar/
jargrep.c:498: undefined reference to `__ctype_b_loc'


And the existing GCC 3.2.1 seems really broken now:

$ cat program.c
main(){}

# gcc 2.95
$ /usr/bin/gcc program.c

# gcc 3.2.1
$ /usr/local/bin/gcc program.c
/usr/local/lib/libc_nonshared.a(elf-init.oS): In function
`__libc_csu_init':
/usr/src/redhat/SOURCES/glibc-2.3.2-20030312/csu/elf-init.c:64:
undefined reference to `__init_array_end'
/usr/src/redhat/SOURCES/glibc-2.3.2-20030312/csu/elf-init.c:64:
undefined reference to `__init_array_start'
/usr/src/redhat/SOURCES/glibc-2.3.2-20030312/csu/elf-init.c:67:
undefined reference to `__init_array_start'

/usr/local/lib/libc_nonshared.a(elf-init.oS): In function
`__libc_csu_fini':
/usr/src/redhat/SOURCES/glibc-2.3.2-20030312/csu/elf-init.c:76:
undefined reference to `__fini_array_end'
/usr/src/redhat/SOURCES/glibc-2.3.2-20030312/csu/elf-init.c:76:
undefined reference to `__fini_array_start'
/usr/src/redhat/SOURCES/glibc-2.3.2-20030312/csu/elf-init.c:78:
undefined reference to `__fini_array_start'
/usr/local/lib/libc.so.6: undefined reference to
`__libc_stack_end@GLIBC_PRIVATE'
collect2: ld returned 1 exit status


It seems it does not like something from the glibc 2.3.2 that I tried ot
install. It installed into /usr/local/lib while the old 2.2.5 glibs
stuff remains in /lib and /usr/lib. GCC 3.2.1 had originally been
installed in /usr/local too so I'm wondering if glibc 2.3.2 install
overrided something GCC uses in there???

(I even tried reisntalling all the glibc rpms (glibc, common, devel,
utils) 2.2.5, zlib,
ncurses (devel, c++-devel) 5.2-26, and gcc (c++, chill, objc) 2.96-113,
just in case. I even reisntalled libgcc-3.2.2-5.fdr.0.rh73.i386.rpm, but
that did nothing.)

I just don't understand why GCC 3.2.1 has simply stopped working. Do I
need to some how glibc 2.3.2 (if so, how is this done?) or is there a
way ot keep it and make GCC 3.2.1 point back to 2.2.5, or make it
recompile???

Thanks greatly for any help.