On 5/15/26 19:00, Pierrick Bouvier wrote:
On 5/15/2026 9:29 AM, Cédric Le Goater wrote:
On 5/15/26 16:10, Philippe Mathieu-Daudé wrote:
aspeed_ast27x0.c models 2 similar SoC based on a 64-bit only
CPU (Cortex-A35), only available in the 64-bit binary.

If we build this file as common object, these SoCs become
available in both 32 and 64-bit binaries; however when running
the introspection test on the 32-bit binary, the init() method
tries to init the Cortex-A35 type -- although not realizing it
-- which is not available. This can be avoided by deferring the
CPU type initialization to the SoC DeviceRealize step (this is
safe because nothing uses the CPU type before, only the GIC
access them, just after their realization).

I understand this is a qtest workaround. Could we introduce
instead a (qtest_enabled() && 32-bit binary) helper ?


In general, it exposes a dependency issue in QOM type system.
In this case, we get a class depending on another one through
class_init. Moving this to realize seems like the best fix.

My feeling is that this goes against the best modeling practices
we have tried to put in place over the last decade.

C.


Reply via email to