Philippe Mathieu-Daudé <phi...@linaro.org> writes: > "target/foo/cpu-qom.h" can not use any target specific definitions. > > Currently "target/i386/cpu-qom.h" defines TYPE_X86_CPU depending > on the i386/x86_64 build type. This doesn't scale in a heterogeneous > context where we need to access both types concurrently. > > In order to do that, introduce the new I386_CPU / X86_64_CPU > types, both inheriting a common TYPE_X86_CPU base type. > > Keep the current "base" and "max" CPU types as 32 or 64-bit, > depending on the binary built. > > Adapt the cpu-plug-test, since the 'base' architecture is now > common to both 32/64-bit x86 targets. > > Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> > Acked-by: Richard Henderson <richard.hender...@linaro.org>
[...] > diff --git a/tests/qtest/cpu-plug-test.c b/tests/qtest/cpu-plug-test.c > index 7f5dd5f85a..97316d131f 100644 > --- a/tests/qtest/cpu-plug-test.c > +++ b/tests/qtest/cpu-plug-test.c > @@ -90,7 +90,7 @@ static void add_pc_test_case(const char *mname) > data->machine = g_strdup(mname); > data->cpu_model = "Haswell"; /* 1.3+ theoretically */ > data->device_model = g_strdup_printf("%s-%s-cpu", data->cpu_model, > - qtest_get_arch()); > + qtest_get_base_arch()); > data->sockets = 1; > data->cores = 3; > data->threads = 2; Doesn't build for me: ../tests/qtest/cpu-plug-test.c: In function ‘add_pc_test_case’: ../tests/qtest/cpu-plug-test.c:93:42: error: implicit declaration of function ‘qtest_get_base_arch’; did you mean ‘qtest_get_arch’? [-Werror=implicit-function-declaration] 93 | qtest_get_base_arch()); | ^~~~~~~~~~~~~~~~~~~ | qtest_get_arch ../tests/qtest/cpu-plug-test.c:93:42: error: nested extern declaration of ‘qtest_get_base_arch’ [-Werror=nested-externs] ../tests/qtest/cpu-plug-test.c:92:47: error: format ‘%s’ expects argument of type ‘char *’, but argument 3 has type ‘int’ [-Werror=format=] 92 | data->device_model = g_strdup_printf("%s-%s-cpu", data->cpu_model, | ~^ | | | char * | %d 93 | qtest_get_base_arch()); | ~~~~~~~~~~~~~~~~~~~~~ | | | int