On 3/2/25 04:18, Richard Henderson wrote:
Define 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 Signed-off-by: Richard Henderson <[email protected]> --- 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(+)
Simpler to review split in 2 (32, 64). $ git grep -l TARGET_LONG_BITS=32 configs/targets/ configs/targets/arm-bsd-user.mak configs/targets/arm-linux-user.mak configs/targets/arm-softmmu.mak configs/targets/armeb-linux-user.mak configs/targets/avr-softmmu.mak configs/targets/hexagon-linux-user.mak configs/targets/i386-bsd-user.mak configs/targets/i386-linux-user.mak configs/targets/i386-softmmu.mak configs/targets/m68k-linux-user.mak configs/targets/m68k-softmmu.mak configs/targets/microblaze-linux-user.mak configs/targets/microblazeel-linux-user.mak configs/targets/mips-linux-user.mak configs/targets/mips-softmmu.mak configs/targets/mipsel-linux-user.mak configs/targets/mipsel-softmmu.mak configs/targets/or1k-linux-user.mak configs/targets/or1k-softmmu.mak configs/targets/ppc-linux-user.mak configs/targets/ppc-softmmu.mak configs/targets/riscv32-linux-user.mak configs/targets/riscv32-softmmu.mak configs/targets/rx-softmmu.mak configs/targets/sh4-linux-user.mak configs/targets/sh4-softmmu.mak configs/targets/sh4eb-linux-user.mak configs/targets/sh4eb-softmmu.mak configs/targets/sparc-linux-user.mak configs/targets/sparc-softmmu.mak configs/targets/tricore-softmmu.mak configs/targets/xtensa-linux-user.mak configs/targets/xtensa-softmmu.mak configs/targets/xtensaeb-linux-user.mak configs/targets/xtensaeb-softmmu.mak OK. $ git grep -l TARGET_LONG_BITS=64 configs/targets/ configs/targets/aarch64-bsd-user.mak configs/targets/aarch64-linux-user.mak configs/targets/aarch64-softmmu.mak configs/targets/aarch64_be-linux-user.mak configs/targets/alpha-linux-user.mak configs/targets/alpha-softmmu.mak configs/targets/hppa-linux-user.mak configs/targets/hppa-softmmu.mak configs/targets/loongarch64-linux-user.mak configs/targets/loongarch64-softmmu.mak configs/targets/microblaze-softmmu.mak configs/targets/microblazeel-softmmu.mak Surprising, only 32-bit ISA is implemented. Looking at the patch context I see: +# System mode can address up to 64 bits via lea/sea instructions. +# TODO: These bypass the mmu, so we could emulate these differently. configs/targets/mips64-linux-user.mak configs/targets/mips64-softmmu.mak configs/targets/mips64el-linux-user.mak configs/targets/mips64el-softmmu.mak configs/targets/mipsn32-linux-user.mak configs/targets/mipsn32el-linux-user.mak configs/targets/ppc64-linux-user.mak configs/targets/ppc64-softmmu.mak configs/targets/ppc64le-linux-user.mak configs/targets/riscv64-bsd-user.mak configs/targets/riscv64-linux-user.mak configs/targets/riscv64-softmmu.mak configs/targets/s390x-linux-user.mak configs/targets/s390x-softmmu.mak configs/targets/sparc32plus-linux-user.mak configs/targets/sparc64-linux-user.mak configs/targets/sparc64-softmmu.mak configs/targets/x86_64-bsd-user.mak configs/targets/x86_64-linux-user.mak configs/targets/x86_64-softmmu.mak OK. Preferably splitting 32/64: Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
