libtool, java woes
Alexandre Oliva
aoliva@redhat.com
Mon Apr 9 00:11:00 GMT 2001
On Apr 8, 2001, Jeff Sturm <jsturm@one-point.com> wrote:
> That didn't become a problem for libjava until libsupc++ began using CXX
> to link:
> http://gcc.gnu.org/ml/gcc-patches/2001-03/msg01870.html
> Until then, -lc didn't appear in deplibs so the link order didn't really
> matter.
Yep. libsupc++ is linked with -lc. Since libsupc++ appears before
-lpthread in the libgcj link command line, -lc gets linked in first.
The solution is to move -lpthread first, or get libsupc++ linked with
-lpthread. The former is probably best for libgcj.
> 2) If we do want to fix it, do we attempt to change libtool or work around
> it? I'm not suggesting we revert the patch because it is important for
> libstdc++.
> My feeling is that allowing libtool to muck with the link order is asking
> for trouble
It doesn't muck with the link order. It does it exactly right:
libsupc++ goes in first, along with its dependencies. Then comes
libpthread. Unfortunately, libsupc++ brings in the wrong
dependencies.
> I understand why the two language frontends are codependent. But very
> little of the language runtimes are actually shared. If those pieces
> moved to libjava there might be fewer problems ahead. Besides, it is not
> clear to me why libsupc++ ought to be shared...
What I don't understand is why libgcj is linked with libsupc++, and
not with libstdc++. Linking with libsupc++ means that, if a program
is linked with both libstdc++ and libgcj, it may get two copies of
libsupc++'s symbols (because libstdc++ isn't linked with libsupc++;
rather it contains copies of its symbols).
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist *Please* write to mailing lists, not to me
More information about the Java
mailing list