Il mar 19 mag 2026, 16:59 Philippe Mathieu-Daudé <[email protected]> ha
scritto:

> We still build QEMU tools on 32-bit hosts (see commit
> cf634dfcd8f), however no OS supported by QEMU still runs
> on ESA/390 (Linux dropped support in release 4.1 in 2015).
>

If Linux still supports 31-bit *userspace binaries*, I would keep the
configure check, so that 32-bit s390 is properly detected as an unsupported
CPU:

elif check_define __s390__ ; then
>   if check_define __s390x__ ; then
>     cpu="s390x"
>   else
>     cpu="s390"
>   fi
>

and perhaps keep the CPU_CFLAGS only from the other hunk:

  s390)
>     linux_arch=s390
>     CPU_CFLAGS="-m31"
>     ;;
>

   s390x)
>      host_arch=s390x
>      linux_arch=s390
>

The rest is fine.

Paolo

diff --git a/include/qemu/cacheflush.h b/include/qemu/cacheflush.h
> index 8c64b878145..0618966ddde 100644
> --- a/include/qemu/cacheflush.h
> +++ b/include/qemu/cacheflush.h
> @@ -19,7 +19,7 @@
>   * mappings of the same physical page(s).
>   */
>
> -#if defined(__x86_64__) || defined(__s390__)
> +#if defined(__x86_64__) || defined(__s390x__)
>
>  static inline void flush_idcache_range(uintptr_t rx, uintptr_t rw, size_t
> len)
>  {
> diff --git a/include/qemu/timer.h b/include/qemu/timer.h
> index b931181f53d..fc021f8f966 100644
> --- a/include/qemu/timer.h
> +++ b/include/qemu/timer.h
> @@ -889,7 +889,7 @@ static inline int64_t cpu_get_host_ticks(void)
>      return val;
>  }
>
> -#elif defined(__s390__)
> +#elif defined(__s390x__)
>
>  static inline int64_t cpu_get_host_ticks(void)
>  {
> diff --git a/tests/tcg/multiarch/nop_func.h
> b/tests/tcg/multiarch/nop_func.h
> index f714d210000..26d3a76eb62 100644
> --- a/tests/tcg/multiarch/nop_func.h
> +++ b/tests/tcg/multiarch/nop_func.h
> @@ -15,7 +15,7 @@ static const char nop_func[] = {
>      0x1e, 0xff, 0x2f, 0xe1,     /* bx lr */
>  #elif defined(__riscv)
>      0x67, 0x80, 0x00, 0x00,     /* ret */
> -#elif defined(__s390__)
> +#elif defined(__s390x__)
>      0x07, 0xfe,                 /* br %r14 */
>  #elif defined(__i386__) || defined(__x86_64__)
>      0xc3,                       /* ret */
> diff --git a/block/file-posix.c b/block/file-posix.c
> index e49b13d6abb..5019ddade9b 100644
> --- a/block/file-posix.c
> +++ b/block/file-posix.c
> @@ -79,7 +79,7 @@
>  #include <linux/hdreg.h>
>  #include <linux/magic.h>
>  #include <scsi/sg.h>
> -#ifdef __s390__
> +#ifdef __s390x__
>  #include <asm/dasd.h>
>  #endif
>  #ifndef FS_NOCOW_FL
> diff --git a/disas/disas-host.c b/disas/disas-host.c
> index 7cf432938e0..d41235250a0 100644
> --- a/disas/disas-host.c
> +++ b/disas/disas-host.c
> @@ -74,7 +74,7 @@ static void initialize_debug_host(CPUDebug *s)
>      s->info.print_insn = print_insn_little_mips;
>  #elif defined(__m68k__)
>      s->info.print_insn = print_insn_m68k;
> -#elif defined(__s390__)
> +#elif defined(__s390x__)
>      s->info.cap_arch = CS_ARCH_SYSZ;
>      s->info.cap_insn_unit = 2;
>      s->info.cap_insn_split = 6;
> diff --git a/util/cacheflush.c b/util/cacheflush.c
> index c043c5f881a..77440ddb478 100644
> --- a/util/cacheflush.c
> +++ b/util/cacheflush.c
> @@ -223,7 +223,7 @@ static void __attribute__((constructor))
> init_cache_info(void)
>   * Architecture (+ OS) specific cache flushing mechanisms.
>   */
>
> -#if defined(__x86_64__) || defined(__s390__)
> +#if defined(__x86_64__) || defined(__s390x__)
>
>  /* Caches are coherent and do not require flushing; symbol inline. */
>
> --
> 2.53.0
>
>

Reply via email to