PointCloudLibrary / PointCloudLibrary/pcl
[CUDA] pcl_find_cuda selects bad compilers
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
Your Environment
- Operating System and version: Linux
- Compiler: GCC 9.2, clang 9.0, nvcc 10.1 (gcc 8.3)
- PCL Version: master/HEAD
Context
While creating a build from scratch, the compilers selected are based on system cc and c++ if CC and CXX are not set (which makes sense)
However, nvcc has a restriction on what compilers can be used with it and as a result we get compilation errors related to missing compiler intrinsic/standard features.
Expected Behavior
If not outright correct detection, a warning/error if CUDA modules are selected and bad compiler versions are used
Current Behavior
Error is known only on compilation. Sometimes, the error is straightforward:
nvcc only works with clang 8 but sometimes, it complains of missing compiler instrinic variables like __is_constant_evaluated
Possible Solution
Modify pcl_find_cuda.cmake to do magic detection and sane warnings
Temporary solution for normal people
Ensure that last line in bashrc is export PATH=$CUDA_PATH/bin:$PATH
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading pcl_find_cuda.cmake and reproduce a clean Linux build with CUDA modules enabled using the compiler combinations listed in the issue. Trace how system cc and c++ are selected when CC and CXX are unset. Done means incompatible compiler versions are detected early and produce a useful warning or error instead of failing during compilation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100