Unresolved references to __builtin functions building libgcj

Bryce McKinlay bryce@albatross.co.nz
Wed Oct 11 19:05:00 GMT 2000


Alexandre Oliva wrote:

> On Oct 11, 2000, Bryce McKinlay <bryce@albatross.co.nz> wrote:
>
> > Attempting to build libgcj with the latest compiler dies for me with the
> > following link failure:
>
> > ./.libs/libgcj.so: undefined reference to `__pure_virtual'
> > ./.libs/libgcj.so: undefined reference to `terminate(void)'
> > ./.libs/libgcj.so: undefined reference to `__builtin_vec_new'
> > ./.libs/libgcj.so: undefined reference to `__builtin_new'
>
> Same here.  That's probably because the C++-specific functions that
> used to be in libgcc have moved to libstdc++ and libsupc++ (the latter
> on v3 only?).

Right. And for some reason libgcj isn't linked to libstdc++:

$ ldd ./libgcj.so.1.0.0
        libdl.so.2 => /lib/libdl.so.2 (0x40372000)
        libc.so.6 => /lib/libc.so.6 (0x40376000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

It should be, right? So I added an explicit -lstdc++. Now I'm getting this:

./.libs/libgcj.so: undefined reference to `std::terminate(void)'

Which doesn't exist in libstdc++ at all:

$ nm libstdc++-3-libc6.1-2-2.10.0.so | grep terminate
00025f84 T __default_terminate
00025fa0 T __terminate
0003a3c0 D __terminate_func
00019690 T set_terminate__FPFv_v
0002af70 W
terminate__Ct12basic_string3ZcZt18string_char_traits1ZcZt24__default_alloc_template2b1i0

00019654 T terminate__Fv

regards

  [ bryce ]




More information about the Gcc-bugs mailing list