forked from OSchip/llvm-project
[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
This commit is contained in:
parent
bfa50250b6
commit
fd582eeffe
|
@ -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,
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue