This series makes semihosting config.c and console.c target agnostic, building them once, removing symbol collision of the following functions in the single binary:
- qemu_semihosting_chardev_init - qemu_semihosting_config_options - qemu_semihosting_config_opts - qemu_semihosting_enable - semihosting_arg_fallback - semihosting_enabled - semihosting_get_argc - semihosting_get_target This function is still problematic, being built for each target: - qemu_semihosting_guestfd_init Note, it depends on CONFIG_ARM_COMPATIBLE_SEMIHOSTING which is target specific, so doesn't scale in a heterogeneous setup like the ZynqMP machine, having ARM cores with CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y and MicroBlaze ones with CONFIG_ARM_COMPATIBLE_SEMIHOSTING=n. I suppose the semihosting API needs rework to consider the CPUClass? I'll let that investigation for the maintainer ;) Regards, Phil. Philippe Mathieu-Daudé (5): semihosting/syscalls: Include missing 'exec/cpu-defs.h' header semihosting/uaccess: Include missing 'exec/cpu-all.h' header semihosting/arm-compat: Include missing 'cpu.h' header semihosting/console: Avoid including 'cpu.h' semihosting/meson: Build config.o and console.o once include/semihosting/console.h | 2 -- include/semihosting/syscalls.h | 1 + semihosting/arm-compat-semi.c | 1 + semihosting/console.c | 3 ++- semihosting/uaccess.c | 1 + semihosting/meson.build | 9 ++++++--- 6 files changed, 11 insertions(+), 6 deletions(-) -- 2.47.1