Philippe Mathieu-Daudé <phi...@linaro.org> writes: > On 22/3/23 15:29, Philippe Mathieu-Daudé wrote: >> Fix when building QEMU configured with --disable-tcg: >> >> Undefined symbols for architecture arm64: >> "_arm_v7m_get_sp_ptr", referenced from: >> _m_sysreg_get in target_arm_gdbstub.c.o >> "_arm_v7m_mrs_control", referenced from: >> _arm_gdb_get_m_systemreg in target_arm_gdbstub.c.o >> "_pauth_ptr_mask", referenced from: >> _aarch64_gdb_get_pauth_reg in target_arm_gdbstub64.c.o >> ld: symbol(s) not found for architecture arm64 >> clang: error: linker command failed with exit code 1 (use -v to see >> invocation) > > Beside having the non-TCG configs tested in CI, (I think) we can avoid > such breakage by moving the TCG-specific declarations from > target/arm/internals.h to some target/arm/tcg/tcg-internals.h header. > (target/arm/internals.h is 1400+ LoC anyway). Worth it?
I think it would be worth it. That still leaves the issue of these small functions that are semantically related to what is being emulated but don't need any TCG-specific symbols. It would be nice if we had a default approach for where to put them. Without going back to sticking everything in helper.c, of course. =)