This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Bootstrap fails in 32bit libjava on x86_64 Fedora 16 with undefined reference to `__cxa_call_unexpected'
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: GCC Development <gcc at gcc dot gnu dot org>
- Cc: Tom Tromey <tromey at redhat dot com>
- Date: Mon, 21 Nov 2011 00:53:20 +0100
- Subject: Bootstrap fails in 32bit libjava on x86_64 Fedora 16 with undefined reference to `__cxa_call_unexpected'
Hello!
For some reason bootstrap on Fedora 16 fails when compiling 32bit
libjava with undefined reference to `__cxa_call_unexpected':
libtool: link: /home/uros/gcc-build/./gcc/xgcc -shared-libgcc
-B/home/uros/gcc-build/./gcc -nostdinc++
-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libstdc++-v3/src
-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs
-B/usr/local/x86_64-unknown-linux-gnu/bin/
-B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem
/usr/local/x86_64-unknown-linux-gnu/include -isystem
/usr/local/x86_64-unknown-linux-gnu/sys-include -m32 -shared
-nostdlib /usr/lib/../lib/crti.o
/home/uros/gcc-build/./gcc/32/crtbeginS.o .libs/jni-libjvm.o
-Wl,-rpath -Wl,/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libjava/.libs
-Wl,-rpath -Wl,/usr/local/lib/../lib
-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libjava/.libs
-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libstdc++-v3/src
-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs
./.libs/libgcj.so
-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libjava -lpthread
-lrt -ldl -L/home/uros/gcc-build/./gcc/32 -L/lib/../lib
-L/usr/lib/../lib -L/home/uros/gcc-build/./gcc
-L/usr/local/x86_64-unknown-linux-gnu/bin
-L/usr/local/x86_64-unknown-linux-gnu/lib -lc -lgcc_s
/home/uros/gcc-build/./gcc/32/crtendS.o /usr/lib/../lib/crtn.o -m32
-m32 -m32 -Wl,-Bsymbolic -Wl,-soname -Wl,libjvm.so -o
.libs/libjvm.so
libtool: link: ( cd ".libs" && rm -f "libgcj_bc.la" && ln -s
"../libgcj_bc.la" "libgcj_bc.la" )
libtool: link: /home/uros/gcc-build/./gcc/xgcc -shared-libgcc
-B/home/uros/gcc-build/./gcc -nostdinc++
-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libstdc++-v3/src
-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs
-B/usr/local/x86_64-unknown-linux-gnu/bin/
-B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem
/usr/local/x86_64-unknown-linux-gnu/include -isystem
/usr/local/x86_64-unknown-linux-gnu/sys-include -m32 -shared
-nostdlib /usr/lib/../lib/crti.o
/home/uros/gcc-build/./gcc/32/crtbeginS.o .libs/gij.o -Wl,-rpath
-Wl,/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libjava/.libs
-Wl,-rpath -Wl,/usr/local/lib/../lib
-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libjava/.libs
-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libstdc++-v3/src
-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs
./.libs/libgcj.so
-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/32/libjava -lpthread
-lrt -ldl -L/home/uros/gcc-build/./gcc/32 -L/lib/../lib
-L/usr/lib/../lib -L/home/uros/gcc-build/./gcc
-L/usr/local/x86_64-unknown-linux-gnu/bin
-L/usr/local/x86_64-unknown-linux-gnu/lib -lc -lgcc_s
/home/uros/gcc-build/./gcc/32/crtendS.o /usr/lib/../lib/crtn.o -m32
-m32 -m32 -Wl,-Bsymbolic -Wl,-soname -Wl,libgij.so.13 -o
.libs/libgij.so.13.0.0
./.libs/libgcj.so: undefined reference to `__cxa_call_unexpected'
collect2: error: ld returned 1 exit status
make[3]: *** [jv-convert] Error 1
make[3]: *** Waiting for unfinished jobs....
libtool: link: ( cd ".libs" && rm -f "libjvm.la" && ln -s
"../libjvm.la" "libjvm.la" )
./.libs/libgcj.so: undefined reference to `__cxa_call_unexpected'
collect2: error: ld returned 1 exit status
make[3]: *** [gcj-dbtool] Error 1
Digging a bit deeper with:
find . -name '*.o' | xargs nm -o | grep __cxa_call_unexpected
./32/libjava/.libs/prims.o: U __cxa_call_unexpected
Googling a bit around the net, it looks that this file is wrongly
compiled to use C++ exception code, not java exception code.
Any hints what is going wrong there?
Thanks,
Uros.