diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2021-12-30 09:53:25 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2022-01-02 12:02:19 +0000 |
commit | 802ff7fcee24cb224ea430ac45bece8f8743791f (patch) | |
tree | 928cfa9d730b14bd523a4d2444559fec68757d16 | |
parent | 375fdb6e161ea78a957314efeecd5ee0654a2793 (diff) | |
download | src-802ff7fcee24cb224ea430ac45bece8f8743791f.tar.gz src-802ff7fcee24cb224ea430ac45bece8f8743791f.zip |
Avoid emitting popcnt in libclang_rt.fuzzer*.a if unsupported
Since popcnt is only supported by CPUTYPE=nehalem and later, ensure that
this instruction is only emitted when appropriate. Otherwise, programs
using the library can abort with SIGILL.
See also: https://github.com/llvm/llvm-project/issues/52893
PR: 258156
Reported by: Eric Rucker <bhtooefr@bhtooefr.org>
MFC after: 3 days
(cherry picked from commit 133180557479cd9676758e6f3f93a9d3e1c6b532)
-rw-r--r-- | contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerPlatform.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerPlatform.h b/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerPlatform.h index 1602e6789500..65e77ded8e82 100644 --- a/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerPlatform.h +++ b/contrib/llvm-project/compiler-rt/lib/fuzzer/FuzzerPlatform.h @@ -87,7 +87,7 @@ (LIBFUZZER_APPLE || LIBFUZZER_LINUX || LIBFUZZER_NETBSD || \ LIBFUZZER_FREEBSD || LIBFUZZER_EMSCRIPTEN) -#ifdef __x86_64 +#if defined(__x86_64) && defined(__POPCNT__) #if __has_attribute(target) #define ATTRIBUTE_TARGET_POPCNT __attribute__((target("popcnt"))) #else |