Just to clarify, this is for 6.0. On Tue, 1 Dec 2020 14:11:03 +0100 Greg Kurz <gr...@kaod.org> wrote:
> This property has been deprecated since QEMU 5.0 by commit 22062e54bb68. > We only kept a legacy hack that internally converts "compat" into the > official "max-cpu-compat" property of the pseries machine type. > > According to our deprecation policy, we could have removed it for QEMU 5.2 > already. Do it now ; since ppc_cpu_parse_featurestr() now just calls the > generic parent_parse_features handler, drop it as well. > > Users are supposed to use the "max-cpu-compat" property of the pseries > machine type instead. > > Signed-off-by: Greg Kurz <gr...@kaod.org> > --- > docs/system/deprecated.rst | 7 ---- > target/ppc/translate_init.c.inc | 59 --------------------------------- > 2 files changed, 66 deletions(-) > > diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst > index 565389697e84..09c8f380bc82 100644 > --- a/docs/system/deprecated.rst > +++ b/docs/system/deprecated.rst > @@ -281,13 +281,6 @@ a future version of QEMU. It's unclear whether anybody > is still using > CPU emulation in QEMU, and there are no test images available to make > sure that the code is still working. > > -``compat`` property of server class POWER CPUs (since 5.0) > -'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' > - > -The ``compat`` property used to set backwards compatibility modes for > -the processor has been deprecated. The ``max-cpu-compat`` property of > -the ``pseries`` machine type should be used instead. > - > ``lm32`` CPUs (since 5.2.0) > ''''''''''''''''''''''''''' > > diff --git a/target/ppc/translate_init.c.inc b/target/ppc/translate_init.c.inc > index 78cc8f043b92..e4082cfde746 100644 > --- a/target/ppc/translate_init.c.inc > +++ b/target/ppc/translate_init.c.inc > @@ -10470,63 +10470,6 @@ static ObjectClass *ppc_cpu_class_by_name(const char > *name) > return oc; > } > > -static void ppc_cpu_parse_featurestr(const char *type, char *features, > - Error **errp) > -{ > - Object *machine = qdev_get_machine(); > - const PowerPCCPUClass *pcc = > POWERPC_CPU_CLASS(object_class_by_name(type)); > - > - if (!features) { > - return; > - } > - > - if (object_property_find(machine, "max-cpu-compat")) { > - int i; > - char **inpieces; > - char *s = features; > - Error *local_err = NULL; > - char *compat_str = NULL; > - > - /* > - * Backwards compatibility hack: > - * > - * CPUs had a "compat=" property which didn't make sense for > - * anything except pseries. It was replaced by "max-cpu-compat" > - * machine option. This supports old command lines like > - * -cpu POWER8,compat=power7 > - * By stripping the compat option and applying it to the machine > - * before passing it on to the cpu level parser. > - */ > - inpieces = g_strsplit(features, ",", 0); > - *s = '\0'; > - for (i = 0; inpieces[i]; i++) { > - if (g_str_has_prefix(inpieces[i], "compat=")) { > - warn_report_once("CPU 'compat' property is deprecated; " > - "use max-cpu-compat machine property instead"); > - compat_str = inpieces[i]; > - continue; > - } > - if ((i != 0) && (s != features)) { > - s = g_stpcpy(s, ","); > - } > - s = g_stpcpy(s, inpieces[i]); > - } > - > - if (compat_str) { > - char *v = compat_str + strlen("compat="); > - object_property_set_str(machine, "max-cpu-compat", v, > &local_err); > - } > - g_strfreev(inpieces); > - if (local_err) { > - error_propagate(errp, local_err); > - return; > - } > - } > - > - /* do property processing with generic handler */ > - pcc->parent_parse_features(type, features, errp); > -} > - > PowerPCCPUClass *ppc_cpu_get_family_class(PowerPCCPUClass *pcc) > { > ObjectClass *oc = OBJECT_CLASS(pcc); > @@ -10905,8 +10848,6 @@ static void ppc_cpu_class_init(ObjectClass *oc, void > *data) > device_class_set_parent_reset(dc, ppc_cpu_reset, &pcc->parent_reset); > > cc->class_by_name = ppc_cpu_class_by_name; > - pcc->parent_parse_features = cc->parse_features; > - cc->parse_features = ppc_cpu_parse_featurestr; > cc->has_work = ppc_cpu_has_work; > cc->do_interrupt = ppc_cpu_do_interrupt; > cc->cpu_exec_interrupt = ppc_cpu_exec_interrupt;