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

    <tr>
        <th>Summary</th>
        <td>
            [libc] How do I build clang for OpenMP program with the GPU C library?
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang,
            libc
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          jun-shibata
      </td>
    </tr>
</table>

<pre>
    About libc for GPU, OpenMP offload example does not succeed.
I tried the following script to build clang.

[standard runtimes build](https://libc.llvm.org/gpu/building.html#standard-runtimes-build)

```script
cmake /volume/develop/src/llvm-project/llvm -G Ninja \
 -DCMAKE_BUILD_TYPE=Release \
   -DLLVM_ENABLE_PROJECTS="clang;lld" \
 -DLLVM_ENABLE_RUNTIMES="openmp" \
   -DCMAKE_INSTALL_PREFIX=/path to install \
   -DCMAKE_C_COMPILER=/path to clang \
 -DCMAKE_CXX_COMPILER=/path to clang++ \
 -DRUNTIMES_nvptx64-nvidia-cuda_LLVM_ENABLE_RUNTIMES=libc \
 -DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES=libc \
 -DLLVM_RUNTIME_TARGETS="default;amdgcn-amd-amdhsa;nvptx64-nvidia-cuda"
```

However, the following procedure resulted in an error.

https://libc.llvm.org/gpu/using.html#openmp-offloading-example

```script
$ clang -v openmp.c -fopenmp --offload-arch=sm_86
clang version 19.1.7 (https://github.com/llvm/llvm-project.git cd708029e0b2869e80abe31ddb175f7c35361f90)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /--/install/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Selected multilib: .;@m64
Found CUDA installation: /usr/local/cuda-12.1, version 12.1
clang: error: no library 'libomptarget-nvptx-sm_86.bc' found in the default clang lib directory or in LIBRARY_PATH; use '--libomptarget-nvptx-bc-path' to specify nvptx bitcode library
```

I couldn't find `libomptarget-nvptx-sm_*.bc`, but found `libc.bc`.

```
./lib/amdgcn-amd-amdhsa/libc.bc
./lib/amdgcn-amd-amdhsa/libm.bc
./lib/nvptx64-nvidia-cuda/libc.bc
./lib/nvptx64-nvidia-cuda/libm.bc
```

CPU Intel Xeon Gold 6338T
GPU NVIDIA RTX A6000

OS Ubuntu 22.04
LLVM version 19.1.7 
NVidia Driver 545.23.06
CUDA 12.1


</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykVl1vozwT_TXOzQjkmASSi1yQr27eN22jNF11ryJjG-JdYyNj0vbfPzKQttuP1T56JCJBODOe8ZxzMK1rWWghZmg8R-PlgDbuZOzsZ6OD-iQz6uggM_x5lmamcaBkxiA3Fq5294gs4LYS-noHJs-VoRzEEy0rJYAbUYM2DuqGMSF4iHC6AWel4OBOAnKjlHmUuoCaWVk5cAayRioOTFFdeLi_xvPaUc2p5WAb7WQp6g6GxktEJifnqhpFKSJrRNa-tFCpcxkaWyCyLqoGkXULl7oIT65UiESXhMElYdAlJNN-zRh3V1cYwikr6S8BiKzPRjWlQGTNxVkoUyGyri3zK6tzGVTW_BTM9Y8QXMGN1D8poPEC4RSC5eI6_f_qOL_fbJfHw4_dCkXLvVCC1uKCAQiW2-336-PqJp1vV8fd_vZ_q8XhDkVLREi7MyiaK18tec37NmJ_f3PYXK_6CFMJXVZvwPBSxubm7pBut8fdfrXePLTwdUXdyQ9C6tpRpT4GLY6L2-vdZrva_x7QVva-0cXDw5_giMwRmb8GXSo_6nPlnuJRoM-SSxqwhtPjFy22ZPyYgZa8YDqgJfe_U_2X8S2of3s8pPur1WXnuchpoxyK5h9So2j-ScGIkLdU6pj1zTyKs7BeNb9LoLKGCd5YAVbUjXKCg9RANQhrje218Ddcb-o3RO-GH_TKlLoIenF-xXNERv0kgzN00SGDIO9uIbikCqhlJxQt6_I4ib0-2pizsLU0GobTcBgm8EGdhXSnJguZKXuFvNNNWEgHjCd4gslU4IxM4qmYYJqJaMh5NkzGecKicRQP8ynu1HqgthAORSk8TeJjPAoa_UubRx0oqZunoNCNB52soBxKw4Xy0MrU8sm7UUdywZfS-v8RWQcBIuue_N45pEY4XZtGc2BUc8mpE3C1WFwEQp00uo9tatuNxbfKvCn0Nb3WQtbDIcLpnVCC-Rn_50yLl6LKRjnpQ6IUQhTN0QiX8ejtYl8iuv4W98v0D8UYRv2OeGoHQxIOPYdfBu6fexb4qJa0_kYb_7Ww1D4DIomSmSkr144saCUTtAQKM4ZIAnlbhtStNHq99WxUMgMurWDO2Gcw1qO2m_k-3f847tLDNxTNofEmSpIg-GSZjAXeefwqzkBdCSbzZ2jfQSYdM1xcCv0o2g0w0yiuEUkc5FJzQDH-vBdEUt9MjP3uZI3re-rwrHsVvhMfwmn4Mu2P5tILPWN_gyvf4z41pk8zfonsc77blMXuHjbaCQUPwmi4MopDHEWTA8Lp1e4ebr5vlpsU9ocHSGOM-6jbO7jPGu0aICTEnnvecT8YB05vvvsqYGnlWVgYj8YhiULsraalaU84hNMBn0V8Gk3pQMyGSTRNJmQSJYPTLMH5lObTJEnGcZwxyqM4nyRJnmeTfELj0UDOCCZjTIYJnmIcJSHGLGaj4XTK4jhOogkaYVFSqV5MdiDruhGzIUlG48lA0Uyouj0yXT7MhCCyQIT4_fUP4-XAzlqHy5qiRiOsZO3q13xOOtUeutqA8RK-mUfgBjZvD0LtUas_Y1XWFJaW8Cj9Z_Qk_BEMFi_UjdaDxqrZv3Ndb3i-r9p7StfaeUb-CQAA___qlSQy">