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 <[email protected]> Reviewed-by: Philippe Mathieu-Daudé <[email protected]> Reviewed-by: Pierrick Bouvier <[email protected]> Signed-off-by: Richard Henderson <[email protected]> --- docs/about/deprecated.rst | 29 ----------------------------- docs/about/removed-features.rst | 6 ++++++ meson.build | 17 ++++------------- 3 files changed, 10 insertions(+), 42 deletions(-) diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 7abb3dab59..88efa3aa80 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -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 -------------------- diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst index e81d79da47..b0d7fa8813 100644 --- a/docs/about/removed-features.rst +++ b/docs/about/removed-features.rst @@ -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 ----------------------------------------- diff --git a/meson.build b/meson.build index 600c50007d..28f61be675 100644 --- a/meson.build +++ b/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') -- 2.43.0
