build: fix check for -fsanitize-coverage-allowlist
commitaa4f3a3b880e9b2109e4b0baeb36cce3e1732159
authorAlexander Bulekov <alxndr@bu.edu>
Tue, 14 Jun 2022 15:54:15 +0000 (14 11:54 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 15 Jun 2022 09:11:37 +0000 (15 11:11 +0200)
tree944e9d00029ae6f18007eb53ffb44d372cfd1ac4
parent39735a914d577284edc9c6be8df7fb280530c021
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>
meson.build