meson: Stop if cfi is enabled with system slirp
For CFI, we need to compile slirp as a static library together with qemu. This is because we register slirp functions as callbacks for QEMU Timers. When using a system-wide shared libslirp, the type information for the callback is missing and the timer call produces a false positive with CFI. With this patch, meson will stop if CFI is enabled with system-wide slirp. In 6.1 we will introduce a new interface to slirp where the callback is passed as an enum rather than a function pointer. Signed-off-by: Daniele Buono <dbuono@linux.vnet.ibm.com> Message-Id: <20210304025939.9164-1-dbuono@linux.vnet.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
7520c4f084
commit
c715343fd9
12
meson.build
12
meson.build
@ -1574,6 +1574,18 @@ if have_system
|
||||
endif
|
||||
endif
|
||||
|
||||
# For CFI, we need to compile slirp as a static library together with qemu.
|
||||
# This is because we register slirp functions as callbacks for QEMU Timers.
|
||||
# When using a system-wide shared libslirp, the type information for the
|
||||
# callback is missing and the timer call produces a false positive with CFI.
|
||||
#
|
||||
# Now that slirp_opt has been defined, check if the selected slirp is compatible
|
||||
# with control-flow integrity.
|
||||
if get_option('cfi') and slirp_opt == 'system'
|
||||
error('Control-Flow Integrity is not compatible with system-wide slirp.' \
|
||||
+ ' Please configure with --enable-slirp=git')
|
||||
endif
|
||||
|
||||
fdt = not_found
|
||||
fdt_opt = get_option('fdt')
|
||||
if have_system
|
||||
|
Loading…
Reference in New Issue
Block a user