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-@VERSION@, replace with
   /usr/lib/${DEB_HOST_MULTIARCH}/llvm-@VERSION@ or
   /usr/lib/*/llvm-@VERSION@ or similar

This is similar to the way it works in, for example, Fedora (but they use llvm@VERSION@ instead of llvm-@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

Reply via email to