mirror of
https://github.com/qemu/qemu.git
synced 2026-09-22 14:34:34 +00:00
meson: Reject 32-bit hosts
32-bit hosts have been deprecated since 10.0. As the first step, disable any such at configuration time. Further patches will remove the dead code. Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
@@ -186,28 +186,6 @@ maintain our cross-compilation CI tests of the architecture. As we no longer
|
||||
have CI coverage support may bitrot away before the deprecation process
|
||||
completes.
|
||||
|
||||
System emulation on 32-bit x86 hosts (since 8.0)
|
||||
''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
Support for 32-bit x86 host deployments is increasingly uncommon in mainstream
|
||||
OS distributions given the widespread availability of 64-bit x86 hardware.
|
||||
The QEMU project no longer considers 32-bit x86 support for system emulation to
|
||||
be an effective use of its limited resources, and thus intends to discontinue
|
||||
it. Since all recent x86 hardware from the past >10 years is capable of the
|
||||
64-bit x86 extensions, a corresponding 64-bit OS should be used instead.
|
||||
|
||||
TCG Plugin support not enabled by default on 32-bit hosts (since 9.2)
|
||||
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
While it is still possible to enable TCG plugin support for 32-bit
|
||||
hosts there are a number of potential pitfalls when instrumenting
|
||||
64-bit guests. The plugin APIs typically pass most addresses as
|
||||
uint64_t but practices like encoding that address in a host pointer
|
||||
for passing as user-data will lose data. As most software analysis
|
||||
benefits from having plenty of host memory it seems reasonable to
|
||||
encourage users to use 64 bit builds of QEMU for analysis work
|
||||
whatever targets they are instrumenting.
|
||||
|
||||
TCG Plugin support not enabled by default with TCI (since 9.2)
|
||||
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
@@ -216,13 +194,6 @@ is going to be so much slower it wouldn't make sense for any serious
|
||||
instrumentation. Due to implementation differences there will also be
|
||||
anomalies in things like memory instrumentation.
|
||||
|
||||
32-bit host operating systems (since 10.0)
|
||||
''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
Keeping 32-bit host support alive is a substantial burden for the
|
||||
QEMU project. Thus QEMU will in future drop the support for all
|
||||
32-bit host systems.
|
||||
|
||||
System emulator CPUs
|
||||
--------------------
|
||||
|
||||
|
||||
@@ -572,6 +572,12 @@ like the ``akita`` or ``terrier``; it has been deprecated in the
|
||||
kernel since 2001. None of the board types QEMU supports need
|
||||
``param_struct`` support, so this option has been removed.
|
||||
|
||||
32-bit host operating systems (removed in 11.0)
|
||||
'''''''''''''''''''''''''''''''''''''''''''''''
|
||||
|
||||
Keeping 32-bit host support alive was a substantial burden for the
|
||||
QEMU project. Thus QEMU dropped all support for all 32-bit host systems.
|
||||
|
||||
|
||||
User-mode emulator command line arguments
|
||||
-----------------------------------------
|
||||
|
||||
17
meson.build
17
meson.build
@@ -332,6 +332,10 @@ endif
|
||||
# Compiler flags #
|
||||
##################
|
||||
|
||||
if cc.sizeof('void *') < 8
|
||||
error('QEMU requires a 64-bit CPU host architecture')
|
||||
endif
|
||||
|
||||
foreach lang : all_languages
|
||||
compiler = meson.get_compiler(lang)
|
||||
if compiler.get_id() == 'gcc' and compiler.version().version_compare('>=7.4')
|
||||
@@ -3247,9 +3251,6 @@ if host_os == 'windows'
|
||||
endif
|
||||
endif
|
||||
|
||||
# Detect host pointer size for the target configuration loop.
|
||||
host_long_bits = cc.sizeof('void *') * 8
|
||||
|
||||
# Detect if ConvertStringToBSTR has been defined in _com_util namespace
|
||||
if host_os == 'windows'
|
||||
has_convert_string_to_bstr = cxx.links('''
|
||||
@@ -3360,10 +3361,6 @@ foreach target : target_dirs
|
||||
|
||||
target_kconfig = []
|
||||
foreach sym: accelerators
|
||||
# Disallow 64-bit on 32-bit emulation and virtualization
|
||||
if host_long_bits < config_target['TARGET_LONG_BITS'].to_int()
|
||||
continue
|
||||
endif
|
||||
if sym == 'CONFIG_TCG' or target in accelerator_targets.get(sym, [])
|
||||
config_target += { sym: 'y' }
|
||||
config_all_accel += { sym: 'y' }
|
||||
@@ -5036,12 +5033,6 @@ if host_arch == 'unknown'
|
||||
message('configure has succeeded and you can continue to build, but')
|
||||
message('QEMU will use a slow interpreter to emulate the target CPU.')
|
||||
endif
|
||||
elif host_long_bits < 64
|
||||
message()
|
||||
warning('DEPRECATED HOST CPU')
|
||||
message()
|
||||
message('Support for 32-bit CPU host architecture ' + cpu + ' is going')
|
||||
message('to be dropped in a future QEMU release.')
|
||||
elif host_arch == 'mips'
|
||||
message()
|
||||
warning('DEPRECATED HOST CPU')
|
||||
|
||||
Reference in New Issue
Block a user