* Fix installation of the shared libllvm and libclang-cpp libraries

under their soname. Closes: #1072200.
  * Drop some of the unnecessary libllvm symlinks.
This commit is contained in:
Matthias Klose 2024-08-30 10:39:49 +02:00
parent 22b100092a
commit fd46c750c4
10 changed files with 39 additions and 18 deletions

5
debian/changelog vendored
View File

@ -12,8 +12,11 @@ llvm-toolchain-19 (1:19.1.0~++rc3-1~exp2) UNRELEASED; urgency=medium
* Disable flang on mips64el (currently not supported). * Disable flang on mips64el (currently not supported).
* Don't try to install hwasan_symbolize on x32. * Don't try to install hwasan_symbolize on x32.
* Don't try to install xray and profile headers on x32. * Don't try to install xray and profile headers on x32.
* Fix installation of the shared libllvm and libclang-cpp libraries
under their soname. Closes: #1072200.
* Drop some of the unnecessary libllvm symlinks.
-- Matthias Klose <doko@ubuntu.com> Tue, 27 Aug 2024 11:47:25 +0200 -- Matthias Klose <doko@ubuntu.com> Fri, 30 Aug 2024 10:38:09 +0200
llvm-toolchain-19 (1:19.1.0~++rc3-1~exp1) experimental; urgency=medium llvm-toolchain-19 (1:19.1.0~++rc3-1~exp1) experimental; urgency=medium

2
debian/control vendored
View File

@ -347,6 +347,8 @@ Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends} Depends: ${shlibs:Depends}, ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends} Pre-Depends: ${misc:Pre-Depends}
Multi-Arch: same Multi-Arch: same
Breaks: llvm19-dev (<< 1:19.1.0~++rc3-1~exp2)
Replaces: llvm19-dev (<< 1:19.1.0~++rc3-1~exp2)
Description: Modular compiler and toolchain technologies, runtime library Description: Modular compiler and toolchain technologies, runtime library
LLVM is a collection of libraries and tools that make it easy to build LLVM is a collection of libraries and tools that make it easy to build
compilers, optimizers, just-in-time code generators, and many other compilers, optimizers, just-in-time code generators, and many other

2
debian/control.in vendored
View File

@ -347,6 +347,8 @@ Section: libs
Depends: ${shlibs:Depends}, ${misc:Depends} Depends: ${shlibs:Depends}, ${misc:Depends}
Pre-Depends: ${misc:Pre-Depends} Pre-Depends: ${misc:Pre-Depends}
Multi-Arch: same Multi-Arch: same
Breaks: llvm@LLVM_VERSION@-dev (<< 1:19.1.0~++rc3-1~exp2)
Replaces: llvm@LLVM_VERSION@-dev (<< 1:19.1.0~++rc3-1~exp2)
Description: Modular compiler and toolchain technologies, runtime library Description: Modular compiler and toolchain technologies, runtime library
LLVM is a collection of libraries and tools that make it easy to build LLVM is a collection of libraries and tools that make it easy to build
compilers, optimizers, just-in-time code generators, and many other compilers, optimizers, just-in-time code generators, and many other

View File

@ -1,2 +1 @@
usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@.@LLVM_VERSION_MINOR@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@.@LLVM_VERSION_MINOR@ /usr/lib/@DEB_HOST_MULTIARCH@/

View File

@ -1 +1,2 @@
usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ /usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp.so.@LLVM_VERSION@ # symlink from the LLVM libdir to the system libdir
usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp.so.@LLVM_VERSION@.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@.1

View File

@ -1,6 +1,6 @@
# as upstream # as upstream
usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.1
usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@
usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so.1
# FIXME: these are not installed by upstream, there are only libclang-19.so.19, libclang-19.1.0.so, libclang-19.so and libclang.so
usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.1
usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.1
usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so.1

View File

@ -1,3 +1,7 @@
# install everything in /usr/lib/@DEB_HOST_MULTIARCH@/
# this is libLLVM.so.1, renamed to it's soname in the override_dh_install target
usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM.so.@LLVM_VERSION@.@LLVM_VERSION_MINOR@ /usr/lib/@DEB_HOST_MULTIARCH@/
# this is a symlink installed by upstream
usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so /usr/lib/@DEB_HOST_MULTIARCH@/ usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so /usr/lib/@DEB_HOST_MULTIARCH@/
usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM.so.1
usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM.so.@LLVM_VERSION@.@LLVM_VERSION_MINOR@

View File

@ -1,4 +1,8 @@
# Should be uncommented for @LLVM_VERSION@.1 and other # provide symlinks in the LLVM subdir
# usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1
usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so
# symlink to the soname in the llvm libdir
usr/lib/@DEB_HOST_MULTIARCH@/libLLVM.so.@LLVM_VERSION@.@LLVM_VERSION_MINOR@ usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM.so.@LLVM_VERSION@.@LLVM_VERSION_MINOR@
# FIXME: why is this one needed? This already is in the llvm-dev package in the llvm libdir
# create symlink to the symlink installed by upstream
#usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM.so.@LLVM_VERSION@.@LLVM_VERSION_MINOR@ usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so

View File

@ -1,9 +1,3 @@
usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so
usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so.1
usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION_FULL@.so.1
usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION_FULL@.so
usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION_FULL@.so.1
usr/include/llvm-c-@LLVM_VERSION@/llvm-c usr/lib/llvm-@LLVM_VERSION@/include/llvm-c usr/include/llvm-c-@LLVM_VERSION@/llvm-c usr/lib/llvm-@LLVM_VERSION@/include/llvm-c
usr/include/llvm-@LLVM_VERSION@/llvm usr/lib/llvm-@LLVM_VERSION@/include/llvm usr/include/llvm-@LLVM_VERSION@/llvm usr/lib/llvm-@LLVM_VERSION@/include/llvm
usr/include/llvm-c-@LLVM_VERSION@/llvm-c usr/lib/llvm-@LLVM_VERSION@/build/include/llvm-c usr/include/llvm-c-@LLVM_VERSION@/llvm-c usr/lib/llvm-@LLVM_VERSION@/build/include/llvm-c

12
debian/rules vendored
View File

@ -1457,6 +1457,18 @@ else
endif endif
override_dh_install: override_dh_install:
: # fix libLLVM.so.1 install, install it under the SONAME
-ls -l debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM*.so*
test -f debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM.so.1
if [ -f debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM.so.1 ] && [ ! -h debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM.so.1 ]; then \
soname=$$(objdump -p debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM.so.1 | awk '/ *SONAME / {print $$2}'); \
rm -f debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/$$soname; \
mv debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM.so.1 debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/$$soname; \
ln -sf $$soname debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM-$(LLVM_VERSION).so; \
ln -sf $$soname debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM.so; \
fi
ifeq (${POLLY_ENABLE},yes) ifeq (${POLLY_ENABLE},yes)
# only for arch:any builds # only for arch:any builds
ifneq (,$(filter libpolly-$(LLVM_VERSION)-dev, $(packages))) ifneq (,$(filter libpolly-$(LLVM_VERSION)-dev, $(packages)))