This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Unresolved references to __builtin functions building libgcj


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 ]



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]