aboutsummaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorAlexander Bulekov <alxndr@bu.edu>2022-06-14 11:54:15 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2022-06-15 11:11:37 +0200
commitaa4f3a3b880e9b2109e4b0baeb36cce3e1732159 (patch)
tree944e9d00029ae6f18007eb53ffb44d372cfd1ac4 /meson.build
parent39735a914d577284edc9c6be8df7fb280530c021 (diff)
build: fix check for -fsanitize-coverage-allowlist
The existing check has two problems: 1. Meson uses a private directory for the get_supported_arguments check. ./instrumentation-filter does not exist in that private directory (it is copied into the root of the build-directory). 2. fsanitize-coverage-allowlist is unused when coverage instrumentation is not configured. No instrumentation are passed for the get_supported_arguments check Thus the check always fails. To work around this, change the check to an "if cc.compiles" check and provide /dev/null, instead of the real filter. Meson log: Working directory: build/meson-private/tmpl6wld2d9 Command line: clang-13 -m64 -mcx16 build/meson-private/tmpl6wld2d9/output.obj -c -O3 -D_FILE_OFFSET_BITS=64 -O0 -Werror=implicit-function-declaration -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -fsanitize-coverage-allowlist=instrumentation-filter Error: error: argument unused during compilation: '-fsanitize-coverage-allowlist=instrumentation-filter' Signed-off-by: Alexander Bulekov <alxndr@bu.edu> Message-Id: <20220614155415.4023833-1-alxndr@bu.edu> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build10
1 files changed, 7 insertions, 3 deletions
diff --git a/meson.build b/meson.build
index 21cd949082..fe5d6632fb 100644
--- a/meson.build
+++ b/meson.build
@@ -209,9 +209,13 @@ if get_option('fuzzing')
configure_file(output: 'instrumentation-filter',
input: 'scripts/oss-fuzz/instrumentation-filter-template',
copy: true)
- add_global_arguments(
- cc.get_supported_arguments('-fsanitize-coverage-allowlist=instrumentation-filter'),
- native: false, language: ['c', 'cpp', 'objc'])
+
+ if cc.compiles('int main () { return 0; }',
+ name: '-fsanitize-coverage-allowlist=/dev/null',
+ args: ['-fsanitize-coverage-allowlist=/dev/null'] )
+ add_global_arguments('-fsanitize-coverage-allowlist=instrumentation-filter',
+ native: false, language: ['c', 'cpp', 'objc'])
+ endif
if get_option('fuzzing_engine') == ''
# Add CFLAGS to tell clang to add fuzzer-related instrumentation to all the