What I did notice is that all the code that directly or indirectly uses the functions is under an
if (0) (
)
since tcg_enabled is the constant 0.
By "indirectly" I mean that the static void qemu_tcg_cpu_thread_fn() function that calls those is referenced only by static void qemu_tcg_init_vcpu(), which is called only under an if (0),
ie if (tcg_enabled()).
Maybe my compiler is older.
I admit I am not familiar with the rationale of why the stubs are all built regardless, could we have that icount.o from stubs/ is replacing softmmu/icount.o to cause this?
No, stubs are in a static library and therefore are always overridden by symbols in the executable's .o files.
Paolo