https://github.com/jhuber6 created https://github.com/llvm/llvm-project/pull/126090
Summary: This probably wasn't the intended result, but the code here causes OpenMP to always link in `ockl.bc` which was intentionally not linked. This results in the OCKL definitions conflicting with the OpenMP ones and also prevents them from being optimized out (Might be fixed with newer ROCm that actually builds the visibility correctly). I'm pretty sure the only reason this didn't break the tests is because we're smart and pass `-nogpulib` there to keep the environment from being poisoned with stuff like this. >From e85b87c469988708c0f64ea65467e47baf4cf5d6 Mon Sep 17 00:00:00 2001 From: Joseph Huber <hube...@outlook.com> Date: Thu, 6 Feb 2025 10:55:05 -0600 Subject: [PATCH] [AMDGPU] Do not enable GPU sanitizers by default Summary: This probably wasn't the intended result, but the code here causes OpenMP to always link in `ockl.bc` which was intentionally not linked. This results in the OCKL definitions conflicting with the OpenMP ones and also prevents them from being optimized out (Might be fixed with newer ROCm that actually builds the visibility correctly). I'm pretty sure the only reason this didn't break the tests is because we're smart and pass `-nogpulib` there to keep the environment from being poisoned with stuff like this. --- clang/lib/Driver/ToolChains/AMDGPU.cpp | 4 ++-- clang/test/Driver/hip-sanitize-options.hip | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp index 83f486611bc9466..e66e5a32e58acdc 100644 --- a/clang/lib/Driver/ToolChains/AMDGPU.cpp +++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp @@ -1066,7 +1066,7 @@ ROCMToolChain::getCommonDeviceLibNames(const llvm::opt::ArgList &DriverArgs, // them all? std::tuple<bool, const SanitizerArgs> GPUSan( DriverArgs.hasFlag(options::OPT_fgpu_sanitize, - options::OPT_fno_gpu_sanitize, true), + options::OPT_fno_gpu_sanitize, false), getSanitizerArgs(DriverArgs)); bool DAZ = DriverArgs.hasFlag(options::OPT_fgpu_flush_denormals_to_zero, options::OPT_fno_gpu_flush_denormals_to_zero, @@ -1099,7 +1099,7 @@ bool AMDGPUToolChain::shouldSkipSanitizeOption( return false; if (!DriverArgs.hasFlag(options::OPT_fgpu_sanitize, - options::OPT_fno_gpu_sanitize, true)) + options::OPT_fno_gpu_sanitize, false)) return true; auto &Diags = TC.getDriver().getDiags(); diff --git a/clang/test/Driver/hip-sanitize-options.hip b/clang/test/Driver/hip-sanitize-options.hip index 8de0ee9e18426b6..8a852867f5b3b34 100644 --- a/clang/test/Driver/hip-sanitize-options.hip +++ b/clang/test/Driver/hip-sanitize-options.hip @@ -1,5 +1,5 @@ // RUN: %clang -### --target=x86_64-unknown-linux-gnu --offload-arch=gfx900:xnack+ \ -// RUN: -fsanitize=address \ +// RUN: -fsanitize=address -fgpu-sanitize \ // RUN: -nogpuinc --rocm-path=%S/Inputs/rocm \ // RUN: %s 2>&1 | FileCheck -check-prefixes=NORDC %s _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits