Hello, With the release of 3.4.1, the LLVM library has been renamed from libLLVM-3.4.so to libLLVM-3.4.1.so. In parallel, the soname has been updated to reflect this change. AFAIK, we kept the ABI compatible from 3.4 to 3.4.1. So, is there any reason for doing it? This caused some breakages in Debian (basically, breaking some X because of mesa could not link against LLVM due to the new soname). I noticed that we did the same with 3.5. I am not sure to understand what was wrong with the X.Y naming schema. Thanks Sylvestre
On Mon, May 12, 2014 at 08:41:36AM +0200, Sylvestre Ledru wrote:> Hello, > > With the release of 3.4.1, the LLVM library has been renamed from > libLLVM-3.4.so to libLLVM-3.4.1.so. In parallel, the soname has been > updated to > reflect this change. > > AFAIK, we kept the ABI compatible from 3.4 to 3.4.1. So, is there any > reason for doing it? > This caused some breakages in Debian (basically, breaking some X because > of mesa could not > link against LLVM due to the new soname). > I noticed that we did the same with 3.5. > > I am not sure to understand what was wrong with the X.Y naming schema.The library was renamed, but a libLLVM-3.4.so symlink was added to point to libLLVM-3.4.1.so, so I don't think anything should break. The rationale behind adding the patch level to the soname was to allow applications to link against a specific LLVM point release. -Tom> > Thanks > Sylvestre > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
On 12 May 2014 14:22, Tom Stellard <tom at stellard.net> wrote:> The library was renamed, but a libLLVM-3.4.so symlink was added to point > to libLLVM-3.4.1.so, so I don't think anything should break.Exactly. Might be some build magic breaking.> The rationale behind adding the patch level to the soname was to allow > applications to link against a specific LLVM point release.I think it makes total sense. cheers, --renato
On 12/05/2014 15:22, Tom Stellard wrote:> On Mon, May 12, 2014 at 08:41:36AM +0200, Sylvestre Ledru wrote: >> Hello, >> >> With the release of 3.4.1, the LLVM library has been renamed from >> libLLVM-3.4.so to libLLVM-3.4.1.so. In parallel, the soname has been >> updated to >> reflect this change. >> >> AFAIK, we kept the ABI compatible from 3.4 to 3.4.1. So, is there any >> reason for doing it? >> This caused some breakages in Debian (basically, breaking some X because >> of mesa could not >> link against LLVM due to the new soname). >> I noticed that we did the same with 3.5. >> >> I am not sure to understand what was wrong with the X.Y naming schema. > > The library was renamed, but a libLLVM-3.4.so symlink was added to point > to libLLVM-3.4.1.so, so I don't think anything should break.Yes but the (distro?) tools relies on the soname for linking and the soname was updated. The link could not be done correctly. See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=747701 AFAIK, this change in the soname was not intentional. It is done in tools/llvm-shlib/Makefile LIBRARYNAME = LLVM-$(LLVMVersion) Here, we should have done the opposite: * build libLLVM-3.4.so with libLLVM-3.4.so as soname * link libLLVM-3.4.so to libLLVM-3.4.1.so> The rationale behind adding the patch level to the soname was to allow > applications to link against a specific LLVM point release.OK but it is clearly not the expected behavior from the distro POV. We expect the soname to remain the same if no changes in the ABI are done. Otherwise, we would have to rebuild all packages depending on libllvm just to fix that (instead, I hacked the build system to force libLLVM-3.4.so as soname). Hoping I am clear here :) Cheers, Sylvestre
Seemingly Similar Threads
- [LLVMdev] Name of the libraries + soname? 3.4.1 ?
- [LLVMdev] Name of the libraries + soname? 3.4.1 ?
- [LLVMdev] Name of the libraries + soname? 3.4.1 ?
- A stage2 build causes changes to libllvm impacting program using it (exemple: rustc)
- [LLVMdev] LLVM 3.4 stable releases