Skip to content

[LLVM19] library packages are no longer multi-arch capable (installation of eg. i386 and amd64 in parallel is impossible) #82779

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
TheRealCuran opened this issue Feb 23, 2024 · 14 comments

Comments

@TheRealCuran
Copy link

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.

@LW-archlinux
Copy link

Not a duplicate but has similariites with #82647

Also check #82660

@TheRealCuran
Copy link
Author

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
Copy link
Author

The conflicting libLLVM.so.1 and broken symlinks are still present in 1:19~++20240228111504+fd336c33b6c9-1~exp1~20240228111638.1922

@sylvestre
Copy link
Collaborator

ok :/
it will take me sometime to bring back the multi arch capability after these changes :(

@TheRealCuran
Copy link
Author

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
Copy link
Author

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
Copy link

Currently no i386 packages in repositories at all...

@sylvestre
Copy link
Collaborator

@serhii-nakon for which distro version? thanks

@sylvestre
Copy link
Collaborator

@serhii-nakon
Copy link

@sylvestre I use Debian Bookworm - here no packages for i386 at all

@sylvestre
Copy link
Collaborator

@serhii-nakon could you please a new issue? It is unrelated to this one.
thanks

@serhii-nakon
Copy link

@sylvestre Ok

@sylvestre
Copy link
Collaborator

thanks :)

@serhii-nakon
Copy link

@sylvestre #113438

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants