[PATCH] Don't link ecj1 against libgcj.so.* (PR libgcj/38396)

Jakub Jelinek jakub@redhat.com
Thu Dec 18 13:45:00 GMT 2008


On Thu, Dec 18, 2008 at 01:55:19PM +0100, Ralf Wildenhues wrote:
> What I don't understand is that, what having plain
>   -L$(here)/.libs
> 
> (which Jakub's patch does) is desirable for.  It will lead to libtool
> adding this path as -L for the installed .la file later, and may even
> cause a run path to the build tree in installed libraries, which seems
> undesirable.

-lgcj_bc is added by gcj itself (from libgcj.spec) and -L$(here)/.libs
is needed so that gcj finds the newly built version of that library.

libgcj_bc.so* is a hackish library (libgcj_bc.so is not a symlink
to libgcj_bc.so.1*, but a dummy shared library for ld(1) use only,
which just exports a subset of libgcj.so.N symbols, while libgcj_bc.so.1*
defines no symbols at all and just depends on the latest libgcj.so.N).

The intent is that for -findirect-dispatch compiled/linked programs
you don't need to relink them with every GCC upgrade, they just
link against libgcj_bc.so.1 which changes far slower than libgcj.so.N.

	Jakub



More information about the Gcc-patches mailing list