meson: Move -fsanitize=undefined into normal configuraton
With 8e466dd09246 and 23ef50ae2d0c, we disable function pointer sanitization in CI because the qemu code base does not support it. We must disable this for normal usage of --enable-ubsan as well, so move it there. Append options rather than prepend, since all of this requires proper ordering of options. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-ID: <20240813095216.306555-3-richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
cb771ac1f5
commit
db770a206c
@ -436,9 +436,8 @@ clang-system:
|
||||
job: amd64-fedora-container
|
||||
variables:
|
||||
IMAGE: fedora
|
||||
CONFIGURE_ARGS: --cc=clang --cxx=clang++
|
||||
--extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
|
||||
--extra-cflags=-fno-sanitize=function
|
||||
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --enable-ubsan
|
||||
--extra-cflags=-fno-sanitize-recover=undefined
|
||||
TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu s390x-softmmu
|
||||
MAKE_CHECK_ARGS: check-qtest check-tcg
|
||||
|
||||
@ -449,10 +448,9 @@ clang-user:
|
||||
timeout: 70m
|
||||
variables:
|
||||
IMAGE: debian-all-test-cross
|
||||
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system
|
||||
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system --enable-ubsan
|
||||
--target-list-exclude=alpha-linux-user,microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user
|
||||
--extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
|
||||
--extra-cflags=-fno-sanitize=function
|
||||
--extra-cflags=-fno-sanitize-recover=undefined
|
||||
MAKE_CHECK_ARGS: check-unit check-tcg
|
||||
|
||||
# Set LD_JOBS=1 because this requires LTO and ld consumes a large amount of memory.
|
||||
|
11
meson.build
11
meson.build
@ -493,8 +493,15 @@ if get_option('ubsan')
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84285
|
||||
if cc.links('int main(int argc, char **argv) { return argc + 1; }',
|
||||
args: [qemu_ldflags, '-fsanitize=undefined'])
|
||||
qemu_cflags = ['-fsanitize=undefined'] + qemu_cflags
|
||||
qemu_ldflags = ['-fsanitize=undefined'] + qemu_ldflags
|
||||
qemu_cflags += ['-fsanitize=undefined']
|
||||
qemu_ldflags += ['-fsanitize=undefined']
|
||||
|
||||
# Suppress undefined behaviour from function call to mismatched type.
|
||||
# In addition, tcg prologue does not emit function type prefix
|
||||
# required by function call sanitizer.
|
||||
if cc.has_argument('-fno-sanitize=function')
|
||||
qemu_cflags += ['-fno-sanitize=function']
|
||||
endif
|
||||
else
|
||||
error('Your compiler does not support -fsanitize=undefined')
|
||||
endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user