Author: Artem Belevich Date: 2021-09-28T11:29:28-07:00 New Revision: fd582eeffe582665eacac522617a15e17e9872cd
URL: https://github.com/llvm/llvm-project/commit/fd582eeffe582665eacac522617a15e17e9872cd DIFF: https://github.com/llvm/llvm-project/commit/fd582eeffe582665eacac522617a15e17e9872cd.diff LOG: [CUDA] Move CUDA SDK include path further down the include search path. This allows clang to work on Linux distributions like Debian where <CUDA-PATH>/include may be a symlink to /usr/include. We only need `cuda_wrappers` to be present before the standard C++ library headers. The CUDA SDK headers themselves do not need to be found that early. This addresses https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=995122 mentioned in post-commit comments on D108247 Differential Revision: https://reviews.llvm.org/D110596 Added: Modified: clang/lib/Driver/ToolChains/Cuda.cpp clang/test/Driver/cuda-detect.cu Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp index 47c1228b030f6..e4a6fb8d7f2ba 100644 --- a/clang/lib/Driver/ToolChains/Cuda.cpp +++ b/clang/lib/Driver/ToolChains/Cuda.cpp @@ -299,8 +299,6 @@ void CudaInstallationDetector::AddCudaIncludeArgs( return; } - CC1Args.push_back("-internal-isystem"); - CC1Args.push_back(DriverArgs.MakeArgString(getIncludePath())); CC1Args.push_back("-include"); CC1Args.push_back("__clang_cuda_runtime_wrapper.h"); } @@ -867,6 +865,11 @@ CudaToolChain::GetCXXStdlibType(const ArgList &Args) const { void CudaToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs, ArgStringList &CC1Args) const { HostTC.AddClangSystemIncludeArgs(DriverArgs, CC1Args); + + if (!DriverArgs.hasArg(options::OPT_nogpuinc) && CudaInstallation.isValid()) + CC1Args.append( + {"-internal-isystem", + DriverArgs.MakeArgString(CudaInstallation.getIncludePath())}); } void CudaToolChain::AddClangCXXStdlibIncludeArgs(const ArgList &Args, diff --git a/clang/test/Driver/cuda-detect.cu b/clang/test/Driver/cuda-detect.cu index 8fcdb7108f355..948b4d732832f 100644 --- a/clang/test/Driver/cuda-detect.cu +++ b/clang/test/Driver/cuda-detect.cu @@ -179,10 +179,10 @@ // LIBDEVICE50-SAME: libdevice.compute_50.10.bc // PTX42-SAME: "-target-feature" "+ptx42" // PTX60-SAME: "-target-feature" "+ptx60" -// CUDAINC-SAME: "-internal-isystem" "{{.*}}/Inputs/CUDA{{[_0-9]+}}/usr/local/cuda/include" -// NOCUDAINC-NOT: "-internal-isystem" "{{.*}}/cuda/include" // CUDAINC-SAME: "-include" "__clang_cuda_runtime_wrapper.h" // NOCUDAINC-NOT: "-include" "__clang_cuda_runtime_wrapper.h" +// CUDAINC-SAME: "-internal-isystem" "{{.*}}/Inputs/CUDA{{[_0-9]+}}/usr/local/cuda/include" +// NOCUDAINC-NOT: "-internal-isystem" "{{.*}}/cuda/include" // -internal-externc-isystem flags must come *after* the cuda include flags, // because we must search the cuda include directory first. // CUDAINC-SAME: "-internal-externc-isystem" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits