Semihosting requires TCG. When configured with --disable-tcg, the build fails because the 'do_arm_semihosting' is missing. Instead of adding more few more #ifdeffery to the helper code, add a stub. Signed-off-by: Philippe Mathieu-Daudé <philmd@xxxxxxxxxx> --- target/arm/arm-semi-stub.c | 13 +++++++++++++ target/arm/Makefile.objs | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 target/arm/arm-semi-stub.c diff --git a/target/arm/arm-semi-stub.c b/target/arm/arm-semi-stub.c new file mode 100644 index 0000000000..47d042f942 --- /dev/null +++ b/target/arm/arm-semi-stub.c @@ -0,0 +1,13 @@ +/* + * Arm "Angel" semihosting syscalls stubs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#include "qemu/osdep.h" +#include "cpu.h" +#include "hw/semihosting/semihost.h" + +target_ulong do_arm_semihosting(CPUARMState *env) +{ + abort(); +} diff --git a/target/arm/Makefile.objs b/target/arm/Makefile.objs index 0c6f8c248d..fa278bb4c1 100644 --- a/target/arm/Makefile.objs +++ b/target/arm/Makefile.objs @@ -57,7 +57,8 @@ target/arm/translate.o: target/arm/decode-t16.inc.c ifeq ($(CONFIG_TCG),y) -obj-y += arm-semi.o +obj-$(CONFIG_SEMIHOSTING) += arm-semi.o +obj-$(call lnot,$(CONFIG_SEMIHOSTING)) += arm-semi-stub.o endif # CONFIG_TCG -- 2.21.1