On Aug 1, 2011, at 10:02 AM, Bjoern Michaelsen wrote:
> On Mon, 1 Aug 2011 08:42:21 +0200
> Stephan Bergmann
> <stephan.bergmann.secondary-gM/ye1e23mwn+bqq9rb...@public.gmane.org>
> wrote:
>> Generally, existing code (i.e., extensions) having a recorded
>> dependency against libuno_salhelpergcc3.so.3 will no longer work if
>> they do not find a file with that exact name.
> 
> Right, but extensions would not be run against the solver, but against
> an installation (where I suggested one needs to keep symlinks anyway).
> The suggestion was:
> - keep no SONAME or libuno_salhelpergcc3.so (unversioned) in solver and
>  installation
> - still generate symlinks in installation so that in a installation
>  (but not in solver), both libuno_salhelpergcc3.so and
>  libuno_salhelpergcc3.so.3 are visible.

OK, I see.

>> I strongly suggest to add SONAME support to gbuild.  For one, it is
>> common ELF practice to use external versioning (i.e., via a
>> trailing .so.X at a library's filename/SONAME) to discriminate among
>> incompatible versions of a library.
> 
> I came to the same conclusion: While the other scenario might work, it
> will end up like a evil genius dialog in the end: "But why did you do
> this?" -- "Because I can!". Thats not a good reason in itself.
> 
> But maybe even the symlinks do not need to be manually declared and
> created in solver. To follow the conventions of the host system calling
> "ldconfig -n $OUTDIR/lib" after installing and before using the
> lib should be enough. However, experimenting with this does not seem to
> create an unversioned symlink. I created a dir with a few random libs:
>       libxml2.so.2.7.8 (SONAME:libxml2.so.2)
>       libcairo.so.2.11000.2 (SONAME: libcairo.so.2)
>       libuno_salhelpergcc3.so.3 (SONAME: libuno_salhelpergcc3.so.3)
> and got:
>       libuno_salhelpergcc3.so.3 -> libuno_salhelpergcc3.so.3
>       libxml2.so.2 -> libxml2.so.2.7.8
>       libcairo.so.2 -> libcairo.so.2.11000.2
> so it does not create symlinks for the unversioned so (although those
> are quite common in /usr/lib here).
> For fun I move the lib libuno_salhelpergcc3.so.3 to
> libuno_salhelpergcc3.so and got:
>       libuno_salhelpergcc3.so.3 -> libuno_salhelpergcc3.so (changed)
>       libxml2.so.2 -> libxml2.so.2.7.8
>       libcairo.so.2 -> libcairo.so.2.11000.2
> Which does not make me happy either. So I guess we need to create the
> symlinks (at least the unversioned ones) manually indeed.

And I would create the symlinks in the solver explicitly, anyway, not via 
ldconfig.  ldconfig is imprecise, in that it takes a whole directory as input; 
and you would want to be able to link against a lib as soon as it is built, so 
would call ldconfig multiple times on $OUTDIR/lib (right?), which sounds like a 
bad idea in a parallel build.

-Stephan
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to