capstone: Remove the capstone submodule
Now that we allow compiling with Capstone v3.0.5 again, all our supported build hosts should provide at least this version of the disassembler library, so we do not need to ship this as a submodule anymore. Message-Id: <20220516145823.148450-4-thuth@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
43ecd16678
commit
83602083b4
@ -42,7 +42,7 @@ build-system-ubuntu:
|
||||
variables:
|
||||
IMAGE: ubuntu2004
|
||||
CONFIGURE_ARGS: --enable-docs --enable-fdt=system --enable-slirp=system
|
||||
--enable-capstone=system
|
||||
--enable-capstone
|
||||
TARGETS: aarch64-softmmu alpha-softmmu cris-softmmu hppa-softmmu
|
||||
microblazeel-softmmu mips64el-softmmu
|
||||
MAKE_CHECK_ARGS: check-build
|
||||
@ -119,7 +119,7 @@ build-system-fedora:
|
||||
variables:
|
||||
IMAGE: fedora
|
||||
CONFIGURE_ARGS: --disable-gcrypt --enable-nettle --enable-docs
|
||||
--enable-fdt=system --enable-slirp=system --enable-capstone=system
|
||||
--enable-fdt=system --enable-slirp=system --enable-capstone
|
||||
TARGETS: tricore-softmmu microblaze-softmmu mips-softmmu
|
||||
xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu
|
||||
MAKE_CHECK_ARGS: check-build
|
||||
|
@ -57,7 +57,7 @@ msys2-64bit:
|
||||
- $env:CHERE_INVOKING = 'yes' # Preserve the current working directory
|
||||
- $env:MSYSTEM = 'MINGW64' # Start a 64 bit Mingw environment
|
||||
- .\msys64\usr\bin\bash -lc './configure --target-list=x86_64-softmmu
|
||||
--enable-capstone=system --without-default-devices'
|
||||
--enable-capstone --without-default-devices'
|
||||
- .\msys64\usr\bin\bash -lc "sed -i '/^ROMS=/d' build/config-host.mak"
|
||||
- .\msys64\usr\bin\bash -lc 'make -j2'
|
||||
- .\msys64\usr\bin\bash -lc 'make check'
|
||||
@ -90,7 +90,6 @@ msys2-32bit:
|
||||
- $env:MSYSTEM = 'MINGW32' # Start a 32-bit MinG environment
|
||||
- mkdir output
|
||||
- cd output
|
||||
- ..\msys64\usr\bin\bash -lc "../configure --target-list=ppc64-softmmu
|
||||
--enable-capstone=system"
|
||||
- ..\msys64\usr\bin\bash -lc "../configure --target-list=ppc64-softmmu"
|
||||
- ..\msys64\usr\bin\bash -lc 'make -j2'
|
||||
- ..\msys64\usr\bin\bash -lc 'make check'
|
||||
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -31,9 +31,6 @@
|
||||
[submodule "ui/keycodemapdb"]
|
||||
path = ui/keycodemapdb
|
||||
url = https://gitlab.com/qemu-project/keycodemapdb.git
|
||||
[submodule "capstone"]
|
||||
path = capstone
|
||||
url = https://gitlab.com/qemu-project/capstone.git
|
||||
[submodule "roms/seabios-hppa"]
|
||||
path = roms/seabios-hppa
|
||||
url = https://gitlab.com/qemu-project/seabios-hppa.git
|
||||
|
1
capstone
1
capstone
@ -1 +0,0 @@
|
||||
Subproject commit f8b1b833015a4ae47110ed068e0deb7106ced66d
|
21
configure
vendored
21
configure
vendored
@ -307,10 +307,8 @@ skip_meson=no
|
||||
|
||||
# 1. Track which submodules are needed
|
||||
if test "$default_feature" = no ; then
|
||||
capstone="disabled"
|
||||
slirp="disabled"
|
||||
else
|
||||
capstone="auto"
|
||||
slirp="auto"
|
||||
fi
|
||||
fdt="auto"
|
||||
@ -869,14 +867,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=*)
|
||||
@ -1566,16 +1556,6 @@ case "$fdt" in
|
||||
;;
|
||||
esac
|
||||
|
||||
##########################################
|
||||
# capstone
|
||||
|
||||
case "$capstone" in
|
||||
auto | enabled | internal)
|
||||
# Simpler to always update submodule, even if not needed.
|
||||
git_submodules="${git_submodules} capstone"
|
||||
;;
|
||||
esac
|
||||
|
||||
##########################################
|
||||
# check and set a backend for coroutine
|
||||
|
||||
@ -2220,7 +2200,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"
|
||||
|
113
meson.build
113
meson.build
@ -2522,13 +2522,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
|
||||
@ -2537,110 +2534,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'
|
||||
]
|
||||
|
||||
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
|
||||
@ -3970,7 +3867,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}
|
||||
|
@ -252,8 +252,7 @@ option('virtfs', type: 'feature', value: 'auto',
|
||||
option('virtiofsd', type: 'feature', value: 'auto',
|
||||
description: 'build virtiofs daemon (virtiofsd)')
|
||||
|
||||
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'],
|
||||
|
@ -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'
|
||||
@ -77,6 +74,7 @@ meson_options_help() {
|
||||
printf "%s\n" ' brlapi brlapi character device driver'
|
||||
printf "%s\n" ' bzip2 bzip2 support for DMG images'
|
||||
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'
|
||||
@ -209,7 +207,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 ;;
|
||||
|
Loading…
Reference in New Issue
Block a user