Bug#759538: libclang1-3.4: multiple versions of libclang causing codelite to segfault

James Cowgill james410 at cowgill.org.uk
Thu Aug 28 10:18:27 UTC 2014


On Thu, 28 Aug 2014 12:02:01 +0200 Sylvestre Ledru <sylvestre at debian.org> wrote:
> On 28/08/2014 11:41, James Cowgill wrote:
> > Package: libclang1-3.4
> > Version: 1:3.4.2-8
> > Severity: important
> > Control: affects -1 codelite-plugins
> >
> > Hi,
> >
> > The clang co-installable update is causing crashes is codelite when multiple
> > versions of libclang1 are installed.
> >
> > Normally codelite (with codelite-plugins) will load libclang.so.1 and
> > liblldb.so.1 from LLVM 3.4 and everything works:
> >  codelite
> >    libclang.so.1 (symlink to libclang-3.4.so.1)
> >      libLLVM-3.4.so.1
> >    LLDBDebugger.so
> >      liblldb.so.1
> >        (libLLVM-3.4.so.1 already loaded)
> >
> > But if you install libclang1-3.6 at the same time, codelite will load that
> > library because libclang1.so.1 now points to it:
> >  codelite
> >    libclang.so.1 (symlink to libclang-3.6.so.1)
> >      libLLVM-3.6.so.1
> >    LLDBDebugger.so
> >      liblldb.so.1
> >        libLLVM-3.4.so.1 (symbol collision)
> >
> > Then codelite segfaults in the constructors for libLLVM-3.4 due to (I
> > assume) a
> > symbol collision with libLLVM-3.6.so.1
> Interesting issue.
>
> codelite should link against  libclang-X.Y instead of libclang. I will remove
> libclang.so
> but I agree that there is a problem with lldb.

As long as the SONAME in libclang-X.Y is "libclang.so.1", the runtime
linker will still try to search for that file anyway (and not
libclang-X.Y.so.1) so that won't make any difference.

Are the different versions of libclang ABI compatible?
If not they should have different SONAMES (like libLLVM...)

James



More information about the Pkg-llvm-team mailing list