[PATCH] D141861: [nvptx-arch] Dynamically load the CUDA runtime if not found during the build

Steven Johnson via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 30 11:03:18 PST 2023


srj added a comment.

In D141861#4060100 <https://reviews.llvm.org/D141861#4060100>, @jhuber6 wrote:

> In D141861#4060028 <https://reviews.llvm.org/D141861#4060028>, @srj wrote:
>
>> This change appears to have broken the build when crosscompiling to x86-32 on a Linux x86-64 system; on the Halide buildbots, we now fail at link time with
>>
>>   FAILED: bin/nvptx-arch 
>>   : && /usr/bin/g++-7  -m32 -Wno-psabi -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -Wno-misleading-indentation -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -fno-strict-aliasing -O3 -DNDEBUG -Wl,-rpath-link,/home/halidenightly/build_bot/worker/llvm-16-x86-32-linux/llvm-build/./lib  -Wl,--gc-sections tools/clang/tools/nvptx-arch/CMakeFiles/nvptx-arch.dir/NVPTXArch.cpp.o -o bin/nvptx-arch  -Wl,-rpath,"\$ORIGIN/../lib"  lib/libLLVMSupport.a  -lpthread  -lrt  -ldl  -lpthread  -lm  lib/libLLVMDemangle.a && :
>>   /usr/bin/ld: tools/clang/tools/nvptx-arch/CMakeFiles/nvptx-arch.dir/NVPTXArch.cpp.o: in function `handleError(cudaError_enum)':
>>   NVPTXArch.cpp:(.text._ZL11handleError14cudaError_enum+0x2b): undefined reference to `cuGetErrorString'
>>   /usr/bin/ld: tools/clang/tools/nvptx-arch/CMakeFiles/nvptx-arch.dir/NVPTXArch.cpp.o: in function `main':
>>   NVPTXArch.cpp:(.text.startup.main+0xcf): undefined reference to `cuInit'
>>   /usr/bin/ld: NVPTXArch.cpp:(.text.startup.main+0xf9): undefined reference to `cuDeviceGetCount'
>>   /usr/bin/ld: NVPTXArch.cpp:(.text.startup.main+0x11e): undefined reference to `cuDeviceGet'
>>   /usr/bin/ld: NVPTXArch.cpp:(.text.startup.main+0x131): undefined reference to `cuDeviceGetAttribute'
>>   /usr/bin/ld: NVPTXArch.cpp:(.text.startup.main+0x146): undefined reference to `cuDeviceGetAttribute'
>>   collect2: error: ld returned 1 exit status
>>
>> I'm guessing that the problem here is that the build machine has Cuda installed (so the headers are found), but no 32-bit version of Cuda (so linking fails).
>>
>> Probably easy to fix, but as of right now, our 32-bit testing is dead in the water; could someone please revert this pending a proper fix?
>
> Can you let me know if rG4ce454c654bd <https://reviews.llvm.org/rG4ce454c654bd4e027fbdcd7b1dba9d164cd36463> solves it? I'm guessing the problem is arising when we find the libraries at build configure time but not at build time so we might need another check as well.

It looks like this change (but not the rG4ce454c654bd <https://reviews.llvm.org/rG4ce454c654bd4e027fbdcd7b1dba9d164cd36463>) is in the 17 branch, as the latter is now failing in the same way for crosscompiles.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141861/new/

https://reviews.llvm.org/D141861



More information about the cfe-commits mailing list