Description
The newest batch of LLVM 19 packages from apt.llvm.org (1:19~++20240222101030+ae3e14276b71-1exp120240222221201.1911) install binary files like libLLVM
no longer into their multi-arch directories, but into /usr/lib
directly:
$ dpkg-deb -c libllvm19_1%3a19~++20240222101030+ae3e14276b71-1~exp1~20240222221201.1911_amd64.deb
drwxr-xr-x root/root 0 2024-02-22 23:12 ./
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/lib/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/lib/llvm-19/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/lib/llvm-19/lib/
-rw-r--r-- root/root 124842264 2024-02-22 23:12 ./usr/lib/llvm-19/lib/libLLVM.so.1
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/lib/x86_64-linux-gnu/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/share/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/share/doc/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/share/doc/libllvm19/
-rw-r--r-- root/root 36373 2024-02-22 23:12 ./usr/share/doc/libllvm19/changelog.Debian.gz
-rw-r--r-- root/root 6897 2024-02-22 23:09 ./usr/share/doc/libllvm19/copyright
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/share/lintian/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/share/lintian/overrides/
-rw-r--r-- root/root 122 2024-02-22 23:12 ./usr/share/lintian/overrides/libllvm19
lrwxrwxrwx root/root 0 2024-02-22 23:12 ./usr/lib/llvm-19/lib/libLLVM.so.19.0 -> libLLVM.so.1
lrwxrwxrwx root/root 0 2024-02-22 23:12 ./usr/lib/x86_64-linux-gnu/libLLVM-19.so -> libLLVM-19.so.1
$ dpkg-deb -c libllvm19_1%3a19~++20240222101030+ae3e14276b71-1~exp1~20240222221201.1911_i386.deb
drwxr-xr-x root/root 0 2024-02-22 23:12 ./
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/lib/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/lib/i386-linux-gnu/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/lib/llvm-19/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/lib/llvm-19/lib/
-rw-r--r-- root/root 140601144 2024-02-22 23:12 ./usr/lib/llvm-19/lib/libLLVM.so.1
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/share/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/share/doc/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/share/doc/libllvm19/
-rw-r--r-- root/root 36373 2024-02-22 23:12 ./usr/share/doc/libllvm19/changelog.Debian.gz
-rw-r--r-- root/root 6897 2024-02-22 23:09 ./usr/share/doc/libllvm19/copyright
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/share/lintian/
drwxr-xr-x root/root 0 2024-02-22 23:12 ./usr/share/lintian/overrides/
-rw-r--r-- root/root 122 2024-02-22 23:12 ./usr/share/lintian/overrides/libllvm19
lrwxrwxrwx root/root 0 2024-02-22 23:12 ./usr/lib/i386-linux-gnu/libLLVM-19.so -> libLLVM-19.so.1
lrwxrwxrwx root/root 0 2024-02-22 23:12 ./usr/lib/llvm-19/lib/libLLVM.so.19.0 -> libLLVM.so.1
On top of that the names and symlinks are really messed up too (libLLVM.so.1
) can only be in one package, if the next LLVM 20 packages try to ship this too, then you can't have multiple LLVM versions in parallel. Something that is quite essential on how breakage-happy LLVM is across major versions. And also the libLLVM-19.so
symlink just leads nowhere.
This makes the current packages unusable on a multi-arch setup as for example needed with 32 bit applications, requiring eg. OpenGL through Mesa, as I can't install libllvm19:amd64
and libllvm19:i386
in parallel.
Please restore the previous behaviour of having the binary arch-dependant files in their respective multi-arch directories like /usr/lib/x86_64-linux-gnu
and have them named in a way, that makes having multiple LLVM versions installed and usable in parallel. Settling on something like libLLVM.so.19.0
instead of libLLVM-19.so.1
is perfectly fine, just no libLLVM.so.1
please.
Activity
LW-archlinux commentedon Feb 23, 2024
Not a duplicate but has similariites with #82647
Also check #82660
TheRealCuran commentedon Feb 24, 2024
Just to make sure: this is not a simple fix in the
.install
files. You need to make sure that e.g. the generated CMake files also contain the correct paths and names.Locally I have "fixed" all of this and been able to build a new round of the Mesa stack including the
spirv-llvm-translator
.TheRealCuran commentedon Feb 29, 2024
The conflicting
libLLVM.so.1
and broken symlinks are still present in1:19~++20240228111504+fd336c33b6c9-1~exp1~20240228111638.1922
sylvestre commentedon Mar 8, 2024
ok :/
it will take me sometime to bring back the multi arch capability after these changes :(
TheRealCuran commentedon Mar 9, 2024
Thanks for the update. Then I'll just have to keep "fixing" (ie. moving files and editing eg.
LLVMExports-relwithdebinfo.cmake
) locally. Not nice, but it'll work for a while.TheRealCuran commentedon Sep 25, 2024
This particular issue is fixed for me with the current LLVM 19 packages from Debian and also the LLVM 20 packages from apt.llvm.org, therefore I am closing this issue.
serhii-nakon commentedon Oct 22, 2024
Currently no i386 packages in repositories at all...
sylvestre commentedon Oct 23, 2024
@serhii-nakon for which distro version? thanks
6 remaining items