<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi,<div class=""><br class=""></div><div class="">I was trying to build an OpenMP offloading program. nvlink always reported following error:</div><div class=""><br class=""></div><div class=""><font face="Courier New" class="">nvlink error   : Undefined reference to '_Z25GetLogicalThreadIdInBlockb' in '/tmp/main-02fcf5.cubin'<br class="">nvlink error   : Undefined reference to '_Z13checkSPMDModeP5ident' in '/tmp/main-02fcf5.cubin'<br class="">nvlink error   : Undefined reference to '_Z14GetOmpThreadIdib' in '/tmp/main-02fcf5.cubin'<br class="">nvlink error   : Undefined reference to '_Z22setExecutionParameters13ExecutionMode11RuntimeMode' in '/tmp/main-02fcf5.cubin'<br class="">nvlink error   : Undefined reference to '_Z18GetThreadIdInBlockv' in '/tmp/main-02fcf5.cubin'<br class="">nvlink error   : Undefined reference to '_Z24GetNumberOfWorkersInTeamv' in '/tmp/main-02fcf5.cubin'<br class="">nvlink error   : Undefined reference to '_Z16IncParallelLevelbj' in '/tmp/main-02fcf5.cubin'<br class="">nvlink error   : Undefined reference to '_Z16DecParallelLevelbj' in '/tmp/main-02fcf5.cubin’</font></div><div class=""><br class=""></div><div class="">I was using clang which was built with trunk via following CMake command:</div><div class=""><br class=""></div><div class=""><font face="Courier New" class="">cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86;NVPTX" -DLLVM_ENABLE_PROJECTS="clang;openmp" -DCLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_75 -DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES=75 -DCMAKE_INSTALL_PREFIX=$HOME/.local ../llvm</font></div><div class=""><font face="Courier New" class="">make -j $(nproc)</font></div><div class=""><br class=""></div><div class="">OpenMP library was built via following CMake command:</div><div class=""><br class=""></div><div class=""><font face="Courier New" class="">cmake -DCMAKE_C_COMPILER=$HOME/.local/bin/clang -DCMAKE_CXX_COMPILER=$HOME/.local/bin/clang++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.local -DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES=75 ..</font></div><div class=""><font face="Courier New" class="">make -j $(nproc)</font></div><div class=""><br class=""></div><div class="">And finally the compilation command is:</div><div class=""><br class=""></div><div class=""><font face="Courier New" class="">clang -fopenmp -fopenmp-targets=nvptx64 main.c</font></div><div class=""><br class=""></div><div class="">Did I miss something? The program is very simple:</div><div class=""><br class=""></div><div class=""><font face="Courier New" class=""> int main() {<br class="">   int i = 0;<br class=""><br class=""> #pragma omp target nowait<br class="">   {<br class="">     i++;<br class="">     int k = 0;<br class="">     ++k;<br class="">   }<br class=""><br class="">   int j = 0;<br class=""> #pragma omp target nowait<br class="">   {<br class="">     ++j;<br class="">   }<br class=""><br class="">   return 0;<br class=""> }</font></div><div class=""><br class=""></div><div class="">I have CUDA 10.1 on the system.</div><div class=""><br class=""><div class="">
<div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">Regards,</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">Shilei</div>
</div>
<br class=""></div></body></html>