Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


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+BqQ9rBEUg@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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.