Bug#1111182: llvm-toolchain-19: please move /usr/lib/llvm* to a multi-arch co-installable location

Simon McVittie smcv at debian.org
Wed Sep 24 12:06:04 BST 2025


Control: clone -1 -2 -3
Control: retitle -2 llvm-toolchain-21: please move /usr/lib/llvm* to a multi-arch co-installable location
Control: reassign -2 src:llvm-toolchain-21
Control: retitle -3 llvm-toolchain-snapshot: please move /usr/lib/llvm* to a multi-arch co-installable location
Control: reassign -3 src:llvm-toolchain-snapshot
Control: block -2 by 1101291
Control: block 1111183 by 1116199
Control: block -3 by 1116200

On Fri, 15 Aug 2025 at 11:33:34 +0100, Simon McVittie wrote:
>I'm told that on other distributions like the Red Hat and Arch families,
>the equivalent of our /usr/lib/llvm-19 is something like
>/usr/lib{64,}/llvm (Red Hat) or /usr/lib{,32}/llvm (Arch). This suggests
>that on Debian, it should be possible to use our equivalent of lib64,
>/usr/lib/${DEB_HOST_MULTIARCH}/llvm-{19,20,...}, for a similar level of
>co-installability.

This applies equally to the -21 and -22 branches of LLVM.

As I mentioned on #1101291 and its clones, I think it would be best if 
the RC bug (#1101291 and its clones) was resolved before making any 
attempt to do this.

After that, I think perhaps the best approach to resolving this wishlist 
request would probably be to choose a cutoff version of LLVM that is 
newer than the default (perhaps 20 or 21), make this change in that 
branch and all newer branches, and mark the request wontfix for all 
older branches. That way, any regressions can be dealt with before the 
changed version becomes the new default.

I believe a solution could look something like this:

1. In debian/rules, configure with something like
    -DCMAKE_INSTALL_PREFIX=/usr/lib/$(DEB_HOST_MULTIARCH)/llvm-$(LLVM_VERSION)
    instead of the current
    -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION)

2. In the rest of the packaging (especially .install files), wherever
    it previously used /usr/lib/llvm- at VERSION@, replace with
    /usr/lib/${DEB_HOST_MULTIARCH}/llvm- at VERSION@ or
    /usr/lib/*/llvm- at VERSION@ or similar

This is similar to the way it works in, for example, Fedora (but they 
use llvm at VERSION@ instead of llvm- at VERSION@, which is only a cosmetic 
difference, and they use /usr/lib or /usr/lib64 instead of 
/usr/lib/${DEB_HOST_MULTIARCH} because that's the closest equivalent in 
their multilib design).

     smcv



More information about the Pkg-llvm-team mailing list