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

    <tr>
        <th>Summary</th>
        <td>
            Broken libc++ installation in 20250528 release of Ubuntu libc++1-20 package
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc++
      </td>
    </tr>

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

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

<pre>
    Somewhere between release `1:20.1.6~++20250514063329+1e4d39e07757-1~exp1~20250514183345.117` and release `1:20.1.7~++20250528073536+7cf14539b644-1~exp1~20250528193553.123` of the Ubuntu `libc++1-20` packages, the installed paths to the shared object files changed:

```
$ apt show libc++1-20
Package: libc++1-20
Version: 1:20.1.6~++20250514063329+1e4d39e07757-1~exp1~20250514183345.117
Status: install ok installed
Priority: optional
Section: libs
Source: llvm-toolchain-20
Maintainer: LLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Installed-Size: 1,189 kB
Provides: libc++-x.y
Depends: libc++abi1-20 (>= 1:20.1.6~++20250514063329+1e4d39e07757), libc6 (>= 2.38), libunwind-20 (>= 1:20.1.6~++20250514063329+1e4d39e07757)
Suggests: clang
Conflicts: libc++-x.y
Replaces: libc++-x.y
Homepage: https://www.llvm.org/
Download-Size: unknown
APT-Manual-Installed: no
APT-Sources: /var/lib/dpkg/status
Description: LLVM C++ Standard library
 libc++ is another implementation of the C++ standard library.
 .
 Features and Goals
 .
   * Correctness as defined by the C++ standards.
 * Fast execution.
   * Minimal memory use.
   * Fast compile times.
   * ABI compatibility with gcc's libstdc++ for some low-level features such
 as exception objects, rtti and memory allocation.
   * Extensive unit tests.

Notice: There is 1 additional record. Please use the '-a' switch to see it
$ dpkg -L libc++1-20
/.
/usr
/usr/lib
/usr/lib/llvm-20
/usr/lib/llvm-20/lib
/usr/lib/llvm-20/lib/libc++.so.1.0
/usr/lib/x86_64-linux-gnu
/usr/share
/usr/share/doc
/usr/share/doc/libc++1-20
/usr/share/doc/libc++1-20/changelog.Debian.gz
/usr/share/doc/libc++1-20/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libc++1-20
/usr/lib/llvm-20/lib/libc++.so.1
/usr/lib/x86_64-linux-gnu/libc++.so.1
/usr/lib/x86_64-linux-gnu/libc++.so.1.0
```

```
$ apt show libc++1-20
Package: libc++1-20
Version: 1:20.1.7~++20250528073536+7cf14539b644-1~exp1~20250528193553.123
Priority: optional
Section: libs
Source: llvm-toolchain-20
Maintainer: LLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Installed-Size: 1187 kB
Depends: libc++abi1-20 (>= 1:20.1.7~++20250528073536+7cf14539b644), libc6 (>= 2.38), libunwind-20 (>= 1:20.1.7~++20250528073536+7cf14539b644)
Suggests: clang
Homepage: https://www.llvm.org/
Download-Size: 358 kB
APT-Manual-Installed: yes
APT-Sources: http://apt.llvm.org/oracular llvm-toolchain-oracular-20/main amd64 Packages
Description: LLVM C++ Standard library
 libc++ is another implementation of the C++ standard library.
 .
 Features and Goals
 .
   * Correctness as defined by the C++ standards.
   * Fast execution.
   * Minimal memory use.
   * Fast compile times.
   * ABI compatibility with gcc's libstdc++ for some low-level features such
     as exception objects, rtti and memory allocation.
   * Extensive unit tests.

Notice: There is 1 additional record. Please use the '-a' switch to see it
$ dpkg -L libc++1-20
/.
/usr
/usr/lib
/usr/lib/llvm-20
/usr/lib/llvm-20/lib
/usr/lib/llvm-20/lib/libc++.so.1.0.20
/usr/lib/x86_64-linux-gnu
/usr/share
/usr/share/doc
/usr/share/doc/libc++1-20
/usr/share/doc/libc++1-20/changelog.Debian.gz
/usr/share/doc/libc++1-20/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libc++1-20
/usr/lib/x86_64-linux-gnu/libc++.so.1.0.20
```

With the old version, after having run `apt-get install -y libc++1-20 libc++abi1-20 libunwind-20`, the `/usr/lib/llvm-20/lib` directory would contain the following contents:

```
$ ls -l /usr/lib/llvm-20/lib/
total 702
lrwxrwxrwx 1 root root      13 Apr 30 01:49 libc++.so.1 -> libc++.so.1.0
-rw-r--r-- 1 root root 1120048 Apr 30 01:49 libc++.so.1.0
lrwxrwxrwx 1 root root      16 Apr 30 01:49 libc++abi.so.1 -> libc++abi.so.1.0
-rw-r--r-- 1 root root  253352 Apr 30 01:49 libc++abi.so.1.0
lrwxrwxrwx 1 root root      16 Apr 30 01:49 libunwind.so.1 -> libunwind.so.1.0
-rw-r--r-- 1 root root   51720 Apr 30 01:49 libunwind.so.1.0
```

Now, it just contains this:

```
$ ls -l /usr/lib/llvm-20/lib
total 699
-rw-r--r-- 1 root root 1120144 May 28 19:35 libc++.so.1.0.20
-rw-r--r-- 1 root root  253408 May 28 19:35 libc++abi.so.1.0.20
-rw-r--r-- 1 root root   51784 May 28 19:35 libunwind.so.1.0.20
```

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWE1v4zjS_jX0pSCBoj5sH3xQkvb7DtAZNDa9s8cFJZUsTmhSIKk4nkP_9gUp27Edx53e9BxmMYbgWPx46pP1VMitFSuFuCD5DcnvJnxwnTYLbJSWXE0q3WwXD3qNmw4NQoVug6jAoERuEUhBE5KWjMZJXHwj7IawG0ZZTvMko0WasjlhNwlmTTpHOp3m0yj5hs998m2_KJmlaZbHSTIlBQWumovQ0xNoNqPTNE8Lwm6mdZtkeTqviiw7hWazZJ7meRonLPXQugXXIfyzGpQbPLgUVT2iJhGjfknP60e-QkvYbVgrlHVcSmyg566z4HQYth032ICufsfaQSskWqg7rlbYkLQkNDwF3T20JCwD3juwnd7AmVRafhmFkrR8PfcbGiu08nM_zcu0fHDcDdaD7gwE_fhiq1fJCG2E2_olundCKy79PqzdThspKutH9GDqUXX5tI6c1rLuuFCj9vdcKMeFQuNXfP782z2Mxgq1gq_I10DS2_5xFY2bka9JRqWwzsZcCu26uMFKcBVrsyLpJ0LLX_ZKRg_iDxzdwm6T2Rweb4Le-kk0aE99GT3HW0LLO-xRNWdzvBLe1UDYzEtI737Qz8SP3AbA4giExensZWpQG6Gaj4qh5cOwWqF1wYRacrUitLzVqpWidpdt_gf2ktdvOOT_9Rr7XeZ1zvV-FWFLwpabzSb2MQmOZ0vvPL1RUvMXvw_qUemNIrQsv3yN7rkauIwO4fErlN5NjkkSdCBs-cQNYUspKsKWTf_o8e2Yjz5Etjai3ydZyJjbUWd4cFw13DTeDsONN-DIJBAWuNKuQwNi3Utco3LcA-3P_R7HnuHEHih8LZG7waANRej_NJf2MAVAWAm32hisnUJrgVtosBUKG6i2FwXYsNPvW3LrAJ-xHrxCR4D3Qok1l7DGtTZbGCweTYZdtV73QiI4sUZ7NFne_BLmuBOVkMJtYSNcB6u6Jmxqw_F0zd43rTZg9RpB6k0k8QkltHtb7VB3HpZbwOca-9FlobKFMmicE8EhOx25lLrmZ3Z8enaorHhCGJRw4HySxmMd_FU7MVaIr4E_hIUEeNOIsaqAwVqbJoYvY80fLAZnEjaNOGFTsBvh6s5XXosIwu3Kqc8ciD6_rpiELePxz2DNy48x485e2TIUnv2-SxPf2Xd4P6gRWx0n8QXE51nx7yKLpFDDc7RSw_GKQCivB9iy0fVbw8dCkzMbrq5jy5GrpF7Fd2N9Xf3xI7t1vzVi1blLe6RQTnB1bYot9RMaE-r0O5dds_VdAXlHOH7KnjHwx9T_Z3YCH22K_lpEn8ymI8v_KJG_y00fJ_J3i7lM5B9i4zSfjb55i4y34bCdsbEXc5DCe3csRRteD5Kb83jvx8fDtuZCAV83RbYLOP6P0jj8ZYjcf_4m859K5vEl0L_5_M_k8_dQ7S4sp2z7L396fNJp2cDTjjTZLfDWoYGOP3lKMoMCUlDeu2iF7vBfcLQ9S8EL_HLMAl7o7qYg_LySVQWFRviq44_dRg-ygVoHzgzbWy2l3njV_CiqQA2X2wdpIZLwnRQmtHTacQlTyggtpdk8jw8kYLR241f4JCmUvYGUQrhtyeZw5miISPrpfDA0OpHZRCbyzwlskjBKs9l3YAPCVcWKtxF4JS7qth-_ph6wPE1z9n3w_07DMTtOtTsau6oZ5MmU0eugl1rMX_XGJ6Jw8PsQuCZklgXXiQ8l0j6Livn8eriTLIN7vgU2g2RO0jLNX4d7PK5XgpLR2dsgL0G5juNdOLukzIkLX5eOSbNIm3k65xNcJNNsnhRpkc0n3QLbdl7wtk6qLGkxm9Np3SRpUSHN22nbthOxCB1fQXPGsimbx0ldV9ksrfOsmjW0rkhGcc2FPLRXE2HtgIskS2nGJpJXKG24fWXsxWDCGMnvJmYRQlINK3vomQ84TjiJixujH1GddFFjQRsbJ6Fg35IerlZ1u78HPSt4uxvQyWDk4rQLXQnXDVVc6_UuTfbZ0hvtGwzClsEsX913lj0t2H8CAAD__6BJqM4">