Re: Linker problems with system vs bundled libraries (RPATH vs RUNPATH)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday 25 of January 2019, Miklos Vajna wrote:
> On Fri, Jan 25, 2019 at 01:08:51PM +0100, Luboš Luňák 
<l.lunak@xxxxxxxxxxxxx> wrote:
> >  No, those messages are not the errors that cause the failures, I listed
> > it to show that the system lib is used even though there's the bundled
> > one.
>
> The DLP libs had this problem as well, and these days we just patch the
> externals to have a different .so name, see e.g.:
>
> external/libodfgen/libodfgen-bundled-soname.patch.0
>
> (Other DLP libs are built statically.)
>
> Would it be an option to do the same for the GPG stuff?

 I'm not sure. That'd make soffice.bin load both instances of the lib, which 
would solve the problem of some symbols missing. But having two different 
versions of the same lib could possibly also cause clashes between them, 
since ELF interposition could make e.g. libgpgme bind some symbols to the 
system lib and other to the bundled lib (I've actually tried that, see the 
attachment). Which we could either ignore (I don't know likely is that to 
cause a real problem) or we'd need to namespace/version the whole library 
(which I don't know how much work that'd be).

 In the case of libgpg-error, I still think upgrading the system lib should be 
the simplest and best option. If I'm not mistaken, the system used for 
Jenkins build is some CentOS version with quite old software (LO can't be 
even built using its libgpg-error), so in the case of this specific library 
people shouldn't generally run into this problem anyway.

-- 
 Luboš Luňák
 l.lunak@xxxxxxxxxxxxx

Attachment: test_duplicated_lib.tar.gz
Description: application/tgz

_______________________________________________
LibreOffice mailing list
LibreOffice@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/libreoffice

[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux