[clang] Revert "[clang][driver] Correcting arguments when using `libFuzzer` with `-shared-libsan`" (PR #180699)
Björn Svensson via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 10 00:04:25 PST 2026
https://github.com/bjosv created https://github.com/llvm/llvm-project/pull/180699
Reverts llvm/llvm-project#164842
>From 93096b8f1fdd6489f39adc22bc343aa87dd59ac9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Svensson?= <bjorn.a.svensson at est.tech>
Date: Tue, 10 Feb 2026 09:04:01 +0100
Subject: [PATCH] =?UTF-8?q?Revert=20"[clang][driver]=20Correcting=20argume?=
=?UTF-8?q?nts=20when=20using=20`libFuzzer`=20with=20`-sh=E2=80=A6"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit 55d6c6ff5802efcfc2ab9643316d9670eb29e790.
---
clang/lib/Driver/ToolChains/CommonArgs.cpp | 11 +++--------
clang/test/Driver/fuzzer.c | 12 +-----------
clang/test/Driver/sanitizer-ld.c | 8 --------
3 files changed, 4 insertions(+), 27 deletions(-)
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index a09c3db42b423..aea4bd95fefeb 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -1751,17 +1751,11 @@ bool tools::addSanitizerRuntimes(const ToolChain &TC, const ArgList &Args,
CmdArgs.push_back(Args.MakeArgString(S));
}
- // Add shared runtimes before adding fuzzer and its dependencies.
- for (auto RT : SharedRuntimes)
- addSanitizerRuntime(TC, Args, CmdArgs, RT, true, false);
-
// Inject libfuzzer dependencies.
- bool FuzzerNeedsSanitizerDeps = false;
if (SanArgs.needsFuzzer() && SanArgs.linkRuntimes() &&
!Args.hasArg(options::OPT_shared)) {
addSanitizerRuntime(TC, Args, CmdArgs, "fuzzer", false, true);
- FuzzerNeedsSanitizerDeps = true;
if (SanArgs.needsFuzzerInterceptors())
addSanitizerRuntime(TC, Args, CmdArgs, "fuzzer_interceptors", false,
true);
@@ -1776,6 +1770,8 @@ bool tools::addSanitizerRuntimes(const ToolChain &TC, const ArgList &Args,
}
}
+ for (auto RT : SharedRuntimes)
+ addSanitizerRuntime(TC, Args, CmdArgs, RT, true, false);
for (auto RT : HelperStaticRuntimes)
addSanitizerRuntime(TC, Args, CmdArgs, RT, false, true);
bool AddExportDynamic = false;
@@ -1808,8 +1804,7 @@ bool tools::addSanitizerRuntimes(const ToolChain &TC, const ArgList &Args,
CmdArgs.push_back("--android-memtag-stack");
}
- return !StaticRuntimes.empty() || !NonWholeStaticRuntimes.empty() ||
- FuzzerNeedsSanitizerDeps;
+ return !StaticRuntimes.empty() || !NonWholeStaticRuntimes.empty();
}
bool tools::addXRayRuntime(const ToolChain&TC, const ArgList &Args, ArgStringList &CmdArgs) {
diff --git a/clang/test/Driver/fuzzer.c b/clang/test/Driver/fuzzer.c
index 716ea9db9d8a6..409fbfac8ce1d 100644
--- a/clang/test/Driver/fuzzer.c
+++ b/clang/test/Driver/fuzzer.c
@@ -26,7 +26,7 @@
// CHECK-NOLIB-NOT: libclang_rt.libfuzzer
// CHECK-COV: -fsanitize-coverage-inline-8bit-counters
-// Check that we respect whether the standard library should be linked.
+// Check that we respect whether thes tandard library should be linked
// statically.
//
// RUN: %clang -fsanitize=fuzzer --target=i386-unknown-linux -stdlib=libstdc++ %s -### 2>&1 | FileCheck --check-prefixes=CHECK-LIBSTDCXX-DYNAMIC %s
@@ -43,16 +43,6 @@
// RUN: %clang -fsanitize=fuzzer --target=i386-unknown-linux -stdlib=libc++ -static-libstdc++ %s -### 2>&1 | FileCheck --check-prefixes=CHECK-LIBCXX-STATIC %s
// CHECK-LIBCXX-STATIC: "-Bstatic" "-lc++"
-// Check that we add required dependencies when linking the sanitizer runtime
-// (e.g. libFuzzer uses sqrt in libm).
-//
-// RUN: %clang -fsanitize=fuzzer -shared-libsan --target=x86_64-linux-gnu %s -### 2>&1 | FileCheck --check-prefixes=CHECK-SHARED-LIBSAN %s
-// CHECK-SHARED-LIBSAN: -lm
-// RUN: %clang -fsanitize=fuzzer -static-libsan --target=x86_64-linux-gnu %s -### 2>&1 | FileCheck --check-prefixes=CHECK-STATIC-LIBSAN %s
-// CHECK-STATIC-LIBSAN: -lm
-// RUN: %clang -fsanitize=fuzzer --target=x86_64-linux-gnu %s -### 2>&1 | FileCheck --check-prefixes=CHECK-DEFAULT-LIBSAN %s
-// CHECK-DEFAULT-LIBSAN: -lm
-
int LLVMFuzzerTestOneInput(const char *Data, long Size) {
return 0;
}
diff --git a/clang/test/Driver/sanitizer-ld.c b/clang/test/Driver/sanitizer-ld.c
index 93fb69d639350..ac1851286af63 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -1393,11 +1393,3 @@
// RUN: | %{filecheck} --check-prefix=CHECK-RELOCATABLE-LINK-TSAN-RTLIB
//
// CHECK-RELOCATABLE-LINK-TSAN-RTLIB-NOT: "{{.*}}tsan{{.*}}"
-
-// RUN: %clang -fsanitize=fuzzer,address -shared-libsan -### %s 2>&1 \
-// RUN: --target=x86_64-unknown-linux -fuse-ld=ld \
-// RUN: -resource-dir=%S/Inputs/resource_dir \
-// RUN: --sysroot=%S/Inputs/basic_linux_tree \
-// RUN: | FileCheck %s --check-prefix=CHECK-FUZZER-WITH-SHARED-ASAN-ORDER
-//
-// CHECK-FUZZER-WITH-SHARED-ASAN-ORDER: "{{.*}}libclang_rt.asan.so" "--whole-archive" "{{.*}}libclang_rt.fuzzer.a" "--no-whole-archive" "-lstdc++"
More information about the cfe-commits
mailing list