Only 5 base targets use VMSTATE_UINTTL (MIPS, PPC, X86, SPARC and
RISCV). In order to build a single binary (preliminary step toward
heterogeneous emulation) we need to remove it, but it will take some
time. Add a temporary TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API
definition to keep targets not using these macros clean while we keep
cleaning the last few targets one by one, preventing legacy uses to
creep back in.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
configs/targets/i386-softmmu.mak | 1 +
configs/targets/mips-softmmu.mak | 1 +
configs/targets/mips64-softmmu.mak | 1 +
configs/targets/mips64el-softmmu.mak | 1 +
configs/targets/mipsel-softmmu.mak | 1 +
configs/targets/ppc-softmmu.mak | 1 +
configs/targets/ppc64-softmmu.mak | 1 +
configs/targets/riscv32-softmmu.mak | 1 +
configs/targets/riscv64-softmmu.mak | 1 +
configs/targets/sparc-softmmu.mak | 1 +
configs/targets/sparc64-softmmu.mak | 1 +
configs/targets/x86_64-softmmu.mak | 1 +
include/migration/cpu.h | 24 +++++++++++-------------
target/ppc/machine.c | 1 +
scripts/make-config-poison.sh | 1 +
15 files changed, 25 insertions(+), 13 deletions(-)
diff --git a/configs/targets/i386-softmmu.mak b/configs/targets/i386-softmmu.mak
index 38a8f85201f..048ae17fdc5 100644
--- a/configs/targets/i386-softmmu.mak
+++ b/configs/targets/i386-softmmu.mak
@@ -4,3 +4,4 @@ TARGET_KVM_HAVE_RESET_PARKED_VCPU=y
TARGET_XML_FILES= i386-32bit.xml
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
+TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
diff --git a/configs/targets/mips-softmmu.mak b/configs/targets/mips-softmmu.mak
index 95397af9442..81990d21880 100644
--- a/configs/targets/mips-softmmu.mak
+++ b/configs/targets/mips-softmmu.mak
@@ -2,3 +2,4 @@ TARGET_ARCH=mips
TARGET_BIG_ENDIAN=y
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
+TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
diff --git a/configs/targets/mips64-softmmu.mak b/configs/targets/mips64-softmmu.mak
index f9cc41b9ed4..2f7873af06d 100644
--- a/configs/targets/mips64-softmmu.mak
+++ b/configs/targets/mips64-softmmu.mak
@@ -3,3 +3,4 @@ TARGET_BASE_ARCH=mips
TARGET_BIG_ENDIAN=y
TARGET_LONG_BITS=64
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
+TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
diff --git a/configs/targets/mips64el-softmmu.mak b/configs/targets/mips64el-softmmu.mak
index 4e7dedc5f30..62e74f77ba5 100644
--- a/configs/targets/mips64el-softmmu.mak
+++ b/configs/targets/mips64el-softmmu.mak
@@ -2,3 +2,4 @@ TARGET_ARCH=mips64
TARGET_BASE_ARCH=mips
TARGET_LONG_BITS=64
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
+TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
diff --git a/configs/targets/mipsel-softmmu.mak b/configs/targets/mipsel-softmmu.mak
index b0fba8a9d0a..57e556b93b8 100644
--- a/configs/targets/mipsel-softmmu.mak
+++ b/configs/targets/mipsel-softmmu.mak
@@ -1,3 +1,4 @@
TARGET_ARCH=mips
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
+TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
diff --git a/configs/targets/ppc-softmmu.mak b/configs/targets/ppc-softmmu.mak
index 867898bd47c..1e28d40b440 100644
--- a/configs/targets/ppc-softmmu.mak
+++ b/configs/targets/ppc-softmmu.mak
@@ -3,3 +3,4 @@ TARGET_BIG_ENDIAN=y
TARGET_KVM_HAVE_GUEST_DEBUG=y
TARGET_XML_FILES= power-core.xml power-fpu.xml power-altivec.xml power-spe.xml
TARGET_LONG_BITS=32
+TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
diff --git a/configs/targets/ppc64-softmmu.mak b/configs/targets/ppc64-softmmu.mak
index 10d7a2681e7..8c7171f9d5e 100644
--- a/configs/targets/ppc64-softmmu.mak
+++ b/configs/targets/ppc64-softmmu.mak
@@ -6,3 +6,4 @@ TARGET_XML_FILES= power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml
# all boards require libfdt
TARGET_NEED_FDT=y
TARGET_LONG_BITS=64
+TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
diff --git a/configs/targets/riscv32-softmmu.mak b/configs/targets/riscv32-softmmu.mak
index 26080599be7..a9cd8ae89ee 100644
--- a/configs/targets/riscv32-softmmu.mak
+++ b/configs/targets/riscv32-softmmu.mak
@@ -5,3 +5,4 @@ TARGET_XML_FILES= riscv-32bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml ri
TARGET_NEED_FDT=y
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
+TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
diff --git a/configs/targets/riscv64-softmmu.mak b/configs/targets/riscv64-softmmu.mak
index 5059c550480..3f97cd6dfa5 100644
--- a/configs/targets/riscv64-softmmu.mak
+++ b/configs/targets/riscv64-softmmu.mak
@@ -6,3 +6,4 @@ TARGET_XML_FILES= riscv-64bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml ri
TARGET_NEED_FDT=y
TARGET_LONG_BITS=64
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
+TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
diff --git a/configs/targets/sparc-softmmu.mak b/configs/targets/sparc-softmmu.mak
index 126ce12abb0..0630fa54b43 100644
--- a/configs/targets/sparc-softmmu.mak
+++ b/configs/targets/sparc-softmmu.mak
@@ -4,3 +4,4 @@ TARGET_XML_FILES=sparc32-cpu.xml sparc32-fpu.xml sparc32-cp0.xml
TARGET_LONG_BITS=32
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
+TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
diff --git a/configs/targets/sparc64-softmmu.mak b/configs/targets/sparc64-softmmu.mak
index 4e621fb8e39..500db845ea9 100644
--- a/configs/targets/sparc64-softmmu.mak
+++ b/configs/targets/sparc64-softmmu.mak
@@ -5,3 +5,4 @@ TARGET_XML_FILES=sparc64-cpu.xml sparc64-fpu.xml sparc64-cp0.xml
TARGET_LONG_BITS=64
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
+TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
diff --git a/configs/targets/x86_64-softmmu.mak b/configs/targets/x86_64-softmmu.mak
index c7f8746b4f5..18b3575e4e2 100644
--- a/configs/targets/x86_64-softmmu.mak
+++ b/configs/targets/x86_64-softmmu.mak
@@ -5,3 +5,4 @@ TARGET_KVM_HAVE_RESET_PARKED_VCPU=y
TARGET_XML_FILES= i386-64bit.xml i386-64bit-apx.xml
TARGET_LONG_BITS=64
TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
+TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
diff --git a/include/migration/cpu.h b/include/migration/cpu.h
index 05a1ddde343..4c8c9c34cc8 100644
--- a/include/migration/cpu.h
+++ b/include/migration/cpu.h
@@ -3,25 +3,23 @@
#ifndef MIGRATION_CPU_H
#define MIGRATION_CPU_H
+#ifdef TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API
+
#include "exec/cpu-defs.h"
-#include "migration/qemu-file-types.h"
#include "migration/vmstate.h"
#if TARGET_LONG_BITS == 64
-#define VMSTATE_UINTTL_V(_f, _s, _v) \
- VMSTATE_UINT64_V(_f, _s, _v)
-#define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \
- VMSTATE_UINT64_ARRAY_V(_f, _s, _n, _v)
+#define VMSTATE_UINTTL(_f, _s) \
+ VMSTATE_UINT64_V(_f, _s, 0)
+#define VMSTATE_UINTTL_ARRAY(_f, _s, _n) \
+ VMSTATE_UINT64_ARRAY_V(_f, _s, _n, 0)
#else
-#define VMSTATE_UINTTL_V(_f, _s, _v) \
- VMSTATE_UINT32_V(_f, _s, _v)
-#define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \
- VMSTATE_UINT32_ARRAY_V(_f, _s, _n, _v)
+#define VMSTATE_UINTTL(_f, _s) \
+ VMSTATE_UINT32_V(_f, _s, 0)
+#define VMSTATE_UINTTL_ARRAY(_f, _s, _n) \
+ VMSTATE_UINT32_ARRAY_V(_f, _s, _n, 0)
#endif
-#define VMSTATE_UINTTL(_f, _s) \
- VMSTATE_UINTTL_V(_f, _s, 0)
-#define VMSTATE_UINTTL_ARRAY(_f, _s, _n) \
- VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, 0)
+#endif /* TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API */
#endif
diff --git a/target/ppc/machine.c b/target/ppc/machine.c
index 49cfdc6d674..f6169a128dc 100644
--- a/target/ppc/machine.c
+++ b/target/ppc/machine.c
@@ -5,6 +5,7 @@
#include "helper_regs.h"
#include "mmu-hash64.h"
#include "migration/cpu.h"
+#include "migration/qemu-file-types.h"
#include "qapi/error.h"
#include "kvm_ppc.h"
#include "power8-pmu.h"
diff --git a/scripts/make-config-poison.sh b/scripts/make-config-poison.sh
index b4d61e8bc9e..a1c5fa77d9d 100755
--- a/scripts/make-config-poison.sh
+++ b/scripts/make-config-poison.sh
@@ -12,6 +12,7 @@ exec sed -n \
-e '/CONFIG_SOFTMMU/d' \
-e '/TARGET_NOT_USING_LEGACY_LDST_PHYS_API/d' \
-e '/TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API/d' \
+ -e '/TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API/d' \
-e '/^#define / {' \
-e 's///' \
-e 's/ .*//' \
--
2.53.0
On 3/25/26 2:17 PM, Philippe Mathieu-Daudé wrote:
> Only 5 base targets use VMSTATE_UINTTL (MIPS, PPC, X86, SPARC and
> RISCV). In order to build a single binary (preliminary step toward
> heterogeneous emulation) we need to remove it, but it will take some
> time. Add a temporary TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API
> definition to keep targets not using these macros clean while we keep
> cleaning the last few targets one by one, preventing legacy uses to
> creep back in.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> configs/targets/i386-softmmu.mak | 1 +
> configs/targets/mips-softmmu.mak | 1 +
> configs/targets/mips64-softmmu.mak | 1 +
> configs/targets/mips64el-softmmu.mak | 1 +
> configs/targets/mipsel-softmmu.mak | 1 +
> configs/targets/ppc-softmmu.mak | 1 +
> configs/targets/ppc64-softmmu.mak | 1 +
> configs/targets/riscv32-softmmu.mak | 1 +
> configs/targets/riscv64-softmmu.mak | 1 +
> configs/targets/sparc-softmmu.mak | 1 +
> configs/targets/sparc64-softmmu.mak | 1 +
> configs/targets/x86_64-softmmu.mak | 1 +
> include/migration/cpu.h | 24 +++++++++++-------------
> target/ppc/machine.c | 1 +
> scripts/make-config-poison.sh | 1 +
> 15 files changed, 25 insertions(+), 13 deletions(-)
>
> diff --git a/configs/targets/i386-softmmu.mak b/configs/targets/i386-softmmu.mak
> index 38a8f85201f..048ae17fdc5 100644
> --- a/configs/targets/i386-softmmu.mak
> +++ b/configs/targets/i386-softmmu.mak
> @@ -4,3 +4,4 @@ TARGET_KVM_HAVE_RESET_PARKED_VCPU=y
> TARGET_XML_FILES= i386-32bit.xml
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> +TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
> diff --git a/configs/targets/mips-softmmu.mak b/configs/targets/mips-softmmu.mak
> index 95397af9442..81990d21880 100644
> --- a/configs/targets/mips-softmmu.mak
> +++ b/configs/targets/mips-softmmu.mak
> @@ -2,3 +2,4 @@ TARGET_ARCH=mips
> TARGET_BIG_ENDIAN=y
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> +TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
> diff --git a/configs/targets/mips64-softmmu.mak b/configs/targets/mips64-softmmu.mak
> index f9cc41b9ed4..2f7873af06d 100644
> --- a/configs/targets/mips64-softmmu.mak
> +++ b/configs/targets/mips64-softmmu.mak
> @@ -3,3 +3,4 @@ TARGET_BASE_ARCH=mips
> TARGET_BIG_ENDIAN=y
> TARGET_LONG_BITS=64
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> +TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
> diff --git a/configs/targets/mips64el-softmmu.mak b/configs/targets/mips64el-softmmu.mak
> index 4e7dedc5f30..62e74f77ba5 100644
> --- a/configs/targets/mips64el-softmmu.mak
> +++ b/configs/targets/mips64el-softmmu.mak
> @@ -2,3 +2,4 @@ TARGET_ARCH=mips64
> TARGET_BASE_ARCH=mips
> TARGET_LONG_BITS=64
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> +TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
> diff --git a/configs/targets/mipsel-softmmu.mak b/configs/targets/mipsel-softmmu.mak
> index b0fba8a9d0a..57e556b93b8 100644
> --- a/configs/targets/mipsel-softmmu.mak
> +++ b/configs/targets/mipsel-softmmu.mak
> @@ -1,3 +1,4 @@
> TARGET_ARCH=mips
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> +TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
> diff --git a/configs/targets/ppc-softmmu.mak b/configs/targets/ppc-softmmu.mak
> index 867898bd47c..1e28d40b440 100644
> --- a/configs/targets/ppc-softmmu.mak
> +++ b/configs/targets/ppc-softmmu.mak
> @@ -3,3 +3,4 @@ TARGET_BIG_ENDIAN=y
> TARGET_KVM_HAVE_GUEST_DEBUG=y
> TARGET_XML_FILES= power-core.xml power-fpu.xml power-altivec.xml power-spe.xml
> TARGET_LONG_BITS=32
> +TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
> diff --git a/configs/targets/ppc64-softmmu.mak b/configs/targets/ppc64-softmmu.mak
> index 10d7a2681e7..8c7171f9d5e 100644
> --- a/configs/targets/ppc64-softmmu.mak
> +++ b/configs/targets/ppc64-softmmu.mak
> @@ -6,3 +6,4 @@ TARGET_XML_FILES= power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml
> # all boards require libfdt
> TARGET_NEED_FDT=y
> TARGET_LONG_BITS=64
> +TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
> diff --git a/configs/targets/riscv32-softmmu.mak b/configs/targets/riscv32-softmmu.mak
> index 26080599be7..a9cd8ae89ee 100644
> --- a/configs/targets/riscv32-softmmu.mak
> +++ b/configs/targets/riscv32-softmmu.mak
> @@ -5,3 +5,4 @@ TARGET_XML_FILES= riscv-32bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml ri
> TARGET_NEED_FDT=y
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> +TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
> diff --git a/configs/targets/riscv64-softmmu.mak b/configs/targets/riscv64-softmmu.mak
> index 5059c550480..3f97cd6dfa5 100644
> --- a/configs/targets/riscv64-softmmu.mak
> +++ b/configs/targets/riscv64-softmmu.mak
> @@ -6,3 +6,4 @@ TARGET_XML_FILES= riscv-64bit-cpu.xml riscv-32bit-fpu.xml riscv-64bit-fpu.xml ri
> TARGET_NEED_FDT=y
> TARGET_LONG_BITS=64
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> +TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
> diff --git a/configs/targets/sparc-softmmu.mak b/configs/targets/sparc-softmmu.mak
> index 126ce12abb0..0630fa54b43 100644
> --- a/configs/targets/sparc-softmmu.mak
> +++ b/configs/targets/sparc-softmmu.mak
> @@ -4,3 +4,4 @@ TARGET_XML_FILES=sparc32-cpu.xml sparc32-fpu.xml sparc32-cp0.xml
> TARGET_LONG_BITS=32
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> +TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
> diff --git a/configs/targets/sparc64-softmmu.mak b/configs/targets/sparc64-softmmu.mak
> index 4e621fb8e39..500db845ea9 100644
> --- a/configs/targets/sparc64-softmmu.mak
> +++ b/configs/targets/sparc64-softmmu.mak
> @@ -5,3 +5,4 @@ TARGET_XML_FILES=sparc64-cpu.xml sparc64-fpu.xml sparc64-cp0.xml
> TARGET_LONG_BITS=64
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API=y
> +TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
> diff --git a/configs/targets/x86_64-softmmu.mak b/configs/targets/x86_64-softmmu.mak
> index c7f8746b4f5..18b3575e4e2 100644
> --- a/configs/targets/x86_64-softmmu.mak
> +++ b/configs/targets/x86_64-softmmu.mak
> @@ -5,3 +5,4 @@ TARGET_KVM_HAVE_RESET_PARKED_VCPU=y
> TARGET_XML_FILES= i386-64bit.xml i386-64bit-apx.xml
> TARGET_LONG_BITS=64
> TARGET_NOT_USING_LEGACY_LDST_PHYS_API=y
> +TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API=y
> diff --git a/include/migration/cpu.h b/include/migration/cpu.h
> index 05a1ddde343..4c8c9c34cc8 100644
> --- a/include/migration/cpu.h
> +++ b/include/migration/cpu.h
> @@ -3,25 +3,23 @@
> #ifndef MIGRATION_CPU_H
> #define MIGRATION_CPU_H
>
> +#ifdef TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API
> +
> #include "exec/cpu-defs.h"
> -#include "migration/qemu-file-types.h"
> #include "migration/vmstate.h"
>
> #if TARGET_LONG_BITS == 64
> -#define VMSTATE_UINTTL_V(_f, _s, _v) \
> - VMSTATE_UINT64_V(_f, _s, _v)
> -#define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \
> - VMSTATE_UINT64_ARRAY_V(_f, _s, _n, _v)
> +#define VMSTATE_UINTTL(_f, _s) \
> + VMSTATE_UINT64_V(_f, _s, 0)
> +#define VMSTATE_UINTTL_ARRAY(_f, _s, _n) \
> + VMSTATE_UINT64_ARRAY_V(_f, _s, _n, 0)
> #else
> -#define VMSTATE_UINTTL_V(_f, _s, _v) \
> - VMSTATE_UINT32_V(_f, _s, _v)
> -#define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \
> - VMSTATE_UINT32_ARRAY_V(_f, _s, _n, _v)
> +#define VMSTATE_UINTTL(_f, _s) \
> + VMSTATE_UINT32_V(_f, _s, 0)
> +#define VMSTATE_UINTTL_ARRAY(_f, _s, _n) \
> + VMSTATE_UINT32_ARRAY_V(_f, _s, _n, 0)
> #endif
>
> -#define VMSTATE_UINTTL(_f, _s) \
> - VMSTATE_UINTTL_V(_f, _s, 0)
> -#define VMSTATE_UINTTL_ARRAY(_f, _s, _n) \
> - VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, 0)
> +#endif /* TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API */
>
> #endif
> diff --git a/target/ppc/machine.c b/target/ppc/machine.c
> index 49cfdc6d674..f6169a128dc 100644
> --- a/target/ppc/machine.c
> +++ b/target/ppc/machine.c
> @@ -5,6 +5,7 @@
> #include "helper_regs.h"
> #include "mmu-hash64.h"
> #include "migration/cpu.h"
> +#include "migration/qemu-file-types.h"
> #include "qapi/error.h"
> #include "kvm_ppc.h"
> #include "power8-pmu.h"
> diff --git a/scripts/make-config-poison.sh b/scripts/make-config-poison.sh
> index b4d61e8bc9e..a1c5fa77d9d 100755
> --- a/scripts/make-config-poison.sh
> +++ b/scripts/make-config-poison.sh
> @@ -12,6 +12,7 @@ exec sed -n \
> -e '/CONFIG_SOFTMMU/d' \
> -e '/TARGET_NOT_USING_LEGACY_LDST_PHYS_API/d' \
> -e '/TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API/d' \
> + -e '/TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API/d' \
> -e '/^#define / {' \
> -e 's///' \
> -e 's/ .*//' \
I'm not sure it's needed to have this flag.
Indeed, it's not possible to eradicate VMSTATE_UINTTL because of
retrocompatibility, so it will never be completely removed. Thus, you
can leave it as it is and implement the hint mentioned on Patch 8, which
is retrocompatible by design.
With this, no change will be needed in target code, and only migration
and include/migration/cpu.h will need a change.
Regards,
Pierrick
On 25/3/26 22:17, Philippe Mathieu-Daudé wrote: > Only 5 base targets use VMSTATE_UINTTL (MIPS, PPC, X86, SPARC and > RISCV). In order to build a single binary (preliminary step toward > heterogeneous emulation) we need to remove it, but it will take some > time. Add a temporary TARGET_USING_LEGACY_MIGRATION_VMSTATE_UINTTL_API > definition to keep targets not using these macros clean while we keep > cleaning the last few targets one by one, preventing legacy uses to > creep back in. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > include/migration/cpu.h | 24 +++++++++++------------- > target/ppc/machine.c | 1 + > diff --git a/include/migration/cpu.h b/include/migration/cpu.h > index 05a1ddde343..4c8c9c34cc8 100644 > --- a/include/migration/cpu.h > +++ b/include/migration/cpu.h > @@ -3,25 +3,23 @@ > #ifndef MIGRATION_CPU_H > #define MIGRATION_CPU_H > > #include "exec/cpu-defs.h" > -#include "migration/qemu-file-types.h" > #include "migration/vmstate.h" > diff --git a/target/ppc/machine.c b/target/ppc/machine.c > index 49cfdc6d674..f6169a128dc 100644 > --- a/target/ppc/machine.c > +++ b/target/ppc/machine.c > @@ -5,6 +5,7 @@ > #include "helper_regs.h" > #include "mmu-hash64.h" > #include "migration/cpu.h" > +#include "migration/qemu-file-types.h" > #include "qapi/error.h" > #include "kvm_ppc.h" > #include "power8-pmu.h" Oops, this change is part of patch #6 "Inline qemu_get/put_betls()".
© 2016 - 2026 Red Hat, Inc.