meson: Disallow 64-bit on 32-bit emulation
Subsystems (2)
The following changes since commit 04d3d0e9f54d4c42759f3810aa135ce314d98dc4:
Merge tag 'hppa-system-for-v10-diva-artist-pull-request' of https://github.com/hdeller/qemu-hppa into staging (2025-02-08 09:00:57 -0500)
are available in the Git repository at:
https://gitlab.com/rth7680/qemu.git tags/pull-tcg-20250208
for you to fetch changes up to 6d701c9bac1d3571e9ad511e01b27df7237f0b13:
meson: Deprecate 32-bit host support (2025-02-08 12:41:40 -0800)
----------------------------------------------------------------
meson: Disallow 64-bit on 32-bit emulation
----------------------------------------------------------------
Richard Henderson (9):
meson: Drop tcg as a module
meson: Disallow 64-bit on 32-bit KVM emulation
meson: Disallow 64-bit on 32-bit Xen emulation
meson: Disallow 64-bit on 32-bit HVF/NVMM/WHPX emulation
gitlab-ci: Replace aarch64 with arm in cross-i686-tci build
configure: Define TARGET_LONG_BITS in configs/targets/*.mak target/*: Remove TARGET_LONG_BITS from cpu-param.h
meson: Disallow 64-bit on 32-bit emulation
meson: Deprecate 32-bit host support
target/alpha/cpu-param.h | 2 - target/arm/cpu-param.h | 2 - target/avr/cpu-param.h | 1 - target/hexagon/cpu-param.h | 1 - target/hppa/cpu-param.h | 2 - target/i386/cpu-param.h | 2 - target/loongarch/cpu-param.h | 1 - target/m68k/cpu-param.h | 1 - target/microblaze/cpu-param.h | 2 - target/mips/cpu-param.h | 5 -- target/openrisc/cpu-param.h | 1 - target/ppc/cpu-param.h | 2 - target/riscv/cpu-param.h | 2 - target/rx/cpu-param.h | 1 - target/s390x/cpu-param.h | 1 - target/sh4/cpu-param.h | 1 - target/sparc/cpu-param.h | 2 - target/tricore/cpu-param.h | 1 - target/xtensa/cpu-param.h | 1 - .gitlab-ci.d/crossbuilds.yml | 2 +- accel/tcg/meson.build | 11 ++--- configs/targets/aarch64-bsd-user.mak | 1 + configs/targets/aarch64-linux-user.mak | 1 + configs/targets/aarch64-softmmu.mak | 1 + configs/targets/aarch64_be-linux-user.mak | 1 + configs/targets/alpha-linux-user.mak | 1 + configs/targets/alpha-softmmu.mak | 1 + configs/targets/arm-bsd-user.mak | 1 + configs/targets/arm-linux-user.mak | 1 + configs/targets/arm-softmmu.mak | 1 + configs/targets/armeb-linux-user.mak | 1 + configs/targets/avr-softmmu.mak | 1 + configs/targets/hexagon-linux-user.mak | 1 + configs/targets/hppa-linux-user.mak | 2 + configs/targets/hppa-softmmu.mak | 1 + configs/targets/i386-bsd-user.mak | 1 + configs/targets/i386-linux-user.mak | 1 + configs/targets/i386-softmmu.mak | 1 + configs/targets/loongarch64-linux-user.mak | 1 + configs/targets/loongarch64-softmmu.mak | 1 + configs/targets/m68k-linux-user.mak | 1 + configs/targets/m68k-softmmu.mak | 1 + configs/targets/microblaze-linux-user.mak | 1 + configs/targets/microblaze-softmmu.mak | 3 ++ configs/targets/microblazeel-linux-user.mak | 1 + configs/targets/microblazeel-softmmu.mak | 3 ++ configs/targets/mips-linux-user.mak | 1 + configs/targets/mips-softmmu.mak | 1 + configs/targets/mips64-linux-user.mak | 1 + configs/targets/mips64-softmmu.mak | 1 + configs/targets/mips64el-linux-user.mak | 1 + configs/targets/mips64el-softmmu.mak | 1 + configs/targets/mipsel-linux-user.mak | 1 + configs/targets/mipsel-softmmu.mak | 1 + configs/targets/mipsn32-linux-user.mak | 1 + configs/targets/mipsn32el-linux-user.mak | 1 + configs/targets/or1k-linux-user.mak | 1 + configs/targets/or1k-softmmu.mak | 1 + configs/targets/ppc-linux-user.mak | 1 + configs/targets/ppc-softmmu.mak | 1 + configs/targets/ppc64-linux-user.mak | 1 + configs/targets/ppc64-softmmu.mak | 1 + configs/targets/ppc64le-linux-user.mak | 1 + configs/targets/riscv32-linux-user.mak | 1 + configs/targets/riscv32-softmmu.mak | 1 + configs/targets/riscv64-bsd-user.mak | 1 + configs/targets/riscv64-linux-user.mak | 1 + configs/targets/riscv64-softmmu.mak | 1 + configs/targets/rx-softmmu.mak | 1 + configs/targets/s390x-linux-user.mak | 1 + configs/targets/s390x-softmmu.mak | 1 + configs/targets/sh4-linux-user.mak | 1 + configs/targets/sh4-softmmu.mak | 1 + configs/targets/sh4eb-linux-user.mak | 1 + configs/targets/sh4eb-softmmu.mak | 1 + configs/targets/sparc-linux-user.mak | 1 + configs/targets/sparc-softmmu.mak | 1 + configs/targets/sparc32plus-linux-user.mak | 1 + configs/targets/sparc64-linux-user.mak | 1 + configs/targets/sparc64-softmmu.mak | 1 + configs/targets/tricore-softmmu.mak | 1 + configs/targets/x86_64-bsd-user.mak | 1 + configs/targets/x86_64-linux-user.mak | 1 + configs/targets/x86_64-softmmu.mak | 1 + configs/targets/xtensa-linux-user.mak | 1 + configs/targets/xtensa-softmmu.mak | 1 + configs/targets/xtensaeb-linux-user.mak | 1 + configs/targets/xtensaeb-softmmu.mak | 1 + docs/about/deprecated.rst | 7 +++ meson.build | 72 ++++++++++++++--------------- 90 files changed, 119 insertions(+), 76 deletions(-)
[PULL 1/9] meson: Drop tcg as a module
This reverts commit dae0ec159f9 ("accel: build tcg modular"). The attempt was only enabled for x86, only modularized a small portion of tcg, and in more than 3 years there have been no follow-ups to improve the situation.
--- accel/tcg/meson.build | 11 ++++------- meson.build | 18 +----------------- 2 files changed, 5 insertions(+), 24 deletions(-)
accel/tcg/meson.build +4 -7
@@ -21,16 +21,13 @@ specific_ss.add_all(when: 'CONFIG_TCG', if_true: tcg_specific_ss) specific_ss.add(when: ['CONFIG_SYSTEM_ONLY', 'CONFIG_TCG'], if_true: files( 'cputlb.c', 'watchpoint.c', + 'tcg-accel-ops.c', + 'tcg-accel-ops-mttcg.c', + 'tcg-accel-ops-icount.c', + 'tcg-accel-ops-rr.c', )) system_ss.add(when: ['CONFIG_TCG'], if_true: files( 'icount-common.c', 'monitor.c', )) - -tcg_module_ss.add(when: ['CONFIG_SYSTEM_ONLY', 'CONFIG_TCG'], if_true: files( - 'tcg-accel-ops.c', - 'tcg-accel-ops-mttcg.c', - 'tcg-accel-ops-icount.c', - 'tcg-accel-ops-rr.c', -))
meson.build +1 -17
@@ -322,12 +322,6 @@ if cpu in ['x86', 'x86_64'] } endif -modular_tcg = [] -# Darwin does not support references to thread-local variables in modules -if host_os != 'darwin' - modular_tcg = ['i386-softmmu', 'x86_64-softmmu'] -endif - ################## # Compiler flags # ##################
@@ -3279,11 +3273,6 @@ foreach target : target_dirs if sym == 'CONFIG_TCG' or target in accelerator_targets.get(sym, []) config_target += { sym: 'y' } config_all_accel += { sym: 'y' } - if target in modular_tcg - config_target += { 'CONFIG_TCG_MODULAR': 'y' } - else - config_target += { 'CONFIG_TCG_BUILTIN': 'y' } - endif target_kconfig += [ sym + '=y' ] endif endforeach
@@ -3642,7 +3631,6 @@ util_ss = ss.source_set() # accel modules qtest_module_ss = ss.source_set() -tcg_module_ss = ss.source_set() modules = {} target_modules = {}
@@ -3803,11 +3791,7 @@ subdir('tests/qtest/libqos') subdir('tests/qtest/fuzz') # accel modules -tcg_real_module_ss = ss.source_set() -tcg_real_module_ss.add_all(when: 'CONFIG_TCG_MODULAR', if_true: tcg_module_ss) -specific_ss.add_all(when: 'CONFIG_TCG_BUILTIN', if_true: tcg_module_ss) -target_modules += { 'accel' : { 'qtest': qtest_module_ss, - 'tcg': tcg_real_module_ss }} +target_modules += { 'accel' : { 'qtest': qtest_module_ss }} ############################################## # Internal static_libraries and dependencies #
Signature · 1 line
2.43.0
[PULL 4/9] meson: Disallow 64-bit on 32-bit HVF/NVMM/WHPX emulation
In reply to Richard HendersonRequire a 64-bit host binary to spawn a 64-bit guest.
For HVF this is trivially true because macOS 11 dropped support for 32-bit applications entirely.
For NVMM, NetBSD only enables nvmm on x86_64:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/nvmm/Makefile?rev=1.1.6.2;content-type=text%2Fplain
For WHPX, we have already dropped support for 32-bit Windows.
--- meson.build | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
meson.build +2 -4
@@ -319,13 +319,11 @@ else endif accelerator_targets += { 'CONFIG_XEN': xen_targets } -if cpu in ['aarch64'] +if cpu == 'aarch64' accelerator_targets += { 'CONFIG_HVF': ['aarch64-softmmu'] } -endif - -if cpu in ['x86', 'x86_64'] +elif cpu == 'x86_64' accelerator_targets += { 'CONFIG_HVF': ['x86_64-softmmu'], 'CONFIG_NVMM': ['i386-softmmu', 'x86_64-softmmu'],
Signature · 1 line
2.43.0
For system mode, we can rarely support the amount of RAM that the guest requires. TCG emulation is restricted to round-robin mode, which solves many of the atomicity issues, but not those associated with virtio. In any case, round-robin does nothing to help the speed of emulation.
For user mode, most emulation does not succeed at all. Most of the time we cannot even load 64-bit non-PIE binaries due to lack of a 64-bit address space. Threads are run in parallel, not round-robin, which means that atomicity is not handled.
--- meson.build | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
meson.build +10 -3
@@ -3185,6 +3185,9 @@ if host_os == 'windows' endif endif +# Detect host pointer size for the target configuration loop. +host_long_bits = cc.sizeof('void *') * 8 + ######################## # Target configuration # ########################
@@ -3277,8 +3280,14 @@ foreach target : target_dirs } endif + config_target += keyval.load('configs/targets' / target + '.mak') + 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' }
@@ -3292,9 +3301,6 @@ foreach target : target_dirs error('No accelerator available for target @0@'.format(target)) endif - config_target += keyval.load('configs/targets' / target + '.mak') - config_target += { 'TARGET_' + config_target['TARGET_ARCH'].to_upper(): 'y' } - if 'TARGET_NEED_FDT' in config_target and not fdt.found() if default_targets warning('Disabling ' + target + ' due to missing libfdt')
@@ -3307,6 +3313,7 @@ foreach target : target_dirs actual_target_dirs += target # Add default keys + config_target += { 'TARGET_' + config_target['TARGET_ARCH'].to_upper(): 'y' } if 'TARGET_BASE_ARCH' not in config_target config_target += {'TARGET_BASE_ARCH': config_target['TARGET_ARCH']} endif
Signature · 1 line
2.43.0
Quoted 12 lines · Richard Henderson
For system mode, we can rarely support the amount of RAM that the guest requires. TCG emulation is restricted to round-robin mode, which solves many of the atomicity issues, but not those associated with virtio. In any case, round-robin does nothing to help the speed of emulation.
For user mode, most emulation does not succeed at all. Most of the time we cannot even load 64-bit non-PIE binaries due to lack of a 64-bit address space. Threads are run in parallel, not round-robin, which means that atomicity is not handled.
Quoted 6 lines
Reviewed-by Thomas Huth <[email protected]>Reviewed-by Philippe Mathieu-Daudé <[email protected]>Signed-off-by Richard Henderson <[email protected]>--- meson.build | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
Shouldn't this patch and the earlier ones in this series have added something to removed-features.rst, as this is a significant feature removal which is impacting downstream users, and distros in particular.
Quoted 52 lines
meson.build +10
-3@@ -3185,6 +3185,9 @@ if host_os == 'windows' endif endif +# Detect host pointer size for the target configuration loop. +host_long_bits = cc.sizeof('void *') * 8 + ######################## # Target configuration # ########################@@ -3277,8 +3280,14 @@ foreach target : target_dirs } endif + config_target += keyval.load('configs/targets' / target + '.mak') + 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' }@@ -3292,9 +3301,6 @@ foreach target : target_dirs error('No accelerator available for target @0@'.format(target)) endif - config_target += keyval.load('configs/targets' / target + '.mak') - config_target += { 'TARGET_' + config_target['TARGET_ARCH'].to_upper(): 'y' } - if 'TARGET_NEED_FDT' in config_target and not fdt.found() if default_targets warning('Disabling ' + target + ' due to missing libfdt')@@ -3307,6 +3313,7 @@ foreach target : target_dirs actual_target_dirs += target # Add default keys + config_target += { 'TARGET_' + config_target['TARGET_ARCH'].to_upper(): 'y' } if 'TARGET_BASE_ARCH' not in config_target config_target += {'TARGET_BASE_ARCH': config_target['TARGET_ARCH']} endifSignature · 1 line
2.43.0
With regards,
Daniel
Signature · 3 lines
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
Quoted 20 lines · Daniel P. Berrangé
Quoted 12 lines · Richard Henderson
For system mode, we can rarely support the amount of RAM that the guest requires. TCG emulation is restricted to round-robin mode, which solves many of the atomicity issues, but not those associated with virtio. In any case, round-robin does nothing to help the speed of emulation.
For user mode, most emulation does not succeed at all. Most of the time we cannot even load 64-bit non-PIE binaries due to lack of a 64-bit address space. Threads are run in parallel, not round-robin, which means that atomicity is not handled.
Quoted 6 lines
Reviewed-by Thomas Huth <[email protected]>Reviewed-by Philippe Mathieu-Daudé <[email protected]>Signed-off-by Richard Henderson <[email protected]>--- meson.build | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
Quoted 4 lines
Shouldn't this patch and the earlier ones in this series have added something to
removed-features.rst, as this is a significant feature removal which is impacting downstream users, and distros in particular.
IIRC the rationale for not deprecating was the feature is largely broken already. Skipping the deprecation process we indeed forgot to document in removed-features.rst.
Do you expect the doc update for the 10.0 release?
Quoted 26 lines · Philippe Mathieu-Daudé
Quoted 20 lines · Daniel P. Berrangé
Quoted 12 lines · Richard Henderson
For system mode, we can rarely support the amount of RAM that the guest requires. TCG emulation is restricted to round-robin mode, which solves many of the atomicity issues, but not those associated with virtio. In any case, round-robin does nothing to help the speed of emulation.
For user mode, most emulation does not succeed at all. Most of the time we cannot even load 64-bit non-PIE binaries due to lack of a 64-bit address space. Threads are run in parallel, not round-robin, which means that atomicity is not handled.
Quoted 6 lines
Reviewed-by Thomas Huth <[email protected]>Reviewed-by Philippe Mathieu-Daudé <[email protected]>Signed-off-by Richard Henderson <[email protected]>--- meson.build | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)Quoted 4 lines
Shouldn't this patch and the earlier ones in this series have added something to
removed-features.rst, as this is a significant feature removal which is impacting downstream users, and distros in particular.
Quoted 5 lines
IIRC the rationale for not deprecating was the feature is largely broken already. Skipping the deprecation process we indeed forgot to document in
removed-features.rst.Do you expect the doc update for the 10.0 release?
The issue is that
https://wiki.qemu.org/ChangeLog/10.0
delegates to removed-features.rst, so if we don't have time to update the rst file, then we at least need to edit ChangeLog/10.0 to mention this removal of binaries as a fallback
With regards,
Daniel
Signature · 3 lines
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
Quoted 34 lines · Daniel P. Berrangé
Quoted 26 lines · Philippe Mathieu-Daudé
Quoted 20 lines · Daniel P. Berrangé
Quoted 12 lines · Richard Henderson
For system mode, we can rarely support the amount of RAM that the guest requires. TCG emulation is restricted to round-robin mode, which solves many of the atomicity issues, but not those associated with virtio. In any case, round-robin does nothing to help the speed of emulation.
For user mode, most emulation does not succeed at all. Most of the time we cannot even load 64-bit non-PIE binaries due to lack of a 64-bit address space. Threads are run in parallel, not round-robin, which means that atomicity is not handled.
Quoted 6 lines
Reviewed-by Thomas Huth <[email protected]>Reviewed-by Philippe Mathieu-Daudé <[email protected]>Signed-off-by Richard Henderson <[email protected]>--- meson.build | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)Quoted 4 lines
Shouldn't this patch and the earlier ones in this series have added something to
removed-features.rst, as this is a significant feature removal which is impacting downstream users, and distros in particular.Quoted 5 lines
IIRC the rationale for not deprecating was the feature is largely broken already. Skipping the deprecation process we indeed forgot to document in
removed-features.rst.Do you expect the doc update for the 10.0 release?
Quoted 7 lines
The issue is that
https://wiki.qemu.org/ChangeLog/10.0
delegates to
removed-features.rst, so if we don't have time to update the rst file, then we at least need to edit ChangeLog/10.0 to mention this removal of binaries as a fallback
-rc4 will be tagged on Tuesday. There is still time to add something to removed-features.rst.
Please make sure to CC me and put "for-10.0" in the patch prefix if it's not part of a pull request.
Stefan
Quoted 10 lines
With regards,
Daniel
--|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
[PULL 5/9] gitlab-ci: Replace aarch64 with arm in cross-i686-tci build
In reply to Richard HendersonConfiguration of 64-bit host on 32-bit guest will shortly be denied. Use a 32-bit guest instead.
--- .gitlab-ci.d/crossbuilds.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
.gitlab-ci.d/crossbuilds.yml +1 -1
@@ -61,7 +61,7 @@ cross-i686-tci: variables: IMAGE: debian-i686-cross ACCEL: tcg-interpreter - EXTRA_CONFIGURE_OPTS: --target-list=i386-softmmu,i386-linux-user,aarch64-softmmu,aarch64-linux-user,ppc-softmmu,ppc-linux-user --disable-plugins --disable-kvm + EXTRA_CONFIGURE_OPTS: --target-list=i386-softmmu,i386-linux-user,arm-softmmu,arm-linux-user,ppc-softmmu,ppc-linux-user --disable-plugins --disable-kvm # Force tests to run with reduced parallelism, to see whether this # reduces the flakiness of this CI job. The CI # environment by default shows us 8 CPUs and so we
Signature · 1 line
2.43.0
[PULL 6/9] configure: Define TARGET_LONG_BITS in configs/targets/*.mak
In reply to Richard HendersonDefine TARGET_LONG_BITS in each target's configure fragment. Do this without removing the define in target/*/cpu-param.h so that errors are caught like so:
In file included from .../src/include/exec/cpu-defs.h:26,
from ../src/target/hppa/cpu.h:24,
from ../src/linux-user/qemu.h:4,
from ../src/linux-user/hppa/cpu_loop.c:21:
../src/target/hppa/cpu-param.h:11: error: "TARGET_LONG_BITS" redefined [-Werror]
11 | #define TARGET_LONG_BITS 64
|
In file included from .../src/include/qemu/osdep.h:36,
from ../src/linux-user/hppa/cpu_loop.c:20:
./hppa-linux-user-config-target.h:32: note: this is the location of the previous definition
32 | #define TARGET_LONG_BITS 32
|cc1: all warnings being treated as errors
--- configs/targets/aarch64-bsd-user.mak | 1 + configs/targets/aarch64-linux-user.mak | 1 + configs/targets/aarch64-softmmu.mak | 1 + configs/targets/aarch64_be-linux-user.mak | 1 + configs/targets/alpha-linux-user.mak | 1 + configs/targets/alpha-softmmu.mak | 1 + configs/targets/arm-bsd-user.mak | 1 + configs/targets/arm-linux-user.mak | 1 + configs/targets/arm-softmmu.mak | 1 + configs/targets/armeb-linux-user.mak | 1 + configs/targets/avr-softmmu.mak | 1 + configs/targets/hexagon-linux-user.mak | 1 + configs/targets/hppa-linux-user.mak | 2 ++ configs/targets/hppa-softmmu.mak | 1 + configs/targets/i386-bsd-user.mak | 1 + configs/targets/i386-linux-user.mak | 1 + configs/targets/i386-softmmu.mak | 1 + configs/targets/loongarch64-linux-user.mak | 1 + configs/targets/loongarch64-softmmu.mak | 1 + configs/targets/m68k-linux-user.mak | 1 + configs/targets/m68k-softmmu.mak | 1 + configs/targets/microblaze-linux-user.mak | 1 + configs/targets/microblaze-softmmu.mak | 3 +++ configs/targets/microblazeel-linux-user.mak | 1 + configs/targets/microblazeel-softmmu.mak | 3 +++ configs/targets/mips-linux-user.mak | 1 + configs/targets/mips-softmmu.mak | 1 + configs/targets/mips64-linux-user.mak | 1 + configs/targets/mips64-softmmu.mak | 1 + configs/targets/mips64el-linux-user.mak | 1 + configs/targets/mips64el-softmmu.mak | 1 + configs/targets/mipsel-linux-user.mak | 1 + configs/targets/mipsel-softmmu.mak | 1 + configs/targets/mipsn32-linux-user.mak | 1 + configs/targets/mipsn32el-linux-user.mak | 1 + configs/targets/or1k-linux-user.mak | 1 + configs/targets/or1k-softmmu.mak | 1 + configs/targets/ppc-linux-user.mak | 1 + configs/targets/ppc-softmmu.mak | 1 + configs/targets/ppc64-linux-user.mak | 1 + configs/targets/ppc64-softmmu.mak | 1 + configs/targets/ppc64le-linux-user.mak | 1 + configs/targets/riscv32-linux-user.mak | 1 + configs/targets/riscv32-softmmu.mak | 1 + configs/targets/riscv64-bsd-user.mak | 1 + configs/targets/riscv64-linux-user.mak | 1 + configs/targets/riscv64-softmmu.mak | 1 + configs/targets/rx-softmmu.mak | 1 + configs/targets/s390x-linux-user.mak | 1 + configs/targets/s390x-softmmu.mak | 1 + configs/targets/sh4-linux-user.mak | 1 + configs/targets/sh4-softmmu.mak | 1 + configs/targets/sh4eb-linux-user.mak | 1 + configs/targets/sh4eb-softmmu.mak | 1 + configs/targets/sparc-linux-user.mak | 1 + configs/targets/sparc-softmmu.mak | 1 + configs/targets/sparc32plus-linux-user.mak | 1 + configs/targets/sparc64-linux-user.mak | 1 + configs/targets/sparc64-softmmu.mak | 1 + configs/targets/tricore-softmmu.mak | 1 + configs/targets/x86_64-bsd-user.mak | 1 + configs/targets/x86_64-linux-user.mak | 1 + configs/targets/x86_64-softmmu.mak | 1 + configs/targets/xtensa-linux-user.mak | 1 + configs/targets/xtensa-softmmu.mak | 1 + configs/targets/xtensaeb-linux-user.mak | 1 + configs/targets/xtensaeb-softmmu.mak | 1 + 67 files changed, 72 insertions(+)
configs/targets/aarch64-bsd-user.mak +1 -0
@@ -1,3 +1,4 @@ TARGET_ARCH=aarch64 TARGET_BASE_ARCH=arm TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-xml/aarch64-pauth.xml +TARGET_LONG_BITS=64
configs/targets/aarch64-linux-user.mak +1 -0
@@ -6,3 +6,4 @@ CONFIG_SEMIHOSTING=y CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y TARGET_SYSTBL_ABI=common,64,renameat,rlimit,memfd_secret TARGET_SYSTBL=syscall_64.tbl +TARGET_LONG_BITS=64
configs/targets/aarch64-softmmu.mak +1 -0
@@ -5,3 +5,4 @@ TARGET_KVM_HAVE_GUEST_DEBUG=y TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml gdb-xml/aarch64-pauth.xml # needed by boot.c TARGET_NEED_FDT=y +TARGET_LONG_BITS=64
configs/targets/aarch64_be-linux-user.mak +1 -0
@@ -7,3 +7,4 @@ CONFIG_SEMIHOSTING=y CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y TARGET_SYSTBL_ABI=common,64,renameat,rlimit,memfd_secret TARGET_SYSTBL=syscall_64.tbl +TARGET_LONG_BITS=64
configs/targets/alpha-linux-user.mak +1 -0
@@ -1,3 +1,4 @@ TARGET_ARCH=alpha TARGET_SYSTBL_ABI=common TARGET_SYSTBL=syscall.tbl +TARGET_LONG_BITS=64
configs/targets/alpha-softmmu.mak +1 -0
@@ -1,2 +1,3 @@ TARGET_ARCH=alpha TARGET_SUPPORTS_MTTCG=y +TARGET_LONG_BITS=64
configs/targets/arm-bsd-user.mak +1 -0
@@ -1,2 +1,3 @@ TARGET_ARCH=arm TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml +TARGET_LONG_BITS=32
configs/targets/arm-linux-user.mak +1 -0
@@ -5,3 +5,4 @@ TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml TARGET_HAS_BFLT=y CONFIG_SEMIHOSTING=y CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y +TARGET_LONG_BITS=32
configs/targets/arm-softmmu.mak +1 -0
@@ -3,3 +3,4 @@ TARGET_SUPPORTS_MTTCG=y TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml # needed by boot.c TARGET_NEED_FDT=y +TARGET_LONG_BITS=32
configs/targets/armeb-linux-user.mak +1 -0
@@ -6,3 +6,4 @@ TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml TARGET_HAS_BFLT=y CONFIG_SEMIHOSTING=y CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y +TARGET_LONG_BITS=32
configs/targets/avr-softmmu.mak +1 -0
@@ -1,2 +1,3 @@ TARGET_ARCH=avr TARGET_XML_FILES= gdb-xml/avr-cpu.xml +TARGET_LONG_BITS=32
configs/targets/hexagon-linux-user.mak +1 -0
@@ -2,3 +2,4 @@ TARGET_ARCH=hexagon TARGET_XML_FILES=gdb-xml/hexagon-core.xml gdb-xml/hexagon-hvx.xml TARGET_SYSTBL=syscall.tbl TARGET_SYSTBL_ABI=common,32,hexagon,time32,stat64,rlimit,renameat +TARGET_LONG_BITS=32
configs/targets/hppa-linux-user.mak +2 -0
@@ -3,3 +3,5 @@ TARGET_ABI32=y TARGET_SYSTBL_ABI=common,32 TARGET_SYSTBL=syscall.tbl TARGET_BIG_ENDIAN=y +# Compromise to ease maintenance vs system mode +TARGET_LONG_BITS=64
configs/targets/hppa-softmmu.mak +1 -0
@@ -1,3 +1,4 @@ TARGET_ARCH=hppa TARGET_BIG_ENDIAN=y TARGET_SUPPORTS_MTTCG=y +TARGET_LONG_BITS=64
configs/targets/i386-bsd-user.mak +1 -0
@@ -1,2 +1,3 @@ TARGET_ARCH=i386 TARGET_XML_FILES= gdb-xml/i386-32bit.xml +TARGET_LONG_BITS=32
configs/targets/i386-linux-user.mak +1 -0
@@ -2,3 +2,4 @@ TARGET_ARCH=i386 TARGET_SYSTBL_ABI=i386 TARGET_SYSTBL=syscall_32.tbl TARGET_XML_FILES= gdb-xml/i386-32bit.xml gdb-xml/i386-32bit-linux.xml +TARGET_LONG_BITS=32
configs/targets/i386-softmmu.mak +1 -0
@@ -3,3 +3,4 @@ TARGET_SUPPORTS_MTTCG=y TARGET_KVM_HAVE_GUEST_DEBUG=y TARGET_KVM_HAVE_RESET_PARKED_VCPU=y TARGET_XML_FILES= gdb-xml/i386-32bit.xml +TARGET_LONG_BITS=32
configs/targets/loongarch64-linux-user.mak +1 -0
@@ -4,3 +4,4 @@ TARGET_BASE_ARCH=loongarch TARGET_XML_FILES=gdb-xml/loongarch-base64.xml gdb-xml/loongarch-fpu.xml gdb-xml/loongarch-lsx.xml gdb-xml/loongarch-lasx.xml TARGET_SYSTBL=syscall.tbl TARGET_SYSTBL_ABI=common,64 +TARGET_LONG_BITS=64
configs/targets/loongarch64-softmmu.mak +1 -0
@@ -5,3 +5,4 @@ TARGET_SUPPORTS_MTTCG=y TARGET_XML_FILES= gdb-xml/loongarch-base32.xml gdb-xml/loongarch-base64.xml gdb-xml/loongarch-fpu.xml gdb-xml/loongarch-lsx.xml gdb-xml/loongarch-lasx.xml # all boards require libfdt TARGET_NEED_FDT=y +TARGET_LONG_BITS=64
configs/targets/m68k-linux-user.mak +1 -0
@@ -4,3 +4,4 @@ TARGET_SYSTBL=syscall.tbl TARGET_BIG_ENDIAN=y TARGET_XML_FILES= gdb-xml/cf-core.xml gdb-xml/cf-fp.xml gdb-xml/m68k-core.xml gdb-xml/m68k-fp.xml TARGET_HAS_BFLT=y +TARGET_LONG_BITS=32
configs/targets/m68k-softmmu.mak +1 -0
@@ -1,3 +1,4 @@ TARGET_ARCH=m68k TARGET_BIG_ENDIAN=y TARGET_XML_FILES= gdb-xml/cf-core.xml gdb-xml/cf-fp.xml gdb-xml/m68k-core.xml gdb-xml/m68k-fp.xml +TARGET_LONG_BITS=32
configs/targets/microblaze-linux-user.mak +1 -0
@@ -4,3 +4,4 @@ TARGET_SYSTBL=syscall.tbl TARGET_BIG_ENDIAN=y TARGET_HAS_BFLT=y TARGET_XML_FILES=gdb-xml/microblaze-core.xml gdb-xml/microblaze-stack-protect.xml +TARGET_LONG_BITS=32
configs/targets/microblaze-softmmu.mak +3 -0
@@ -4,3 +4,6 @@ TARGET_SUPPORTS_MTTCG=y # needed by boot.c TARGET_NEED_FDT=y TARGET_XML_FILES=gdb-xml/microblaze-core.xml gdb-xml/microblaze-stack-protect.xml +# System mode can address up to 64 bits via lea/sea instructions. +# TODO: These bypass the mmu, so we could emulate these differently. +TARGET_LONG_BITS=64
configs/targets/microblazeel-linux-user.mak +1 -0
@@ -3,3 +3,4 @@ TARGET_SYSTBL_ABI=common TARGET_SYSTBL=syscall.tbl TARGET_HAS_BFLT=y TARGET_XML_FILES=gdb-xml/microblaze-core.xml gdb-xml/microblaze-stack-protect.xml +TARGET_LONG_BITS=32
configs/targets/microblazeel-softmmu.mak +3 -0
@@ -3,3 +3,6 @@ TARGET_SUPPORTS_MTTCG=y # needed by boot.c TARGET_NEED_FDT=y TARGET_XML_FILES=gdb-xml/microblaze-core.xml gdb-xml/microblaze-stack-protect.xml +# System mode can address up to 64 bits via lea/sea instructions. +# TODO: These bypass the mmu, so we could emulate these differently. +TARGET_LONG_BITS=64
configs/targets/mips-linux-user.mak +1 -0
@@ -3,3 +3,4 @@ TARGET_ABI_MIPSO32=y TARGET_SYSTBL_ABI=o32 TARGET_SYSTBL=syscall_o32.tbl TARGET_BIG_ENDIAN=y +TARGET_LONG_BITS=32
configs/targets/mips-softmmu.mak +1 -0
@@ -1,3 +1,4 @@ TARGET_ARCH=mips TARGET_BIG_ENDIAN=y TARGET_SUPPORTS_MTTCG=y +TARGET_LONG_BITS=32
configs/targets/mips64-linux-user.mak +1 -0
@@ -4,3 +4,4 @@ TARGET_BASE_ARCH=mips TARGET_SYSTBL_ABI=n64 TARGET_SYSTBL=syscall_n64.tbl TARGET_BIG_ENDIAN=y +TARGET_LONG_BITS=64
configs/targets/mips64-softmmu.mak +1 -0
@@ -1,3 +1,4 @@ TARGET_ARCH=mips64 TARGET_BASE_ARCH=mips TARGET_BIG_ENDIAN=y +TARGET_LONG_BITS=64
configs/targets/mips64el-linux-user.mak +1 -0
@@ -3,3 +3,4 @@ TARGET_ABI_MIPSN64=y TARGET_BASE_ARCH=mips TARGET_SYSTBL_ABI=n64 TARGET_SYSTBL=syscall_n64.tbl +TARGET_LONG_BITS=64
configs/targets/mips64el-softmmu.mak +1 -0
@@ -1,2 +1,3 @@ TARGET_ARCH=mips64 TARGET_BASE_ARCH=mips +TARGET_LONG_BITS=64
configs/targets/mipsel-linux-user.mak +1 -0
@@ -2,3 +2,4 @@ TARGET_ARCH=mips TARGET_ABI_MIPSO32=y TARGET_SYSTBL_ABI=o32 TARGET_SYSTBL=syscall_o32.tbl +TARGET_LONG_BITS=32
configs/targets/mipsel-softmmu.mak +1 -0
@@ -1,2 +1,3 @@ TARGET_ARCH=mips TARGET_SUPPORTS_MTTCG=y +TARGET_LONG_BITS=32
configs/targets/mipsn32-linux-user.mak +1 -0
@@ -5,3 +5,4 @@ TARGET_BASE_ARCH=mips TARGET_SYSTBL_ABI=n32 TARGET_SYSTBL=syscall_n32.tbl TARGET_BIG_ENDIAN=y +TARGET_LONG_BITS=64
configs/targets/mipsn32el-linux-user.mak +1 -0
@@ -4,3 +4,4 @@ TARGET_ABI32=y TARGET_BASE_ARCH=mips TARGET_SYSTBL_ABI=n32 TARGET_SYSTBL=syscall_n32.tbl +TARGET_LONG_BITS=64
configs/targets/or1k-linux-user.mak +1 -0
@@ -2,3 +2,4 @@ TARGET_ARCH=openrisc TARGET_BIG_ENDIAN=y TARGET_SYSTBL_ABI=common,32,or1k,time32,stat64,rlimit,renameat TARGET_SYSTBL=syscall.tbl +TARGET_LONG_BITS=32
configs/targets/or1k-softmmu.mak +1 -0
@@ -3,3 +3,4 @@ TARGET_SUPPORTS_MTTCG=y TARGET_BIG_ENDIAN=y # needed by boot.c and all boards TARGET_NEED_FDT=y +TARGET_LONG_BITS=32
configs/targets/ppc-linux-user.mak +1 -0
@@ -3,3 +3,4 @@ TARGET_SYSTBL_ABI=common,nospu,32 TARGET_SYSTBL=syscall.tbl TARGET_BIG_ENDIAN=y TARGET_XML_FILES= gdb-xml/power-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml +TARGET_LONG_BITS=32
configs/targets/ppc-softmmu.mak +1 -0
@@ -2,3 +2,4 @@ TARGET_ARCH=ppc TARGET_BIG_ENDIAN=y TARGET_KVM_HAVE_GUEST_DEBUG=y TARGET_XML_FILES= gdb-xml/power-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml +TARGET_LONG_BITS=32
configs/targets/ppc64-linux-user.mak +1 -0
@@ -5,3 +5,4 @@ TARGET_SYSTBL_ABI=common,nospu,64 TARGET_SYSTBL=syscall.tbl TARGET_BIG_ENDIAN=y TARGET_XML_FILES= gdb-xml/power64-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml gdb-xml/power-vsx.xml +TARGET_LONG_BITS=64
configs/targets/ppc64-softmmu.mak +1 -0
@@ -6,3 +6,4 @@ TARGET_KVM_HAVE_GUEST_DEBUG=y TARGET_XML_FILES= gdb-xml/power64-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml gdb-xml/power-vsx.xml # all boards require libfdt TARGET_NEED_FDT=y +TARGET_LONG_BITS=64
configs/targets/ppc64le-linux-user.mak +1 -0
@@ -4,3 +4,4 @@ TARGET_ABI_DIR=ppc TARGET_SYSTBL_ABI=common,nospu,64 TARGET_SYSTBL=syscall.tbl TARGET_XML_FILES= gdb-xml/power64-core.xml gdb-xml/power-fpu.xml gdb-xml/power-altivec.xml gdb-xml/power-spe.xml gdb-xml/power-vsx.xml +TARGET_LONG_BITS=64
configs/targets/riscv32-linux-user.mak +1 -0
@@ -7,3 +7,4 @@ CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y TARGET_SYSTBL_ABI=32 TARGET_SYSTBL_ABI=common,32,riscv,memfd_secret TARGET_SYSTBL=syscall.tbl +TARGET_LONG_BITS=32
configs/targets/riscv32-softmmu.mak +1 -0
@@ -4,3 +4,4 @@ TARGET_SUPPORTS_MTTCG=y TARGET_XML_FILES= gdb-xml/riscv-32bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-32bit-virtual.xml # needed by boot.c TARGET_NEED_FDT=y +TARGET_LONG_BITS=32
configs/targets/riscv64-bsd-user.mak +1 -0
@@ -2,3 +2,4 @@ TARGET_ARCH=riscv64 TARGET_BASE_ARCH=riscv TARGET_ABI_DIR=riscv TARGET_XML_FILES= gdb-xml/riscv-64bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-64bit-virtual.xml +TARGET_LONG_BITS=64
configs/targets/riscv64-linux-user.mak +1 -0
@@ -7,3 +7,4 @@ CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y TARGET_SYSTBL_ABI=64 TARGET_SYSTBL_ABI=common,64,riscv,rlimit,memfd_secret TARGET_SYSTBL=syscall.tbl +TARGET_LONG_BITS=64
configs/targets/riscv64-softmmu.mak +1 -0
@@ -5,3 +5,4 @@ TARGET_KVM_HAVE_GUEST_DEBUG=y TARGET_XML_FILES= gdb-xml/riscv-64bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-64bit-virtual.xml gdb-xml/riscv-32bit-cpu.xml gdb-xml/riscv-32bit-virtual.xml # needed by boot.c TARGET_NEED_FDT=y +TARGET_LONG_BITS=64
configs/targets/rx-softmmu.mak +1 -0
@@ -2,3 +2,4 @@ TARGET_ARCH=rx TARGET_XML_FILES= gdb-xml/rx-core.xml # all boards require libfdt TARGET_NEED_FDT=y +TARGET_LONG_BITS=32
configs/targets/s390x-linux-user.mak +1 -0
@@ -3,3 +3,4 @@ TARGET_SYSTBL_ABI=common,64 TARGET_SYSTBL=syscall.tbl TARGET_BIG_ENDIAN=y TARGET_XML_FILES= gdb-xml/s390x-core64.xml gdb-xml/s390-acr.xml gdb-xml/s390-fpr.xml gdb-xml/s390-vx.xml gdb-xml/s390-cr.xml gdb-xml/s390-virt.xml gdb-xml/s390-virt-kvm.xml gdb-xml/s390-gs.xml +TARGET_LONG_BITS=64
configs/targets/s390x-softmmu.mak +1 -0
@@ -3,3 +3,4 @@ TARGET_BIG_ENDIAN=y TARGET_SUPPORTS_MTTCG=y TARGET_KVM_HAVE_GUEST_DEBUG=y TARGET_XML_FILES= gdb-xml/s390x-core64.xml gdb-xml/s390-acr.xml gdb-xml/s390-fpr.xml gdb-xml/s390-vx.xml gdb-xml/s390-cr.xml gdb-xml/s390-virt.xml gdb-xml/s390-virt-kvm.xml gdb-xml/s390-gs.xml +TARGET_LONG_BITS=64
configs/targets/sh4-linux-user.mak +1 -0
@@ -2,3 +2,4 @@ TARGET_ARCH=sh4 TARGET_SYSTBL_ABI=common TARGET_SYSTBL=syscall.tbl TARGET_HAS_BFLT=y +TARGET_LONG_BITS=32
configs/targets/sh4-softmmu.mak +1 -0
@@ -1 +1,2 @@ TARGET_ARCH=sh4 +TARGET_LONG_BITS=32
configs/targets/sh4eb-linux-user.mak +1 -0
@@ -3,3 +3,4 @@ TARGET_SYSTBL_ABI=common TARGET_SYSTBL=syscall.tbl TARGET_BIG_ENDIAN=y TARGET_HAS_BFLT=y +TARGET_LONG_BITS=32
configs/targets/sh4eb-softmmu.mak +1 -0
@@ -1,2 +1,3 @@ TARGET_ARCH=sh4 TARGET_BIG_ENDIAN=y +TARGET_LONG_BITS=32
configs/targets/sparc-linux-user.mak +1 -0
@@ -2,3 +2,4 @@ TARGET_ARCH=sparc TARGET_SYSTBL_ABI=common,32 TARGET_SYSTBL=syscall.tbl TARGET_BIG_ENDIAN=y +TARGET_LONG_BITS=32
configs/targets/sparc-softmmu.mak +1 -0
@@ -1,3 +1,4 @@ TARGET_ARCH=sparc TARGET_BIG_ENDIAN=y TARGET_SUPPORTS_MTTCG=y +TARGET_LONG_BITS=32
configs/targets/sparc32plus-linux-user.mak +1 -0
@@ -5,3 +5,4 @@ TARGET_ABI_DIR=sparc TARGET_SYSTBL_ABI=common,32 TARGET_SYSTBL=syscall.tbl TARGET_BIG_ENDIAN=y +TARGET_LONG_BITS=64
configs/targets/sparc64-linux-user.mak +1 -0
@@ -4,3 +4,4 @@ TARGET_ABI_DIR=sparc TARGET_SYSTBL_ABI=common,64 TARGET_SYSTBL=syscall.tbl TARGET_BIG_ENDIAN=y +TARGET_LONG_BITS=64
configs/targets/sparc64-softmmu.mak +1 -0
@@ -2,3 +2,4 @@ TARGET_ARCH=sparc64 TARGET_BASE_ARCH=sparc TARGET_BIG_ENDIAN=y TARGET_SUPPORTS_MTTCG=y +TARGET_LONG_BITS=64
configs/targets/tricore-softmmu.mak +1 -0
@@ -1 +1,2 @@ TARGET_ARCH=tricore +TARGET_LONG_BITS=32
configs/targets/x86_64-bsd-user.mak +1 -0
@@ -1,3 +1,4 @@ TARGET_ARCH=x86_64 TARGET_BASE_ARCH=i386 TARGET_XML_FILES= gdb-xml/i386-64bit.xml +TARGET_LONG_BITS=64
configs/targets/x86_64-linux-user.mak +1 -0
@@ -3,3 +3,4 @@ TARGET_BASE_ARCH=i386 TARGET_SYSTBL_ABI=common,64 TARGET_SYSTBL=syscall_64.tbl TARGET_XML_FILES= gdb-xml/i386-64bit.xml gdb-xml/i386-64bit-linux.xml +TARGET_LONG_BITS=64
configs/targets/x86_64-softmmu.mak +1 -0
@@ -4,3 +4,4 @@ TARGET_SUPPORTS_MTTCG=y TARGET_KVM_HAVE_GUEST_DEBUG=y TARGET_KVM_HAVE_RESET_PARKED_VCPU=y TARGET_XML_FILES= gdb-xml/i386-64bit.xml +TARGET_LONG_BITS=64
configs/targets/xtensa-linux-user.mak +1 -0
@@ -2,3 +2,4 @@ TARGET_ARCH=xtensa TARGET_SYSTBL_ABI=common TARGET_SYSTBL=syscall.tbl TARGET_HAS_BFLT=y +TARGET_LONG_BITS=32
configs/targets/xtensa-softmmu.mak +1 -0
@@ -1,2 +1,3 @@ TARGET_ARCH=xtensa TARGET_SUPPORTS_MTTCG=y +TARGET_LONG_BITS=32
configs/targets/xtensaeb-linux-user.mak +1 -0
@@ -3,3 +3,4 @@ TARGET_SYSTBL_ABI=common TARGET_SYSTBL=syscall.tbl TARGET_BIG_ENDIAN=y TARGET_HAS_BFLT=y +TARGET_LONG_BITS=32
configs/targets/xtensaeb-softmmu.mak +1 -0
@@ -1,3 +1,4 @@ TARGET_ARCH=xtensa TARGET_BIG_ENDIAN=y TARGET_SUPPORTS_MTTCG=y +TARGET_LONG_BITS=32
Signature · 1 line
2.43.0
[PULL 9/9] meson: Deprecate 32-bit host support
In reply to Richard HendersonWe deprecated i686 system mode support for qemu 8.0. However, to make real cleanups to TCG we need to deprecate all 32-bit hosts.
--- docs/about/deprecated.rst | 7 +++++++ meson.build | 8 +++----- 2 files changed, 10 insertions(+), 5 deletions(-)
docs/about/deprecated.rst +7 -0
@@ -204,6 +204,13 @@ 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 --------------------
meson.build +3 -5
@@ -4841,14 +4841,12 @@ 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_arch == 'mips' +elif host_long_bits < 64 message() warning('DEPRECATED HOST CPU') message() - message('Support for CPU host architecture ' + cpu + ' is going to be') - message('dropped as soon as the QEMU project stops supporting Debian 12') - message('("Bookworm"). Going forward, the QEMU project will not guarantee') - message('that QEMU will compile or work on this host CPU.') + message('Support for 32-bit CPU host architecture ' + cpu + ' is going') + message('to be dropped in a future QEMU release.') endif if not supported_oses.contains(host_os)
Signature · 1 line
2.43.0
[PULL 2/9] meson: Disallow 64-bit on 32-bit KVM emulation
In reply to Richard HendersonRequire a 64-bit host binary to spawn a 64-bit guest.
--- meson.build | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-)
meson.build +12 -6
@@ -277,21 +277,27 @@ else host_arch = cpu endif -if cpu in ['x86', 'x86_64'] +if cpu == 'x86' + kvm_targets = ['i386-softmmu'] +elif cpu == 'x86_64' kvm_targets = ['i386-softmmu', 'x86_64-softmmu'] elif cpu == 'aarch64' kvm_targets = ['aarch64-softmmu'] elif cpu == 's390x' kvm_targets = ['s390x-softmmu'] -elif cpu in ['ppc', 'ppc64'] +elif cpu == 'ppc' + kvm_targets = ['ppc-softmmu'] +elif cpu == 'ppc64' kvm_targets = ['ppc-softmmu', 'ppc64-softmmu'] -elif cpu in ['mips', 'mips64'] +elif cpu == 'mips' + kvm_targets = ['mips-softmmu', 'mipsel-softmmu'] +elif cpu == 'mips64' kvm_targets = ['mips-softmmu', 'mipsel-softmmu', 'mips64-softmmu', 'mips64el-softmmu'] -elif cpu in ['riscv32'] +elif cpu == 'riscv32' kvm_targets = ['riscv32-softmmu'] -elif cpu in ['riscv64'] +elif cpu == 'riscv64' kvm_targets = ['riscv64-softmmu'] -elif cpu in ['loongarch64'] +elif cpu == 'loongarch64' kvm_targets = ['loongarch64-softmmu'] else kvm_targets = []
Signature · 1 line
2.43.0
[PULL 3/9] meson: Disallow 64-bit on 32-bit Xen emulation
In reply to Richard HendersonRequire a 64-bit host binary to spawn a 64-bit guest.
--- meson.build | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
meson.build +7 -2
@@ -304,9 +304,14 @@ else endif accelerator_targets = { 'CONFIG_KVM': kvm_targets } -if cpu in ['x86', 'x86_64'] +if cpu == 'x86' + xen_targets = ['i386-softmmu'] +elif cpu == 'x86_64' xen_targets = ['i386-softmmu', 'x86_64-softmmu'] -elif cpu in ['arm', 'aarch64'] +elif cpu == 'arm' + # i386 emulator provides xenpv machine type for multiple architectures + xen_targets = ['i386-softmmu'] +elif cpu == 'aarch64' # i386 emulator provides xenpv machine type for multiple architectures xen_targets = ['i386-softmmu', 'x86_64-softmmu', 'aarch64-softmmu'] else
Signature · 1 line
2.43.0
Re: [PULL 3/9] meson: Disallow 64-bit on 32-bit Xen emulation
Hi,
Adding Xen community.
Quoted 16 lines · Richard Henderson
Require a 64-bit host binary to spawn a 64-bit guest.
Reviewed-by Thomas Huth <[email protected]>Reviewed-by Philippe Mathieu-Daudé <[email protected]>Signed-off-by Richard Henderson <[email protected]>--- meson.build | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)meson.build +0
-0@@ -304,9 +304,14 @@ else endif accelerator_targets = { 'CONFIG_KVM': kvm_targets }
meson.build else · line 313
Quoted 10 lines
meson.build +6
-2-if cpu in ['x86', 'x86_64'] +if cpu == 'x86' + xen_targets = ['i386-softmmu'] +elif cpu == 'x86_64' xen_targets = ['i386-softmmu', 'x86_64-softmmu'] -elif cpu in ['arm', 'aarch64'] +elif cpu == 'arm' + # i386 emulator provides xenpv machine type for multiple architectures + xen_targets = ['i386-softmmu']
Is actually someone *testing* this config? I'm having hard time building it, so am very suspicious about how it runs, and start to wonder if I'm not just wasting my time (as could be our CI).
meson.build else · line 317
Quoted 4 lines
meson.build +1
-0+elif cpu == 'aarch64' # i386 emulator provides xenpv machine type for multiple architectures xen_targets = ['i386-softmmu', 'x86_64-softmmu', 'aarch64-softmmu'] else
Regards,
Phil.
Re: [PULL 3/9] meson: Disallow 64-bit on 32-bit Xen emulation
Quoted 26 lines · Philippe Mathieu-Daudé
Hi,
Adding Xen community.
Quoted 21 lines · Richard Henderson
Require a 64-bit host binary to spawn a 64-bit guest.
Reviewed-by Thomas Huth <[email protected]>Reviewed-by Philippe Mathieu-Daudé <[email protected]>Signed-off-by Richard Henderson <[email protected]>---
meson.build | 9 +++++++--1 file changed, 7 insertions(+), 2 deletions(-)meson.build +0
-0@@ -304,9 +304,14 @@ elseendif
accelerator_targets= { 'CONFIG_KVM':kvm_targets}meson.build +3
-1-if cpu in ['x86', 'x86_64'] +if cpu == 'x86' + xen_targets = ['i386-softmmu'] +elif cpu == 'x86_64'
xen_targets= ['i386-softmmu', 'x86_64-softmmu']
Quoted 8 lines
meson.build else · line 313
Quoted 4 lines
meson.build +3
-1-elif cpu in ['arm', 'aarch64'] +elif cpu == 'arm' + # i386 emulator provides xenpv machine type for multiple architectures + xen_targets = ['i386-softmmu']Is actually someone *testing* this config? I'm having hard time building it, so am very suspicious about how it runs, and start to wonder if I'm not just wasting my time (as could be our CI).
This config is not tested and not functional. I'll post a patch removing it.
Quoted 10 lines
Quoted 5 lines
+elif cpu == 'aarch64'
# i386 emulator provides xenpv machine type for multiple architectures xen_targets = ['i386-softmmu', 'x86_64-softmmu', 'aarch64-softmmu'] elseRegards,
Phil.
Re: [PULL 3/9] meson: Disallow 64-bit on 32-bit Xen emulation
Quoted 37 lines · Philippe Mathieu-Daudé
Quoted 27 lines · Philippe Mathieu-Daudé
Hi,
Adding Xen community.
Quoted 22 lines · Richard Henderson
Require a 64-bit host binary to spawn a 64-bit guest.
Reviewed-by Thomas Huth <[email protected]>Reviewed-by Philippe Mathieu-Daudé <[email protected]>Signed-off-by Richard Henderson <[email protected]>---
meson.build | 9 +++++++--1 file changed, 7 insertions(+), 2 deletions(-)meson.build +0
-0@@ -304,9 +304,14 @@ elseendif
accelerator_targets= { 'CONFIG_KVM':kvm_targets}meson.build +3
-1-if cpu in ['x86', 'x86_64'] +if cpu == 'x86' + xen_targets = ['i386-softmmu'] +elif cpu == 'x86_64'
xen_targets= ['i386-softmmu', 'x86_64-softmmu'] -elif cpu in ['arm', 'aarch64']Quoted 8 lines
Quoted 4 lines
+elif cpu == 'arm'
+ # i386 emulator provides xenpv machine type for multiple architectures
+xen_targets= ['i386-softmmu']Is actually someone *testing* this config? I'm having hard time building it, so am very suspicious about how it runs, and start to wonder if I'm not just wasting my time (as could be our CI).
Quoted 2 lines
This config is not tested and not functional. I'll post a patch removing it.
(thus no need to follow the deprecation policy).
Quoted 12 lines
Quoted 11 lines
Quoted 6 lines
+elif cpu == 'aarch64'
# i386 emulator provides xenpv machine type for multiple architectures xen_targets = ['i386-softmmu', 'x86_64-softmmu', 'aarch64-softmmu'] elseRegards,
Phil.
Re: [PULL 3/9] meson: Disallow 64-bit on 32-bit Xen emulation
In reply to Philippe Mathieu-DaudéQuoted 27 lines · Philippe Mathieu-Daudé
Hi,
Adding Xen community.
Quoted 22 lines · Richard Henderson
Require a 64-bit host binary to spawn a 64-bit guest.
Reviewed-by Thomas Huth <[email protected]>Reviewed-by Philippe Mathieu-Daudé <[email protected]>Signed-off-by Richard Henderson <[email protected]>---
meson.build | 9 +++++++--1 file changed, 7 insertions(+), 2 deletions(-)meson.build +0
-0@@ -304,9 +304,14 @@ elseendif
accelerator_targets= { 'CONFIG_KVM':kvm_targets} -if cpu in ['x86', 'x86_64']meson.build +3
-0+if cpu == 'x86' + xen_targets = ['i386-softmmu'] +elif cpu == 'x86_64'
xen_targets= ['i386-softmmu', 'x86_64-softmmu'] -elif cpu in ['arm', 'aarch64']
Quoted 8 lines
Quoted 4 lines
+elif cpu == 'arm'
+ # i386 emulator provides xenpv machine type for multiple architectures
+xen_targets= ['i386-softmmu']Is actually someone *testing* this config? I'm having hard time building it, so am very suspicious about how it runs, and start to wonder if I'm not just wasting my time (as could be our CI).
It was intentional. I believe it was Stefano (CC'd) who introduced it.
Xen uses qemu-system-i386 everywhere because qemu-system-x86_64 doesn't make compatible VMs. I'm not sure why; I suspect it's bugs in the Xen machine types, but I don't know QEMU well enough to be sure.
Another thing that (at least, was) tied to qemu-system-i386 was using Qemu as a XenBlk <-> QCOW adapter, at which point it wasn't even really a system emulator, just a paravirtual disk implementation.
This is, AIUI, what ARM wants with the xenpv machine. If there's a better way to do this, please do say.
Looking through Xen's CI, I can't see any of the ARM builds building QEMU at all. I think it's quite possible it's not tested any more.
~Andrew
Philippe Mathieu-Daudé
Reviewed-by Alex BennéeRe: [PULL 3/9] meson: Disallow 64-bit on 32-bit Xen emulation
+Vikram
Quoted 37 lines · Andrew Cooper
Quoted 27 lines · Philippe Mathieu-Daudé
Hi,
Adding Xen community.
Quoted 22 lines · Richard Henderson
Require a 64-bit host binary to spawn a 64-bit guest.
Reviewed-by Thomas Huth <[email protected]>Reviewed-by Philippe Mathieu-Daudé <[email protected]>Signed-off-by Richard Henderson <[email protected]>--- meson.build | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)meson.build +3
-1@@ -304,9 +304,14 @@ else endif accelerator_targets = { 'CONFIG_KVM': kvm_targets } -if cpu in ['x86', 'x86_64'] +if cpu == 'x86' + xen_targets = ['i386-softmmu'] +elif cpu == 'x86_64' xen_targets = ['i386-softmmu', 'x86_64-softmmu'] -elif cpu in ['arm', 'aarch64']Quoted 8 lines
Quoted 4 lines
meson.build +2
-0+elif cpu == 'arm' + # i386 emulator provides xenpv machine type for multiplearchitectures
+xen_targets= ['i386-softmmu']Is actually someone *testing* this config? I'm having hard time building it, so am very suspicious about how it runs, and start to wonder if I'm not just wasting my time (as could be our CI).
Quoted 1 line
It was intentional. I believe it was Stefano (CC'd) who introduced it.
In the introduction commit, "ARM targets" is used, so apparently both 32/64bit were picked deliberately:
---
commit aaea616d54317b8a0154adf52303a51da2d8d56f
Author: Vikram Garhwal <[email protected]> Date: Wed Jun 14 17:03:38 2023 -0700
meson.build: enable xenpv machine build for ARM
Add CONFIG_XEN for aarch64 device to support build for ARM targets.
meson.build +1 -1
@@ -136,7 +136,7 @@ endif if cpu in ['x86', 'x86_64', 'arm', 'aarch64'] # i386 emulator provides xenpv machine type for multiple architectures accelerator_targets += { - 'CONFIG_XEN': ['i386-softmmu', 'x86_64-softmmu'], + 'CONFIG_XEN': ['i386-softmmu', 'x86_64-softmmu', 'aarch64-softmmu'], } endif if cpu in ['x86', 'x86_64']
---
Quoted 10 lines
Xen uses qemu-system-i386 everywhere because qemu-system-x86_64 doesn't make compatible VMs. I'm not sure why; I suspect it's bugs in the Xen machine types, but I don't know QEMU well enough to be sure.
Another thing that (at least, was) tied to qemu-system-i386 was using Qemu as a XenBlk <-> QCOW adapter, at which point it wasn't even really a system emulator, just a paravirtual disk implementation.
This is, AIUI, what ARM wants with the xenpv machine. If there's a better way to do this, please do say.
No, I concur.
Quoted 2 lines
Looking through Xen's CI, I can't see any of the ARM builds building QEMU at all. I think it's quite possible it's not tested any more.
We only cross-build, see our cross-arm64-xen-only job:
https://gitlab.com/qemu-project/qemu/-/jobs/9165958873
Note, if it is not clear, the problem I have is to test Xen on 32-bit ARM hosts; I don't have any problem with 64-bit ones.
Regards,
Phil.
Re: [PULL 3/9] meson: Disallow 64-bit on 32-bit Xen emulation
Quoted 63 lines · Philippe Mathieu-Daudé
+Vikram
Quoted 37 lines · Andrew Cooper
Quoted 27 lines · Philippe Mathieu-Daudé
Hi,
Adding Xen community.
Quoted 22 lines · Richard Henderson
Require a 64-bit host binary to spawn a 64-bit guest.
Reviewed-by Thomas Huth <[email protected]>Reviewed-by Philippe Mathieu-Daudé <[email protected]>Signed-off-by Richard Henderson <[email protected]>---
meson.build | 9 +++++++--1 file changed, 7 insertions(+), 2 deletions(-)meson.build +0
-0@@ -304,9 +304,14 @@ elseendif
accelerator_targets= { 'CONFIG_KVM':kvm_targets} -if cpu in ['x86', 'x86_64']meson.build +3
-0+if cpu == 'x86' + xen_targets = ['i386-softmmu'] +elif cpu == 'x86_64'
xen_targets= ['i386-softmmu', 'x86_64-softmmu'] -elif cpu in ['arm', 'aarch64']Quoted 8 lines
Quoted 4 lines
+elif cpu == 'arm'
+ # i386 emulator provides xenpv machine type for multiple architectures
+xen_targets= ['i386-softmmu']Is actually someone *testing* this config? I'm having hard time building it, so am very suspicious about how it runs, and start to wonder if I'm not just wasting my time (as could be our CI).
Quoted 1 line
It was intentional. I believe it was Stefano (CC'd) who introduced it.
In the introduction commit, "ARM targets" is used, so apparently both 32/64bit were picked deliberately:
---
commitaaea616d54317b8a0154adf52303a51da2d8d56f
Author: Vikram Garhwal <[email protected]>
Date: Wed Jun 14 17:03:38 2023 -0700meson.build: enable xenpv machine build for ARM
Add
CONFIG_XENfor aarch64 device to support build for ARM targets.Signed-off-by Vikram Garhwal <[email protected]>Signed-off-by Stefano Stabellini <[email protected]>Reviewed-by Alex Bennée <[email protected]>meson.build +0
-0
meson.build endif
Quoted 9 lines
meson.build +1
-2@@ -136,7 +136,7 @@ endif if cpu in ['x86', 'x86_64', 'arm', 'aarch64'] # i386 emulator provides xenpv machine type for multiple architectures accelerator_targets += { - 'CONFIG_XEN': ['i386-softmmu', 'x86_64-softmmu'], + 'CONFIG_XEN': ['i386-softmmu', 'x86_64-softmmu', 'aarch64-softmmu'], } endif if cpu in ['x86', 'x86_64'] ---
Hmm wrong commit apparently, but the history isn't clear. See:
-- >8 --
commit 3b6b75506de44c5070639943c30a0ad5850f5d02
Author: Paolo Bonzini <[email protected]> Date: Mon Sep 17 11:59:41 2012 +0200
configure: factor out list of supported Xen/KVM/HAX targets
This will be useful when the functions are called, early in the
configure
process, to filter out targets that do not support hardware
acceleration.
configure +0 -0
...
+supported_xen_target() {
+ test "$xen" = "yes" || return 1
+ glob "$1" "*-softmmu" || return 1
+ case "${1%-softmmu}:$cpu" in+ arm:arm | aarch64:aarch64 | \
+ i386:i386 | i386:x86_64 | x86_64:i386 | x86_64:x86_64)
+ return 0
+ ;;
+ esac
+ return 1
+}
+
# default parameters
source_path=$(dirname "$0")
cpu=""
@@ -6178,46 +6222,22 @@ echo "TARGET_ABI_DIR=$TARGET_ABI_DIR" >> $config_target_mak
if [ "$HOST_VARIANT_DIR" != "" ]; then
echo "HOST_VARIANT_DIR=$HOST_VARIANT_DIR" >> $config_target_mak
fi
-case "$target_name" in
- i386|x86_64)
- if test "$xen" = "yes" -a "$target_softmmu" = "yes" ; then
- echo "CONFIG_XEN=y" >> $config_target_mak
- if test "$xen_pci_passthrough" = yes; then
+
+if supported_xen_target $target; then
+ echo "CONFIG_XEN=y" >> $config_target_mak
+ if test "$xen_pci_passthrough" = yes; then
echo "CONFIG_XEN_PCI_PASSTHROUGH=y" >> "$config_target_mak"
- fi
fi
- ;;
- *)
---Paolo, Alex, was this intentional?
Quoted 25 lines
Quoted 10 lines
Xen uses qemu-system-i386 everywhere because qemu-system-x86_64 doesn't make compatible VMs. I'm not sure why; I suspect it's bugs in the Xen machine types, but I don't know QEMU well enough to be sure.
Another thing that (at least, was) tied to qemu-system-i386 was using Qemu as a XenBlk <-> QCOW adapter, at which point it wasn't even really a system emulator, just a paravirtual disk implementation.
This is, AIUI, what ARM wants with the xenpv machine. If there's a better way to do this, please do say.
No, I concur.
Quoted 2 lines
Looking through Xen's CI, I can't see any of the ARM builds building QEMU at all. I think it's quite possible it's not tested any more.
We only cross-build, see our cross-arm64-xen-only job:
https://gitlab.com/qemu-project/qemu/-/jobs/9165958873Note, if it is not clear, the problem I have is to test Xen on 32-bit ARM hosts; I don't have any problem with 64-bit ones.
Regards,
Phil.
Re: [PULL 3/9] meson: Disallow 64-bit on 32-bit Xen emulation
In reply to Andrew CooperQuoted 47 lines · Andrew Cooper
Quoted 27 lines · Philippe Mathieu-Daudé
Hi,
Adding Xen community.
Quoted 22 lines · Richard Henderson
Require a 64-bit host binary to spawn a 64-bit guest.
Reviewed-by Thomas Huth <[email protected]>Reviewed-by Philippe Mathieu-Daudé <[email protected]>Signed-off-by Richard Henderson <[email protected]>---
meson.build | 9 +++++++--1 file changed, 7 insertions(+), 2 deletions(-)meson.build +0
-0@@ -304,9 +304,14 @@ elseendif
accelerator_targets= { 'CONFIG_KVM':kvm_targets} -if cpu in ['x86', 'x86_64']meson.build +3
-0+if cpu == 'x86' + xen_targets = ['i386-softmmu'] +elif cpu == 'x86_64'
xen_targets= ['i386-softmmu', 'x86_64-softmmu'] -elif cpu in ['arm', 'aarch64']Quoted 8 lines
Quoted 4 lines
+elif cpu == 'arm'
+ # i386 emulator provides xenpv machine type for multiple architectures
+xen_targets= ['i386-softmmu']Is actually someone *testing* this config? I'm having hard time building it, so am very suspicious about how it runs, and start to wonder if I'm not just wasting my time (as could be our CI).
It was intentional. I believe it was Stefano (CC'd) who introduced it.
Xen uses qemu-system-i386 everywhere because qemu-system-x86_64 doesn't make compatible VMs. I'm not sure why; I suspect it's bugs in the Xen machine types, but I don't know QEMU well enough to be sure.
Another thing that (at least, was) tied to qemu-system-i386 was using Qemu as a XenBlk <-> QCOW adapter, at which point it wasn't even really a system emulator, just a paravirtual disk implementation.
Quoted 6 lines
This is, AIUI, what ARM wants with the xenpv machine. If there's a better way to do this, please do say.
Looking through Xen's CI, I can't see any of the ARM builds building QEMU at all. I think it's quite possible it's not tested any more.
Hi all,
I answered on a similar question recently:
https://marc.info/?l=qemu-devel&m=173862237031104&w=2
In short, while QEMU for x86 HVM guest is required, QEMU is not required for x86 PVH guests, and ARM guests. The model is different and QEMU is only providing PV backends or virtio backends if the VM is configured that way. You can have a fully functional VM without QEMU (or other virtio backends provider).
In this context, the original integration of QEMU for Xen on ARM was done reusing the qemu-system-i386 target. But Edgar recently upstreamed a much better newer machine that is cleaner, simpler and faster: XenPVH (see hw/arm/xen-pvh.c and hw/i386/xen/xen-pvh.c). So we don't need qemu-system-i386 on either ARM32 or ARM64 anymore.
Moreover, for ARM32 specifically, I think it would be OK to remove QEMU support for ARM32 Xen machines in general because of the reasons I wrote in the other email and above here.
[PULL 7/9] target/*: Remove TARGET_LONG_BITS from cpu-param.h
In reply to Richard HendersonThis is now handled by the configs/targets/*.mak fragment.
--- target/alpha/cpu-param.h | 2 -- target/arm/cpu-param.h | 2 -- target/avr/cpu-param.h | 1 - target/hexagon/cpu-param.h | 1 - target/hppa/cpu-param.h | 2 -- target/i386/cpu-param.h | 2 -- target/loongarch/cpu-param.h | 1 - target/m68k/cpu-param.h | 1 - target/microblaze/cpu-param.h | 2 -- target/mips/cpu-param.h | 5 ----- target/openrisc/cpu-param.h | 1 - target/ppc/cpu-param.h | 2 -- target/riscv/cpu-param.h | 2 -- target/rx/cpu-param.h | 1 - target/s390x/cpu-param.h | 1 - target/sh4/cpu-param.h | 1 - target/sparc/cpu-param.h | 2 -- target/tricore/cpu-param.h | 1 - target/xtensa/cpu-param.h | 1 - 19 files changed, 31 deletions(-)
target/alpha/cpu-param.h +0 -2
@@ -8,8 +8,6 @@#ifndef ALPHA_CPU_PARAM_H #define ALPHA_CPU_PARAM_H -#define TARGET_LONG_BITS 64 -/* ??? EV4 has 34 phys addr bits, EV5 has 40, EV6 has 44. */ #define TARGET_PHYS_ADDR_SPACE_BITS 44
target/arm/cpu-param.h +0 -2
@@ -9,11 +9,9 @@#define ARM_CPU_PARAM_H #ifdef TARGET_AARCH64 -# define TARGET_LONG_BITS 64# define TARGET_PHYS_ADDR_SPACE_BITS 52# define TARGET_VIRT_ADDR_SPACE_BITS 52#else -# define TARGET_LONG_BITS 32# define TARGET_PHYS_ADDR_SPACE_BITS 40# define TARGET_VIRT_ADDR_SPACE_BITS 32#endif
target/avr/cpu-param.h +0 -1
@@ -21,7 +21,6 @@#ifndef AVR_CPU_PARAM_H #define AVR_CPU_PARAM_H -#define TARGET_LONG_BITS 32/* * TARGET_PAGE_BITS cannot be more than 8 bits because * 1. all IO registers occupy [0x0000 .. 0x00ff] address range, and they
target/hexagon/cpu-param.h +0 -1
@@ -19,7 +19,6 @@#define HEXAGON_CPU_PARAM_H #define TARGET_PAGE_BITS 16/* 64K pages */ -#define TARGET_LONG_BITS 32#define TARGET_PHYS_ADDR_SPACE_BITS 36#define TARGET_VIRT_ADDR_SPACE_BITS 32
target/hppa/cpu-param.h +0 -2
@@ -8,8 +8,6 @@#ifndef HPPA_CPU_PARAM_H #define HPPA_CPU_PARAM_H -#define TARGET_LONG_BITS 64 -#if defined(CONFIG_USER_ONLY ) && defined(TARGET_ABI32 )# define TARGET_PHYS_ADDR_SPACE_BITS 32# define TARGET_VIRT_ADDR_SPACE_BITS 32
target/i386/cpu-param.h +0 -2
@@ -9,7 +9,6 @@#define I386_CPU_PARAM_H #ifdef TARGET_X86_64 -# define TARGET_LONG_BITS 64# define TARGET_PHYS_ADDR_SPACE_BITS 52/* * ??? This is really 48 bits, sign-extended, but the only thing
@@ -18,7 +17,6 @@*/ # define TARGET_VIRT_ADDR_SPACE_BITS 47#else -# define TARGET_LONG_BITS 32# define TARGET_PHYS_ADDR_SPACE_BITS 36# define TARGET_VIRT_ADDR_SPACE_BITS 32#endif
target/loongarch/cpu-param.h +0 -1
@@ -8,7 +8,6 @@#ifndef LOONGARCH_CPU_PARAM_H #define LOONGARCH_CPU_PARAM_H -#define TARGET_LONG_BITS 64#define TARGET_PHYS_ADDR_SPACE_BITS 48#define TARGET_VIRT_ADDR_SPACE_BITS 48
target/m68k/cpu-param.h +0 -1
@@ -8,7 +8,6 @@#ifndef M68K_CPU_PARAM_H #define M68K_CPU_PARAM_H -#define TARGET_LONG_BITS 32/* * Coldfire Linux uses 8k pages * and m68k linux uses 4k pages
target/microblaze/cpu-param.h +0 -2
@@ -17,11 +17,9 @@* of address space. */ #ifdef CONFIG_USER_ONLY -#define TARGET_LONG_BITS 32#define TARGET_PHYS_ADDR_SPACE_BITS 32#define TARGET_VIRT_ADDR_SPACE_BITS 32#else -#define TARGET_LONG_BITS 64#define TARGET_PHYS_ADDR_SPACE_BITS 64#define TARGET_VIRT_ADDR_SPACE_BITS 64#endif
target/mips/cpu-param.h +0 -5
@@ -7,11 +7,6 @@#ifndef MIPS_CPU_PARAM_H #define MIPS_CPU_PARAM_H -#ifdef TARGET_MIPS64 -# define TARGET_LONG_BITS 64 -#else -# define TARGET_LONG_BITS 32 -#endif #ifdef TARGET_ABI_MIPSN64 #define TARGET_PHYS_ADDR_SPACE_BITS 48#define TARGET_VIRT_ADDR_SPACE_BITS 48
target/openrisc/cpu-param.h +0 -1
@@ -8,7 +8,6 @@#ifndef OPENRISC_CPU_PARAM_H #define OPENRISC_CPU_PARAM_H -#define TARGET_LONG_BITS 32#define TARGET_PAGE_BITS 13#define TARGET_PHYS_ADDR_SPACE_BITS 32#define TARGET_VIRT_ADDR_SPACE_BITS 32
target/ppc/cpu-param.h +0 -2
@@ -9,7 +9,6 @@#define PPC_CPU_PARAM_H #ifdef TARGET_PPC64 -# define TARGET_LONG_BITS 64/* * Note that the official physical address space bits is 62-M where M * is implementation dependent. I've not looked up M for the set of
@@ -27,7 +26,6 @@# define TARGET_VIRT_ADDR_SPACE_BITS 64# endif #else -# define TARGET_LONG_BITS 32# define TARGET_PHYS_ADDR_SPACE_BITS 36# define TARGET_VIRT_ADDR_SPACE_BITS 32#endif
target/riscv/cpu-param.h +0 -2
@@ -9,11 +9,9 @@#define RISCV_CPU_PARAM_H #if defined(TARGET_RISCV64 ) -# define TARGET_LONG_BITS 64# define TARGET_PHYS_ADDR_SPACE_BITS 56/* 44-bit PPN */ # define TARGET_VIRT_ADDR_SPACE_BITS 48/* sv48 */ #elif defined(TARGET_RISCV32 ) -# define TARGET_LONG_BITS 32# define TARGET_PHYS_ADDR_SPACE_BITS 34/* 22-bit PPN */ # define TARGET_VIRT_ADDR_SPACE_BITS 32/* sv32 */ #endif
target/rx/cpu-param.h +0 -1
@@ -19,7 +19,6 @@#ifndef RX_CPU_PARAM_H #define RX_CPU_PARAM_H -#define TARGET_LONG_BITS 32#define TARGET_PAGE_BITS 12#define TARGET_PHYS_ADDR_SPACE_BITS 32
target/s390x/cpu-param.h +0 -1
@@ -8,7 +8,6 @@#ifndef S390_CPU_PARAM_H #define S390_CPU_PARAM_H -#define TARGET_LONG_BITS 64#define TARGET_PAGE_BITS 12#define TARGET_PHYS_ADDR_SPACE_BITS 64#define TARGET_VIRT_ADDR_SPACE_BITS 64
target/sh4/cpu-param.h +0 -1
@@ -8,7 +8,6 @@#ifndef SH4_CPU_PARAM_H #define SH4_CPU_PARAM_H -#define TARGET_LONG_BITS 32#define TARGET_PAGE_BITS 12/* 4k */ #define TARGET_PHYS_ADDR_SPACE_BITS 32#ifdef CONFIG_USER_ONLY
target/sparc/cpu-param.h +0 -2
@@ -8,7 +8,6 @@#define SPARC_CPU_PARAM_H #ifdef TARGET_SPARC64 -# define TARGET_LONG_BITS 64# define TARGET_PAGE_BITS 13/* 8k */ # define TARGET_PHYS_ADDR_SPACE_BITS 41# ifdef TARGET_ABI32
@@ -17,7 +16,6 @@# define TARGET_VIRT_ADDR_SPACE_BITS 44# endif #else -# define TARGET_LONG_BITS 32# define TARGET_PAGE_BITS 12/* 4k */ # define TARGET_PHYS_ADDR_SPACE_BITS 36# define TARGET_VIRT_ADDR_SPACE_BITS 32
target/tricore/cpu-param.h +0 -1
@@ -8,7 +8,6 @@#ifndef TRICORE_CPU_PARAM_H #define TRICORE_CPU_PARAM_H -#define TARGET_LONG_BITS 32#define TARGET_PAGE_BITS 14#define TARGET_PHYS_ADDR_SPACE_BITS 32#define TARGET_VIRT_ADDR_SPACE_BITS 32
target/xtensa/cpu-param.h +0 -1
@@ -8,7 +8,6 @@#ifndef XTENSA_CPU_PARAM_H #define XTENSA_CPU_PARAM_H -#define TARGET_LONG_BITS 32#define TARGET_PAGE_BITS 12#define TARGET_PHYS_ADDR_SPACE_BITS 32#ifdef CONFIG_USER_ONLY
Signature · 1 line
2.43.0
Stefan Hajnoczi
AppliedApplied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/10.0 for any user-visible changes.