This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG767852b1a8e3: [Clang] Disable `libc` headers for offloading languages (authored by jhuber6).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D153578/new/ https://reviews.llvm.org/D153578 Files: clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/gpu-libc-headers.c Index: clang/test/Driver/gpu-libc-headers.c =================================================================== --- clang/test/Driver/gpu-libc-headers.c +++ clang/test/Driver/gpu-libc-headers.c @@ -1,18 +1,6 @@ // REQUIRES: nvptx-registered-target // REQUIRES: amdgpu-registered-target -// RUN: %clang -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --sysroot=./ \ -// RUN: -fopenmp-targets=amdgcn-amd-amdhsa -Xopenmp-target=amdgcn-amd-amdhsa --offload-arch=gfx908 \ -// RUN: -nogpulib %s 2>&1 | FileCheck %s --check-prefix=CHECK-HEADERS -// RUN: %clang -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --sysroot=./ \ -// RUN: -fopenmp-targets=nvptx64-nvidia-cuda -Xopenmp-target=nvptx64-nvidia-cuda --offload-arch=sm_70 \ -// RUN: -nogpulib %s 2>&1 | FileCheck %s --check-prefix=CHECK-HEADERS -// RUN: %clang -### --target=nvptx64-nvidia-cuda -march=sm_70 -nogpulib --sysroot=./ %s 2>&1 | \ -// RUN: FileCheck %s --check-prefix=CHECK-HEADERS -// RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx1030 -nogpulib --sysroot=./ %s 2>&1 | \ -// RUN: FileCheck %s --check-prefix=CHECK-HEADERS -// CHECK-HEADERS: "-cc1"{{.*}}"-c-isystem" "{{.*}}include{{.*}}gpu-none-llvm"{{.*}}"-isysroot" "./" - // RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx1030 -nogpulib \ // RUN: -nogpuinc %s 2>&1 | FileCheck %s --check-prefix=CHECK-HEADERS-DISABLED // RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx1030 -nogpulib \ Index: clang/lib/Driver/ToolChains/Clang.cpp =================================================================== --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -1181,16 +1181,18 @@ // If we are compiling for a GPU target we want to override the system headers // with ones created by the 'libc' project if present. + // FIXME: We need to find a way to make these headers compatible with the + // host environment so they can be included from offloading languages. For now + // these are only active when targeting the GPU with cross-compilation. if (!Args.hasArg(options::OPT_nostdinc) && !Args.hasArg(options::OPT_nogpuinc) && !Args.hasArg(options::OPT_nobuiltininc) && + C.getActiveOffloadKinds() == Action::OFK_None && (getToolChain().getTriple().isNVPTX() || getToolChain().getTriple().isAMDGCN())) { // Add include/gpu-none-libc/* to our system include path. This lets us use // GPU-specific system headers first. - // TODO: We need to find a way to make these headers compatible with the - // host environment. SmallString<128> P(llvm::sys::path::parent_path(D.InstalledDir)); llvm::sys::path::append(P, "include"); llvm::sys::path::append(P, "gpu-none-llvm");
Index: clang/test/Driver/gpu-libc-headers.c =================================================================== --- clang/test/Driver/gpu-libc-headers.c +++ clang/test/Driver/gpu-libc-headers.c @@ -1,18 +1,6 @@ // REQUIRES: nvptx-registered-target // REQUIRES: amdgpu-registered-target -// RUN: %clang -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --sysroot=./ \ -// RUN: -fopenmp-targets=amdgcn-amd-amdhsa -Xopenmp-target=amdgcn-amd-amdhsa --offload-arch=gfx908 \ -// RUN: -nogpulib %s 2>&1 | FileCheck %s --check-prefix=CHECK-HEADERS -// RUN: %clang -### --target=x86_64-unknown-linux-gnu -fopenmp=libomp --sysroot=./ \ -// RUN: -fopenmp-targets=nvptx64-nvidia-cuda -Xopenmp-target=nvptx64-nvidia-cuda --offload-arch=sm_70 \ -// RUN: -nogpulib %s 2>&1 | FileCheck %s --check-prefix=CHECK-HEADERS -// RUN: %clang -### --target=nvptx64-nvidia-cuda -march=sm_70 -nogpulib --sysroot=./ %s 2>&1 | \ -// RUN: FileCheck %s --check-prefix=CHECK-HEADERS -// RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx1030 -nogpulib --sysroot=./ %s 2>&1 | \ -// RUN: FileCheck %s --check-prefix=CHECK-HEADERS -// CHECK-HEADERS: "-cc1"{{.*}}"-c-isystem" "{{.*}}include{{.*}}gpu-none-llvm"{{.*}}"-isysroot" "./" - // RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx1030 -nogpulib \ // RUN: -nogpuinc %s 2>&1 | FileCheck %s --check-prefix=CHECK-HEADERS-DISABLED // RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx1030 -nogpulib \ Index: clang/lib/Driver/ToolChains/Clang.cpp =================================================================== --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -1181,16 +1181,18 @@ // If we are compiling for a GPU target we want to override the system headers // with ones created by the 'libc' project if present. + // FIXME: We need to find a way to make these headers compatible with the + // host environment so they can be included from offloading languages. For now + // these are only active when targeting the GPU with cross-compilation. if (!Args.hasArg(options::OPT_nostdinc) && !Args.hasArg(options::OPT_nogpuinc) && !Args.hasArg(options::OPT_nobuiltininc) && + C.getActiveOffloadKinds() == Action::OFK_None && (getToolChain().getTriple().isNVPTX() || getToolChain().getTriple().isAMDGCN())) { // Add include/gpu-none-libc/* to our system include path. This lets us use // GPU-specific system headers first. - // TODO: We need to find a way to make these headers compatible with the - // host environment. SmallString<128> P(llvm::sys::path::parent_path(D.InstalledDir)); llvm::sys::path::append(P, "include"); llvm::sys::path::append(P, "gpu-none-llvm");
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits