undefined `__terminate_set_func@GCC_3.0'

Per Bothner per@bothner.com
Sun Feb 4 08:43:00 GMT 2001


While doing a 'make boostrap' on Red Hat Linux 7.0, I got the following
error message:

home/bothner/GNU/linux-gcc/gcc/gcj -B/home/bothner/GNU/linux-gcc/i686-pc-linux-gnu/libjava/ -B/home/bothner/GNU/linux-gcc/gcc/ -g -ffloat-store -o .libs/jv-convert --main=gnu.gcj.convert.Convert gnu/gcj/convert/.libs/BytesToUnicode.o gnu/gcj/convert/.libs/Convert.o gnu/gcj/convert/.libs/Input_8859_1.o gnu/gcj/convert/.libs/Input_ASCII.o gnu/gcj/convert/.libs/Input_EUCJIS.o gnu/gcj/convert/.libs/Input_JavaSrc.o gnu/gcj/convert/.libs/Input_SJIS.o gnu/gcj/convert/.libs/Input_UTF8.o gnu/gcj/convert/.libs/Input_iconv.o gnu/gcj/convert/.libs/IOConverter.o gnu/gcj/convert/.libs/Output_8859_1.o gnu/gcj/convert/.libs/Output_ASCII.o gnu/gcj/convert/.libs/Output_EUCJIS.o gnu/gcj/convert/.libs/Output_JavaSrc.o gnu/gcj/convert/.libs/Output_SJIS.o gnu/gcj/convert/.libs/Output_UTF8.o gnu/gcj/convert/.libs/Output_iconv.o gnu/gcj/convert/.libs/UnicodeToBytes.o  -L/home/bothner/GNU/linux-gcc/i686-pc-linux-gnu/libjava ./.libs/libgcj.so -L/home/bothner/GNU/linux-gcc/i686-pc-linux-gnu/libjava/..!
/libstdc++-v3/libsupc++ -lm -ldl ./../boehm-gc/.libs/libgcjgc.so -L/home/bothner/GNU/linux-gcc/i686-pc-linux-gnu/libjava/../boehm-gc/.libs -lpthread ./../zlib/.libs/libzgcj.so -L/home/bothner/GNU/linux-gcc/i686-pc-linux-gnu/libjava/../zlib/.libs -L/home/bothner/GNU/linux-gcc/i686-pc-linux-gnu/libjava/.libs -Wl,--rpath -Wl,/home/bothner/GNU/linux/lib
./.libs/libgcj.so: undefined reference to `__terminate_set_func@GCC_3.0'
collect2: ld returned 1 exit status
make[3]: *** [jv-convert] Error 1
make[3]: Leaving directory `/home/bothner/GNU/linux-gcc/i686-pc-linux-gnu/libjava'

I had configured with:

CFLAGS=-g /home/bothner/GNU/gcc/configure  --enable-threads=posix --prefix=/home/bothner/GNU/linux --enable-shared --enable-languages=c++,java

I'm guessing that has something to do with the shared libgcc problems others
have reported and/or this change:

2001-01-23  Chris Demetriou  <cgd@broadcom.com>

        * libgcc-std.ver (GCC_3.0): Add __terminate_func_set to list
        of EH symbols.
        * libgcc2.c (__terminate_func): Make variable static.
        (__terminate_set_func): New function to set __terminate_func.
        * libgcc2.h (__terminate_func_ptr): New typedef.
        (__terminate_set_func): New function.

but I'm afraid I have no idea how symbol versioning etc is supposed to
work.  Using nm I couldn't see that __terminate_set_func@GCC_3.0 was
different from other symbols (though I noticed that nm reported the
symbol names as __terminate_set_func@GCC_3.0 - with two '@'s).
-- 
	--Per Bothner
per@bothner.com   http://www.bothner.com/~per/


More information about the Gcc-bugs mailing list