llvm-project/clang/lib/Driver/ToolChains
Dokyung Song 831ae45e3d Recommit "[libFuzzer] Link libFuzzer's own interceptors when other compiler runtimes are not linked."
Summary: libFuzzer intercepts certain library functions such as memcmp/strcmp by defining weak hooks. Weak hooks, however, are called only when other runtimes such as ASan is linked. This patch defines libFuzzer's own interceptors, which is linked into the libFuzzer executable when other runtimes are not linked, i.e., when -fsanitize=fuzzer is given, but not others.

The patch once landed but was reverted in 8ef9e2bf35 due to an assertion failure caused by calling an intercepted function, strncmp, while initializing the interceptors in fuzzerInit(). This issue is now fixed by calling libFuzzer's own implementation of library functions (i.e., internal_*) when the fuzzer has not been initialized yet, instead of recursively calling fuzzerInit() again.

Reviewers: kcc, morehouse, hctim

Subscribers: #sanitizers, krytarowski, mgorny, cfe-commits

Tags: #clang, #sanitizers

Differential Revision: https://reviews.llvm.org/D83494
2020-07-23 15:59:07 +00:00
..
Arch [Driver] Add support for -msve-vector-bits=scalable. 2020-07-20 10:46:22 +00:00
AIX.cpp [Clang] Handle AIX Include management in the driver 2020-07-07 11:15:06 -04:00
AIX.h [Clang] Handle AIX Include management in the driver 2020-07-07 11:15:06 -04:00
AMDGPU.cpp Fix regression due to test hip-version.hip 2020-07-11 12:45:29 -04:00
AMDGPU.h Fix regression due to test hip-version.hip 2020-07-11 12:45:29 -04:00
AVR.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
AVR.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
Ananas.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
Ananas.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
BareMetal.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
BareMetal.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Clang.cpp add -fpch-codegen/debuginfo mapping to -fmodules-codegen/debuginfo 2020-07-22 10:21:53 +02:00
Clang.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
CloudABI.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
CloudABI.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
CommonArgs.cpp Recommit "[libFuzzer] Link libFuzzer's own interceptors when other compiler runtimes are not linked." 2020-07-23 15:59:07 +00:00
CommonArgs.h [NFC] Extract unifyTargetFeatures 2020-06-25 23:17:08 -04:00
Contiki.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Contiki.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CrossWindows.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
CrossWindows.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
Cuda.cpp [Driver] Promote SmallSet of enum to a bitset. NFCI. 2020-07-20 16:54:30 +02:00
Cuda.h [Driver] Promote SmallSet of enum to a bitset. NFCI. 2020-07-20 16:54:30 +02:00
Darwin.cpp [gcov] Add __gcov_dump/__gcov_reset and delete __gcov_flush 2020-07-18 15:07:46 -07:00
Darwin.h Fix regression due to test hip-version.hip 2020-07-11 12:45:29 -04:00
DragonFly.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
DragonFly.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
Flang.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
Flang.h [clang][driver] Add basic --driver-mode=flang support for fortran 2019-10-30 10:42:22 +00:00
FreeBSD.cpp Fix regression due to test hip-version.hip 2020-07-11 12:45:29 -04:00
FreeBSD.h Fix regression due to test hip-version.hip 2020-07-11 12:45:29 -04:00
Fuchsia.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
Fuchsia.h [Fuchsia] Rely on linker switch rather than dead code ref for profile runtime 2020-06-04 15:47:05 -07:00
Gnu.cpp [MSP430] Actualize the toolchain description 2020-07-17 15:42:12 +03:00
Gnu.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
HIP.cpp Fix regression due to test hip-version.hip 2020-07-11 12:45:29 -04:00
HIP.h [HIP] Move HIP Linking Logic into HIP ToolChain 2020-06-22 19:48:48 +00:00
Haiku.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Haiku.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Hexagon.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
Hexagon.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
Hurd.cpp [Driver] Search computed sysroot for libc++ header paths 2020-06-17 16:17:37 -07:00
Hurd.h [Driver] Search computed sysroot for libc++ header paths 2020-06-17 16:17:37 -07:00
InterfaceStubs.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
InterfaceStubs.h [clang][ifs] Clang Interface Stubs ToolChain plumbing. 2019-10-08 15:23:14 +00:00
Lanai.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Linux.cpp [VE] Clang toolchain for VE 2020-06-24 10:12:09 +02:00
Linux.h Add Statically Linked Libraries 2020-06-22 19:48:49 +00:00
MSP430.cpp [MSP430] Actualize the toolchain description 2020-07-17 15:42:12 +03:00
MSP430.h [MSP430] Actualize the toolchain description 2020-07-17 15:42:12 +03:00
MSVC.cpp [HIP] Fix rocm detection 2020-07-10 23:20:15 -04:00
MSVC.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
MSVCSetupApi.h
MinGW.cpp Fix regression due to test hip-version.hip 2020-07-11 12:45:29 -04:00
MinGW.h Fix regression due to test hip-version.hip 2020-07-11 12:45:29 -04:00
Minix.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
Minix.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
MipsLinux.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
MipsLinux.h [Driver] Support object files in addition to static and shared libraries in compiler-rt 2019-03-12 02:12:48 +00:00
Myriad.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
Myriad.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
NaCl.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
NaCl.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
NetBSD.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
NetBSD.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
OpenBSD.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
OpenBSD.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
PPCLinux.cpp [PowerPC] [Clang] Add platform guards to PPC vector intrinsics headers 2019-07-30 02:18:11 +00:00
PPCLinux.h [PowerPC] [Clang] Port MMX intrinsics and basic test cases to Power 2019-04-23 05:50:24 +00:00
PS4CPU.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
PS4CPU.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
RISCVToolchain.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
RISCVToolchain.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
ROCm.h [Driver] Promote SmallSet of enum to a bitset. NFCI. 2020-07-20 16:54:30 +02:00
Solaris.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
Solaris.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
TCE.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
TCE.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
VEToolchain.cpp [VE] Rename VE toolchain source files 2020-07-02 18:45:16 +09:00
VEToolchain.h [VE] Rename VE toolchain source files 2020-07-02 18:45:16 +09:00
WebAssembly.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
WebAssembly.h Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
XCore.cpp Clang Driver: refactor support for writing response files to be 2020-06-29 18:27:02 -04:00
XCore.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00