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

    <tr>
        <th>Summary</th>
        <td>
            [CMake] Debian "Could NOT find ZLIB" when using a -DLLVM_ENABLE_RUNTIMES build of clang
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            cmake,
            build-problem
      </td>
    </tr>

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

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

<pre>
    Originally reported by @glandium on https://reviews.llvm.org/D107799#3565520 . I moved it here since the issue isn't so related to that config toggle patch.

On Debian, if one uses a `-DLLVM_ENABLE_RUNTIMES='compiler-rt;libcxx;libcxxabi'` build of clang as `CMAKE_C_COMPILER` and `CMAKE_CXX_COMPILER`, some system libraries like `/usr/lib/x86_64-linux-gnu/libz.so` cannot be found in some circumstances.`

It is related to the new runtime hierarchy (e.g. `lib/clang/15.0.0/lib/x86_64-unknown-linux-gnu/libclang_rt.asan.a`) and Debian's multiarch scheme (no vendor part in `x86_64-linux-gnu`). In early days Debian made a decision to omit "vendor" in the target triple in GCC and its filesystem hierarchy. Clang Driver has quite involved logic to support Debian style multiarch.

https://gist.github.com/glandium/6c130dee608f9585b425c4a40a084d27

```sh
% cat Dockerfile
FROM debian:testing-20220801
RUN echo deb http://snapshot.debian.org/archive/debian/20220801T205040Z/ testing main > /etc/apt/sources.list ;\
    apt-get -o Acquire::Check-Valid-Until=false update; \
    apt-get install -y build-essential git cmake ninja-build libc6-dev-i386 python3; \
    git clone https://github.com/llvm/llvm-project; \
    cd llvm-project; \
    git checkout 311f7839602344ca347816146edb68c0ffaaa060; \
    cmake llvm -B obj -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/tmp/llvm/stage1 -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_ENABLE_PROJECTS="clang" -DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi"; \
    ninja -C obj install; \
    cmake llvm -B obj2 -G Ninja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang" -DCMAKE_C_COMPILER=/tmp/llvm/stage1/bin/clang -DCMAKE_CXX_COMPILER=/tmp/llvm/stage1/bin/clang++ 2>&1 | grep ZLIB
RUN cd llvm-project; ninja -C obj2 llvm-mc && readelf -d obj2/bin/llvm-mc
% podman build .
...
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)                                                                               
-- Could NOT find LibXml2 (missing: LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)                                                                      
-- Could NOT find LibEdit (missing: LibEdit_INCLUDE_DIRS LibEdit_LIBRARIES)                                                                   
-- Could NOT find Terminfo (missing: Terminfo_LIBRARIES Terminfo_LINKABLE)
...
[1711/1711] Linking CXX executable bin/llvm-mc

Dynamic section at offset 0x200ac08 contains 35 entries:
  Tag        Type                         Name/Value     ############ no libz.so.1 or libtinfo.so.6
 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [librt.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [ld-linux-x86-64.so.2]
 0x000000000000001d (RUNPATH)            Library runpath: [$ORIGIN/../lib]
```

Here is a local build with `-DCMAKE_INSTALL_PREFIX=/tmp/install/custom1 -DLLVM_ENABLE_PROJECTS=clang -DLLVM_ENABLE_RUNTIMES='compiler-rt;libcxx;libcxxabi;libunwind'`.
```
[3723/3735] Performing configure step for 'builtins'
...
-- Could NOT find Terminfo (missing: Terminfo_LIBRARIES Terminfo_LINKABLE)                                                                    
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY) (found version "1.2.11")                                                                                                                                                                                                                     
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.14")
..
[3724/3735] Performing build step for 'builtins'                                                                                                                                                                                                                                            
[306/306] Linking C static library /tmp/out/custom1/lib/clang/16.0.0/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a                                                                                                                                                                    
[3725/3735] No install step for 'builtins'                                                                                                                                                                                                                                                  
[3732/3735] Performing configure step for 'runtimes'
...
-- Found Terminfo: /usr/lib/x86_64-linux-gnu/libtinfo.so                                                                                      
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")                                                                     
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.14")
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWVt3ozYQ_jX2iw4c7rYf_OD4snXrODmOtyfti48AGbQB5CKRxPvr-wmw49w22Tbb9qEcgkGC0cynmW9GSiji_fCi5AkvaJbtScl2olQsJuGedDwryWgR8yonoiCpUjvZcUcdZ4azZLec3Ukzy25zU5QJmia21esNBh3Hdf3A9x2LmGROcnELcVyRlJWMSF5EjKiUES5lpa9Fx-kpIgWGzqgeWQn0U0UiUWx5gsckyRjZURWlZseadKxRc70oyISFnELAmPAtVGSkkkwSSjqBZUwWi1_PN9Pl6Gwx3aw-L9fz8-lVx51guEjkO56x0ihVxz3LeBjd3x9vaMjxCiSQsOJZTMSWREAhIVRquePz0S_TzXgzvji_nC-mK_0iMDrpur4-7dTKSZHD8r1ULCcYpKQlh5oZv2GkfmNWyRJXdOF63w82gWdkvKjujaSomo6vphR6qIgWhVAkZGQrKgzLi0Z6xMuoyqWigFeaWuoJUnMFnB_jy0jB7khZFYrj65QzKBWlmHOnz8zE1Ho16tS249f2Tcu0nmpZFTeFuCuealt_tCmVSSUtTFobOahhOsxYT5K8yhTXoxIZpQxaYOxCkFtWxKLEfJdKW4dvnyFSi4NvFYTREk4b071sJZOcxgweELOISw6vhbUih_d1HKeRjBstV0OgaJkwRVTJd_AwNH4aj2stuZJkCw9p5-wIj0nGtStMSn7LSpLCJf6ouNLf3opM-3kmEh7pQWW105F0UEuqPYY4mvzIkR8HVsKlMhOu0io04ai6pQ1C3AaR7VoxY4HV3w78vh96jh951LOo1fdiuO2JWA1Tfcq0bXB8-A9UEtENK7V9TftsdXEOwOqJcUeKScWLxHAsx7H6lt28gwAiLEqFfq9mgqO-sqA7mQplNhJaLtBGAiPctYKd2UHg2rF8y7N-RxNpB8Os6al2p5imGVORFrBTWrioSu3QGUBB_1nHHzf6EBx4xdDzZwgyijAPJdNKuaNxyqIb41ea8dj4DAfPEPVbmknQwy5GCEAOeVEQLxBAWUaMfRP7BpOSQQDNCCaERDlFxBa8-EKNhhu0qwdGzG4N7vYDsturVBTuM_n1x5nmp6dTfTLLmkjbH2NXii8sUs8ERRjyW_31QNp6USni2va213cHgeW4nhdR1-v17cD2AhaHQT-ytltKqQUPeTZKbaceiBhnRIRfiPGJLLXZxJg0JHf2eb6YbNa_XU6B7YpljALdQ-d8ebUeLRaby9V0Nr-uKXem8t2DjUA5YTZpKXo9Wn2arq8264tGLD64BpiPCfxydfHzdLxuCNxpSckh32B5522Wd56ZXjRWjmurW3d4Gx_n3QC9y6RnKeY1BHET8uJA0g9fnmag933bcc5wEgAy7TiBTTq9MUlQC5DfF_OzBwZ4wf9OEXOa3jxCGAc4kXLAxtmWGHHdfRyzfe2BlnYizsGSTVS15Gia7Y1hkLGo0LG8WIOWwc9aK50uchQRoA8EVN20wd9qtPqteZgvx4vPk-lmMl_p7POxx2uaLXh4nWfOE-WgzvX5wjnqd3j-ESp-Q7NpXCfCR5o1raeaXB0bG3XnCKgPUe41zdaszHmxFU9UOzQ_qHHatPxFBxEUe-IsHf_M7tnavesffwJrihudYxAWhN2zqFI0RC5-yRPr62Rf0BxJXMLDdQWBjCm2W4n8YN07lkUjq69rU4WUJYnrE2QIXc9pVm8pYk2Tg83r_Y69CsiS5jpDIlNVzUsond88CWqktiA0bYJKCQ9Kg6IbglYF6956fNga3OV0OplOnk7mVUpLFreF6V4jDwzxtFOpjl8t1gKOHygZhaFW_mOFxpkW6nys0LwB9UNlShVHDd_-AOFJFG3kD0A3-nBd47agR3VvBN4bc2fHWjxS0OVo_dMT-YtGrl7MYJGYtvI7jnexmn-aLxFg4IZm3XKQfyyNT-P-J70-5Xr5mIkIJV-TjO5QozXrybeKm0O5gJRaSSVy-_V8f8jXf2OJWt9XxR0ItFmumi-b5p-5Pc0bM7fn-poOL1H6C02jSbvCrvSyXCHXoxko97TdIBTZOSwnvpGI_x51v0qM33H8xRJBj47eZhGNtVy9VkT5ZZuOqbOH8_Elw3_jOOI1q01v65U6aN6zD3GPlxGrL2LnmAPT9hrsDp5z6oXey17YxNkrHvhvw_VPHg9YWYGGygoelS-AiCrUJS2PkiPxYLH3QDrH-Ttu3AR_ZePmMAUm_bdRec9x6mX-iZctxXFN_79_tccJVq7zPXmh3Sx8OS80bHIg-XfTyaFw_ZGmHrWr17Lv1ezrayz34RniH2XkY3nQZUM7CKxBz7P8oBsP3XjgDmhXcZWxIbxjfE5vmPaLdgMTQl7IsHrD4i5lBal0kiX0lZrmyVZ6tyqz4XduhaG-0v8wgPfNfAT5oJsOvdjeOpHdt13H7ocD3_OcfujHAysIWTBgYTejIcvksK4GnXrXpoZirI1pNvggHWvBXDf7ky4fNnuUWOX5bt_zTG8QWfbAdv3Ij2kIv_csllOeHf_r0S2HtZZhlUh06m3Kh3-JdClKj6RgNZ5aPq1UKsrhOZU3K7rv1gYNa2v-BHKj4sM">