[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 04/31] build-system: clean up TCG/TCI configury
From: |
Paolo Bonzini |
Subject: |
[PULL 04/31] build-system: clean up TCG/TCI configury |
Date: |
Sat, 23 Jan 2021 09:31:01 -0500 |
Make CONFIG_TCG_INTERPRETER a Meson option, and enable TCI (though with
a warning) if the host CPU is unsupported, making it more similar to
other --enable-* options.
Remove TCG-specific include paths from !CONFIG_TCG builds.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 11 +++--------
disas/meson.build | 2 --
meson.build | 46 +++++++++++++++++++++++++---------------------
meson_options.txt | 2 ++
4 files changed, 30 insertions(+), 31 deletions(-)
diff --git a/configure b/configure
index f16fa99060..a84df7c4ad 100755
--- a/configure
+++ b/configure
@@ -359,7 +359,7 @@ sanitizers="no"
tsan="no"
fortify_source="$default_feature"
strip_opt="yes"
-tcg_interpreter="no"
+tcg_interpreter="false"
bigendian="no"
mingw32="no"
gcov="no"
@@ -1119,9 +1119,9 @@ for opt do
;;
--enable-whpx) whpx="enabled"
;;
- --disable-tcg-interpreter) tcg_interpreter="no"
+ --disable-tcg-interpreter) tcg_interpreter="true"
;;
- --enable-tcg-interpreter) tcg_interpreter="yes"
+ --enable-tcg-interpreter) tcg_interpreter="false"
;;
--disable-cap-ng) cap_ng="disabled"
;;
@@ -5834,11 +5834,6 @@ fi
if test "$optreset" = "yes" ; then
echo "HAVE_OPTRESET=y" >> $config_host_mak
fi
-if test "$tcg" = "enabled"; then
- if test "$tcg_interpreter" = "yes" ; then
- echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
- fi
-fi
if test "$fdatasync" = "yes" ; then
echo "CONFIG_FDATASYNC=y" >> $config_host_mak
fi
diff --git a/disas/meson.build b/disas/meson.build
index 09a852742e..da341a511e 100644
--- a/disas/meson.build
+++ b/disas/meson.build
@@ -22,5 +22,3 @@ common_ss.add(when: 'CONFIG_SH4_DIS', if_true: files('sh4.c'))
common_ss.add(when: 'CONFIG_SPARC_DIS', if_true: files('sparc.c'))
common_ss.add(when: 'CONFIG_XTENSA_DIS', if_true: files('xtensa.c'))
common_ss.add(when: capstone, if_true: files('capstone.c'))
-
-specific_ss.add(when: 'CONFIG_TCG_INTERPRETER', if_true: files('tci.c'))
diff --git a/meson.build b/meson.build
index af2bc89741..2001e941f4 100644
--- a/meson.build
+++ b/meson.build
@@ -113,25 +113,8 @@ if targetos == 'linux'
language: ['c', 'cpp'])
endif
-if 'CONFIG_TCG_INTERPRETER' in config_host
- tcg_arch = 'tci'
-elif config_host['ARCH'] == 'sparc64'
- tcg_arch = 'sparc'
-elif config_host['ARCH'] == 's390x'
- tcg_arch = 's390'
-elif config_host['ARCH'] in ['x86_64', 'x32']
- tcg_arch = 'i386'
-elif config_host['ARCH'] == 'ppc64'
- tcg_arch = 'ppc'
-elif config_host['ARCH'] in ['riscv32', 'riscv64']
- tcg_arch = 'riscv'
-else
- tcg_arch = config_host['ARCH']
-endif
-add_project_arguments('-iquote', meson.current_source_dir() / 'tcg' / tcg_arch,
- '-iquote', '.',
+add_project_arguments('-iquote', '.',
'-iquote', meson.current_source_dir(),
- '-iquote', meson.current_source_dir() / 'accel/tcg',
'-iquote', meson.current_source_dir() / 'include',
'-iquote', meson.current_source_dir() / 'disas/libvixl',
language: ['c', 'cpp', 'objc'])
@@ -226,14 +209,33 @@ if not get_option('hax').disabled()
accelerators += 'CONFIG_HAX'
endif
endif
+
+tcg_arch = config_host['ARCH']
if not get_option('tcg').disabled()
if cpu not in supported_cpus
- if 'CONFIG_TCG_INTERPRETER' in config_host
+ if get_option('tcg_interpreter')
warning('Unsupported CPU @0@, will use TCG with TCI
(experimental)'.format(cpu))
else
error('Unsupported CPU @0@, try --enable-tcg-interpreter'.format(cpu))
endif
endif
+ if get_option('tcg_interpreter')
+ tcg_arch = 'tci'
+ elif config_host['ARCH'] == 'sparc64'
+ tcg_arch = 'sparc'
+ elif config_host['ARCH'] == 's390x'
+ tcg_arch = 's390'
+ elif config_host['ARCH'] in ['x86_64', 'x32']
+ tcg_arch = 'i386'
+ elif config_host['ARCH'] == 'ppc64'
+ tcg_arch = 'ppc'
+ elif config_host['ARCH'] in ['riscv32', 'riscv64']
+ tcg_arch = 'riscv'
+ endif
+ add_project_arguments('-iquote', meson.current_source_dir() / 'tcg' /
tcg_arch,
+ '-iquote', meson.current_source_dir() / 'accel/tcg',
+ language: ['c', 'cpp', 'objc'])
+
accelerators += 'CONFIG_TCG'
config_host += { 'CONFIG_TCG': 'y' }
endif
@@ -1234,7 +1236,9 @@ foreach target : target_dirs
if sym == 'CONFIG_TCG' or target in accelerator_targets.get(sym, [])
config_target += { sym: 'y' }
config_all += { sym: 'y' }
- if sym == 'CONFIG_XEN' and have_xen_pci_passthrough
+ if sym == 'CONFIG_TCG' and tcg_arch == 'tci'
+ config_target += { 'CONFIG_TCG_INTERPRETER': 'y' }
+ elif sym == 'CONFIG_XEN' and have_xen_pci_passthrough
config_target += { 'CONFIG_XEN_PCI_PASSTHROUGH': 'y' }
endif
accel_kconfig += [ sym + '=y' ]
@@ -2411,7 +2415,7 @@ summary_info += {'WHPX support':
config_all.has_key('CONFIG_WHPX')}
summary_info += {'TCG support': config_all.has_key('CONFIG_TCG')}
if config_all.has_key('CONFIG_TCG')
summary_info += {'TCG debug enabled':
config_host.has_key('CONFIG_DEBUG_TCG')}
- summary_info += {'TCG interpreter':
config_host.has_key('CONFIG_TCG_INTERPRETER')}
+ summary_info += {'TCG interpreter': tcg_arch == 'tci'}
endif
summary_info += {'malloc trim support': has_malloc_trim}
summary_info += {'RDMA support': config_host.has_key('CONFIG_RDMA')}
diff --git a/meson_options.txt b/meson_options.txt
index 72a3ca22d6..7dcd81c06a 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -37,6 +37,8 @@ option('xen_pci_passthrough', type: 'feature', value: 'auto',
description: 'Xen PCI passthrough support')
option('tcg', type: 'feature', value: 'auto',
description: 'TCG support')
+option('tcg_interpreter', type: 'boolean', value: false,
+ description: 'TCG bytecode interpreter (TCI)')
option('cfi', type: 'boolean', value: 'false',
description: 'Control-Flow Integrity (CFI)')
option('cfi_debug', type: 'boolean', value: 'false',
--
2.26.2
- [PULL 00/31] Misc patches for 2020-01-21, Paolo Bonzini, 2021/01/23
- [PULL 01/31] runstate: cleanup reboot and panic actions, Paolo Bonzini, 2021/01/23
- [PULL 02/31] configure: MinGW respect --bindir argument, Paolo Bonzini, 2021/01/23
- [PULL 08/31] build-sys: remove unused LIBS, Paolo Bonzini, 2021/01/23
- [PULL 13/31] nsis: adjust for new MinGW paths, Paolo Bonzini, 2021/01/23
- [PULL 05/31] util/cacheflush: Fix error generated by clang, Paolo Bonzini, 2021/01/23
- [PULL 14/31] meson: convert wixl detection to Meson, Paolo Bonzini, 2021/01/23
- [PULL 03/31] x86/cpu: Use max host physical address if -cpu max option is applied, Paolo Bonzini, 2021/01/23
- [PULL 07/31] ide: atapi: check logical block address and read size (CVE-2020-29443), Paolo Bonzini, 2021/01/23
- [PULL 10/31] build-sys: add libvhost-user missing dependencies, Paolo Bonzini, 2021/01/23
- [PULL 04/31] build-system: clean up TCG/TCI configury,
Paolo Bonzini <=
- [PULL 06/31] softmmu/physmem: Silence GCC 10 maybe-uninitialized error, Paolo Bonzini, 2021/01/23
- [PULL 12/31] meson: Declare have_virtfs_proxy_helper in main meson.build, Paolo Bonzini, 2021/01/23
- [PULL 15/31] meson: Summarize information related to directories first, Paolo Bonzini, 2021/01/23
- [PULL 16/31] meson: Display host binaries information altogether, Paolo Bonzini, 2021/01/23
- [PULL 17/31] meson: Summarize overall features altogether, Paolo Bonzini, 2021/01/23
- [PULL 19/31] meson: Display accelerators and selected targets altogether, Paolo Bonzini, 2021/01/23
- [PULL 09/31] build-sys: set global arguments for cflags/ldflags, Paolo Bonzini, 2021/01/23
- [PULL 18/31] meson: Summarize compilation-related information altogether, Paolo Bonzini, 2021/01/23
- [PULL 24/31] meson.build: Detect bzip2 program, Paolo Bonzini, 2021/01/23
- [PULL 22/31] meson: Add a section header for library dependencies, Paolo Bonzini, 2021/01/23