19bc18cc9e
- kvm-vdpa-Skip-the-maps-not-in-the-iova-tree.patch [RHELX-57] - kvm-vdpa-do-not-save-failed-dma-maps-in-SVQ-iova-tree.patch [RHELX-57] - kvm-util-accept-iova_tree_remove_parameter-by-value.patch [RHELX-57] - kvm-vdpa-Remove-SVQ-vring-from-iova_tree-at-shutdown.patch [RHELX-57] - kvm-vdpa-Make-SVQ-vring-unmapping-return-void.patch [RHELX-57] - kvm-vhost-Always-store-new-kick-fd-on-vhost_svq_set_svq_.patch [RHELX-57] - kvm-vdpa-Use-ring-hwaddr-at-vhost_vdpa_svq_unmap_ring.patch [RHELX-57] - kvm-vhost-stop-transfer-elem-ownership-in-vhost_handle_g.patch [RHELX-57] - kvm-vhost-use-SVQ-element-ndescs-instead-of-opaque-data-.patch [RHELX-57] - kvm-vhost-Delete-useless-read-memory-barrier.patch [RHELX-57] - kvm-vhost-Do-not-depend-on-NULL-VirtQueueElement-on-vhos.patch [RHELX-57] - kvm-vhost_net-Add-NetClientInfo-start-callback.patch [RHELX-57] - kvm-vhost_net-Add-NetClientInfo-stop-callback.patch [RHELX-57] - kvm-vdpa-add-net_vhost_vdpa_cvq_info-NetClientInfo.patch [RHELX-57] - kvm-vdpa-Move-command-buffers-map-to-start-of-net-device.patch [RHELX-57] - kvm-vdpa-extract-vhost_vdpa_net_cvq_add-from-vhost_vdpa_.patch [RHELX-57] - kvm-vhost_net-add-NetClientState-load-callback.patch [RHELX-57] - kvm-vdpa-Add-virtio-net-mac-address-via-CVQ-at-start.patch [RHELX-57] - kvm-vdpa-Delete-CVQ-migration-blocker.patch [RHELX-57] - kvm-vdpa-Make-VhostVDPAState-cvq_cmd_in_buffer-control-a.patch [RHELX-57] - kvm-vdpa-extract-vhost_vdpa_net_load_mac-from-vhost_vdpa.patch [RHELX-57] - kvm-vdpa-Add-vhost_vdpa_net_load_mq.patch [RHELX-57] - kvm-vdpa-validate-MQ-CVQ-commands.patch [RHELX-57] - kvm-virtio-net-Update-virtio-net-curr_queue_pairs-in-vdp.patch [RHELX-57] - kvm-vdpa-Allow-MQ-feature-in-SVQ.patch [RHELX-57] - kvm-i386-reset-KVM-nested-state-upon-CPU-reset.patch [bz#2125281] - kvm-i386-do-kvm_put_msr_feature_control-first-thing-when.patch [bz#2125281] - kvm-Revert-Re-enable-capstone-internal-build.patch [bz#2127825] - kvm-spec-Use-capstone-package.patch [bz#2127825] - Resolves: RHELX-57 (vDPA SVQ Multiqueue support ) - Resolves: bz#2125281 ([RHEL9.1] Guests in VMX root operation fail to reboot with QEMU's 'system_reset' command [rhel-9.2.0]) - Resolves: bz#2127825 (Use capstone for qemu-kvm build)
253 lines
9.7 KiB
Diff
253 lines
9.7 KiB
Diff
From 4ce18f26f30cfb8860153825c504289f43800f5e Mon Sep 17 00:00:00 2001
|
|
From: Miroslav Rezanina <mrezanin@redhat.com>
|
|
Date: Mon, 19 Sep 2022 03:23:41 -0400
|
|
Subject: [PATCH 28/29] Revert "Re-enable capstone internal build"
|
|
|
|
RH-Author: Miroslav Rezanina <mrezanin@redhat.com>
|
|
RH-MergeRequest: 119: Use capstone package for qemu-kvm build
|
|
RH-Bugzilla: 2127825
|
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
|
RH-Commit: [1/2] bd58ace2233e3071703a69ea9e7bfcd82416cda1 (mrezanin/centos-src-qemu-kvm)
|
|
|
|
This reverts commit c2c10b636a97d1cb9c4abbc4152a34ebf2f44817.
|
|
|
|
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
---
|
|
configure | 12 ----
|
|
meson.build | 116 ++--------------------------------
|
|
meson_options.txt | 3 +-
|
|
scripts/meson-buildoptions.sh | 5 +-
|
|
4 files changed, 7 insertions(+), 129 deletions(-)
|
|
|
|
diff --git a/configure b/configure
|
|
index 448b0c82cb..72ab03f11a 100755
|
|
--- a/configure
|
|
+++ b/configure
|
|
@@ -322,10 +322,8 @@ vfio_user_server="disabled"
|
|
|
|
# 1. Track which submodules are needed
|
|
if test "$default_feature" = no ; then
|
|
- capstone="disabled"
|
|
slirp="disabled"
|
|
else
|
|
- capstone="auto"
|
|
slirp="auto"
|
|
fi
|
|
fdt="auto"
|
|
@@ -904,15 +902,6 @@ for opt do
|
|
--enable-uuid|--disable-uuid)
|
|
echo "$0: $opt is obsolete, UUID support is always built" >&2
|
|
;;
|
|
- --disable-capstone) capstone="disabled"
|
|
- ;;
|
|
- --enable-capstone) capstone="enabled"
|
|
- ;;
|
|
- --enable-capstone=git) capstone="internal"
|
|
- ;;
|
|
- --enable-capstone=*) capstone="$optarg"
|
|
- ;;
|
|
-
|
|
--with-git=*) git="$optarg"
|
|
;;
|
|
--with-git-submodules=*)
|
|
@@ -2753,7 +2742,6 @@ if test "$skip_meson" = no; then
|
|
test "$werror" = yes && meson_option_add -Dwerror=true
|
|
|
|
# QEMU options
|
|
- test "$capstone" != auto && meson_option_add "-Dcapstone=$capstone"
|
|
test "$cfi" != false && meson_option_add "-Dcfi=$cfi"
|
|
test "$fdt" != auto && meson_option_add "-Dfdt=$fdt"
|
|
test -n "${LIB_FUZZING_ENGINE+xxx}" && meson_option_add "-Dfuzzing_engine=$LIB_FUZZING_ENGINE"
|
|
diff --git a/meson.build b/meson.build
|
|
index 9e6a979c13..20fddbd707 100644
|
|
--- a/meson.build
|
|
+++ b/meson.build
|
|
@@ -2596,13 +2596,10 @@ genh += custom_target('config-poison.h',
|
|
##############
|
|
|
|
capstone = not_found
|
|
-capstone_opt = get_option('capstone')
|
|
-if capstone_opt in ['enabled', 'auto', 'system']
|
|
- have_internal = fs.exists(meson.current_source_dir() / 'capstone/Makefile')
|
|
+if not get_option('capstone').auto() or have_system or have_user
|
|
capstone = dependency('capstone', version: '>=3.0.5',
|
|
kwargs: static_kwargs, method: 'pkg-config',
|
|
- required: capstone_opt == 'system' or
|
|
- capstone_opt == 'enabled' and not have_internal)
|
|
+ required: get_option('capstone'))
|
|
|
|
# Some versions of capstone have broken pkg-config file
|
|
# that reports a wrong -I path, causing the #include to
|
|
@@ -2611,113 +2608,10 @@ if capstone_opt in ['enabled', 'auto', 'system']
|
|
if capstone.found() and not cc.compiles('#include <capstone.h>',
|
|
dependencies: [capstone])
|
|
capstone = not_found
|
|
- if capstone_opt == 'system'
|
|
- error('system capstone requested, it does not appear to work')
|
|
+ if get_option('capstone').enabled()
|
|
+ error('capstone requested, but it does not appear to work')
|
|
endif
|
|
endif
|
|
-
|
|
- if capstone.found()
|
|
- capstone_opt = 'system'
|
|
- elif have_internal
|
|
- capstone_opt = 'internal'
|
|
- else
|
|
- capstone_opt = 'disabled'
|
|
- endif
|
|
-endif
|
|
-if capstone_opt == 'internal'
|
|
- capstone_data = configuration_data()
|
|
- capstone_data.set('CAPSTONE_USE_SYS_DYN_MEM', '1')
|
|
-
|
|
- capstone_files = files(
|
|
- 'capstone/cs.c',
|
|
- 'capstone/MCInst.c',
|
|
- 'capstone/MCInstrDesc.c',
|
|
- 'capstone/MCRegisterInfo.c',
|
|
- 'capstone/SStream.c',
|
|
- 'capstone/utils.c'
|
|
- )
|
|
-
|
|
- if 'CONFIG_ARM_DIS' in config_all_disas
|
|
- capstone_data.set('CAPSTONE_HAS_ARM', '1')
|
|
- capstone_files += files(
|
|
- 'capstone/arch/ARM/ARMDisassembler.c',
|
|
- 'capstone/arch/ARM/ARMInstPrinter.c',
|
|
- 'capstone/arch/ARM/ARMMapping.c',
|
|
- 'capstone/arch/ARM/ARMModule.c'
|
|
- )
|
|
- endif
|
|
-
|
|
- # FIXME: This config entry currently depends on a c++ compiler.
|
|
- # Which is needed for building libvixl, but not for capstone.
|
|
- if 'CONFIG_ARM_A64_DIS' in config_all_disas
|
|
- capstone_data.set('CAPSTONE_HAS_ARM64', '1')
|
|
- capstone_files += files(
|
|
- 'capstone/arch/AArch64/AArch64BaseInfo.c',
|
|
- 'capstone/arch/AArch64/AArch64Disassembler.c',
|
|
- 'capstone/arch/AArch64/AArch64InstPrinter.c',
|
|
- 'capstone/arch/AArch64/AArch64Mapping.c',
|
|
- 'capstone/arch/AArch64/AArch64Module.c'
|
|
- )
|
|
- endif
|
|
-
|
|
- if 'CONFIG_PPC_DIS' in config_all_disas
|
|
- capstone_data.set('CAPSTONE_HAS_POWERPC', '1')
|
|
- capstone_files += files(
|
|
- 'capstone/arch/PowerPC/PPCDisassembler.c',
|
|
- 'capstone/arch/PowerPC/PPCInstPrinter.c',
|
|
- 'capstone/arch/PowerPC/PPCMapping.c',
|
|
- 'capstone/arch/PowerPC/PPCModule.c'
|
|
- )
|
|
- endif
|
|
-
|
|
- if 'CONFIG_S390_DIS' in config_all_disas
|
|
- capstone_data.set('CAPSTONE_HAS_SYSZ', '1')
|
|
- capstone_files += files(
|
|
- 'capstone/arch/SystemZ/SystemZDisassembler.c',
|
|
- 'capstone/arch/SystemZ/SystemZInstPrinter.c',
|
|
- 'capstone/arch/SystemZ/SystemZMapping.c',
|
|
- 'capstone/arch/SystemZ/SystemZModule.c',
|
|
- 'capstone/arch/SystemZ/SystemZMCTargetDesc.c'
|
|
- )
|
|
- endif
|
|
-
|
|
- if 'CONFIG_I386_DIS' in config_all_disas
|
|
- capstone_data.set('CAPSTONE_HAS_X86', 1)
|
|
- capstone_files += files(
|
|
- 'capstone/arch/X86/X86Disassembler.c',
|
|
- 'capstone/arch/X86/X86DisassemblerDecoder.c',
|
|
- 'capstone/arch/X86/X86ATTInstPrinter.c',
|
|
- 'capstone/arch/X86/X86IntelInstPrinter.c',
|
|
- 'capstone/arch/X86/X86InstPrinterCommon.c',
|
|
- 'capstone/arch/X86/X86Mapping.c',
|
|
- 'capstone/arch/X86/X86Module.c'
|
|
- )
|
|
- endif
|
|
-
|
|
- configure_file(output: 'capstone-defs.h', configuration: capstone_data)
|
|
-
|
|
- capstone_cargs = [
|
|
- # FIXME: There does not seem to be a way to completely replace the c_args
|
|
- # that come from add_project_arguments() -- we can only add to them.
|
|
- # So: disable all warnings with a big hammer.
|
|
- '-Wno-error', '-w',
|
|
-
|
|
- # Include all configuration defines via a header file, which will wind up
|
|
- # as a dependency on the object file, and thus changes here will result
|
|
- # in a rebuild.
|
|
- '-include', 'capstone-defs.h',
|
|
-
|
|
- '-Wp,-D_GLIBCXX_ASSERTIONS',
|
|
-
|
|
- ]
|
|
-
|
|
- libcapstone = static_library('capstone',
|
|
- build_by_default: false,
|
|
- sources: capstone_files,
|
|
- c_args: capstone_cargs,
|
|
- include_directories: 'capstone/include')
|
|
- capstone = declare_dependency(link_with: libcapstone,
|
|
- include_directories: 'capstone/include/capstone')
|
|
endif
|
|
|
|
slirp = not_found
|
|
@@ -4083,7 +3977,7 @@ summary_info += {'bzip2 support': libbzip2}
|
|
summary_info += {'lzfse support': liblzfse}
|
|
summary_info += {'zstd support': zstd}
|
|
summary_info += {'NUMA host support': numa}
|
|
-summary_info += {'capstone': capstone_opt == 'internal' ? capstone_opt : capstone}
|
|
+summary_info += {'capstone': capstone}
|
|
summary_info += {'libpmem support': libpmem}
|
|
summary_info += {'libdaxctl support': libdaxctl}
|
|
summary_info += {'libudev': libudev}
|
|
diff --git a/meson_options.txt b/meson_options.txt
|
|
index 7cd920fcd6..e58e158396 100644
|
|
--- a/meson_options.txt
|
|
+++ b/meson_options.txt
|
|
@@ -262,8 +262,7 @@ option('libvduse', type: 'feature', value: 'auto',
|
|
option('vduse_blk_export', type: 'feature', value: 'auto',
|
|
description: 'VDUSE block export support')
|
|
|
|
-option('capstone', type: 'combo', value: 'auto',
|
|
- choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
|
|
+option('capstone', type: 'feature', value: 'auto',
|
|
description: 'Whether and how to find the capstone library')
|
|
option('slirp', type: 'combo', value: 'auto',
|
|
choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
|
|
diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh
|
|
index b1001aa1db..359b04e0e6 100644
|
|
--- a/scripts/meson-buildoptions.sh
|
|
+++ b/scripts/meson-buildoptions.sh
|
|
@@ -16,9 +16,6 @@ meson_options_help() {
|
|
printf "%s\n" ' --enable-block-drv-whitelist-in-tools'
|
|
printf "%s\n" ' use block whitelist also in tools instead of only'
|
|
printf "%s\n" ' QEMU'
|
|
- printf "%s\n" ' --enable-capstone[=CHOICE]'
|
|
- printf "%s\n" ' Whether and how to find the capstone library'
|
|
- printf "%s\n" ' (choices: auto/disabled/enabled/internal/system)'
|
|
printf "%s\n" ' --enable-cfi Control-Flow Integrity (CFI)'
|
|
printf "%s\n" ' --enable-cfi-debug Verbose errors in case of CFI violation'
|
|
printf "%s\n" ' --enable-debug-mutex mutex debugging support'
|
|
@@ -78,6 +75,7 @@ meson_options_help() {
|
|
printf "%s\n" ' bzip2 bzip2 support for DMG images'
|
|
printf "%s\n" ' canokey CanoKey support'
|
|
printf "%s\n" ' cap-ng cap_ng support'
|
|
+ printf "%s\n" ' capstone Whether and how to find the capstone library'
|
|
printf "%s\n" ' cloop cloop image format support'
|
|
printf "%s\n" ' cocoa Cocoa user interface (macOS only)'
|
|
printf "%s\n" ' coreaudio CoreAudio sound support'
|
|
@@ -218,7 +216,6 @@ _meson_option_parse() {
|
|
--disable-cap-ng) printf "%s" -Dcap_ng=disabled ;;
|
|
--enable-capstone) printf "%s" -Dcapstone=enabled ;;
|
|
--disable-capstone) printf "%s" -Dcapstone=disabled ;;
|
|
- --enable-capstone=*) quote_sh "-Dcapstone=$2" ;;
|
|
--enable-cfi) printf "%s" -Dcfi=true ;;
|
|
--disable-cfi) printf "%s" -Dcfi=false ;;
|
|
--enable-cfi-debug) printf "%s" -Dcfi_debug=true ;;
|
|
--
|
|
2.31.1
|
|
|