<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/82779>82779</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [LLVM19] library packages are no longer multi-arch capable (installation of eg. i386 and amd64 in parallel is impossible)
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          TheRealCuran
      </td>
    </tr>
</table>

<pre>
    The newest batch of LLVM 19 packages from apt.llvm.org (1:19~++20240222101030+ae3e14276b71-1~exp1~20240222221201.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.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWFFv2zYQ_jX0y0GCRNmy9eCHpFmGAS06bMVei5N0lthQpEpScbyH_vbhJDlxE3TpUhfYsBpCIlv0d7zvvuP5Dr1XjSHaitWlWF0tcAitddt3Lf1GqF8NDs2itPWBPwFDe_IBSgxVC3YHr1__8QbSAnqsbrAhDztnO8A-xFrfdrF1DQi5SUV2kRafhLwU8lImcplIKdMkTbJEyEukjNKlXOflOo3ST3TXp5-Oi6RMZZLGaZGmQhagjA-oNZTKoDvATmnyoNUNgcgTrUrejsgTMBa0NQ05UCZYCC0pB92gg4rQVS3UylEVrFPkhXwF5RCmhSJPhLwevBPyWquSoaal-iCyC5FcieT4N0_ma3orl1D3N01UUwlRBVqVTEBavE-FXGX4zd6_x67OlzHDTxZrt79zEV_grA1CXvM_OL4SYJAokZGUIDMOgIRYyOtv-_ZEzTkwmN5zIjHdUVp8J8zT3UZuH7mIr8-QU7ncLKXMly9BnrUbexun59v_3SZ_ny8jrcxwFzVmeI6cZ0B9i47ORPARq7bVd0G8T8DnwsavLM_W2UvRqxZNQ9o28RWVCk3c_Pm3BvNNsX5iKym-zpbtD041bTgnYVqZoNCcOQwPqPaWnFM1H7XPhwIgZdiXW3igazSl2Znx-idKfz5JiziBSGQ_wdPM_YLJb83c2VCUFrG3n9mePjqa__6lSGWb_Ecl-iIS0_P1Z-5_rMgtkzxJ0-W_osj9qEc_6tH_qR49OVi-tiScoyK9sBg-6pPeGgi2584xtBi4MQODHXlAU4M_dFqZGw_oCByh1gfoyHuqYeghWMu95EOjN1nhjq2ACg1Yow9QEii-pWNLyv2d2k2W6C5MHatMHjrW4A4QLPhW9RBa5dkQfym0ZOBgB8YWch2gxVuamshe04RzS84razzb7NGh1qRj-N12FFplmslJ5eHjoAIBu8IS0WANtHYPpSPkTUQt9v1hglQesHLWe-jwg3X3JmK4MDWg9mM7e9LvTqHmVnXmDz4MPoAmrD0Yu2_JUXzaur5jJzu8Yd9bgmpwjkx4IGQwg8dSE-8ST7tmT2HoAT3srAO6w455MEQ11bBXoYVMQqkCYN9rVWHgbTOTjj4OyjEf1MTwtifz82sIrbND08Ib8siL0MMv91Qf-_zJyzl_souxB2ZPWS2PnnFy8KPTSJx6_asm9CwrH6yj0fPe0a2yg4eSWuQ7x8Lk2zF0dBwzsPNRTT2ZGk2Ypw7KzGMFR76nKqijOJ5MGO4HFM_9xpsdG3UWWurG1KjZEsIeD5MoMcyxm_f5RUGODFI9Qs4B_VylFIJmBGvA3yv20TDlmN4Tsz4Q1szRY_WNecjS7cntxnEJ7JQZc28Uo7GPMXl9P4YkXtTbrC6yAhe0TdfJZp1k6yxZtFtJ9QoTWeEyrTcVUSGJNqu0XmfVLlnvVgu1nX-eZulqtcqSeEU1lpjXdVHWRV5UYplQh0rfT6MWyvuBthu5XhcLjSVpP869pDS0h_GhkFKsrhZuO5545dB4sUy08sE_oAQV9DgwY3_SQqyu-OhzLJb7NOJD7GEOdSKNCvsxGkJu5iiNqcK8cn6wkMegjWo_jRkTrLreeq9KTUIWi8HpbRtC70V2wdVMXjcqtEMZV7abz-zj0d07-4EqPvtHL7k0jSz8FQAA___jF-Ow">