On Sat, Feb 11, 2023 at 4:19 PM Richard Henderson < richard.hender...@linaro.org> wrote:
> On 2/10/23 13:18, Warner Losh wrote: > > Most of the time, it's useful to make our best effort, but sometimes we > > want to know right away when we don't implement something. First place > > we use it is for unknown syscalls. > > > > Signed-off-by: Warner Losh <i...@bsdimp.com> > > --- > > bsd-user/freebsd/os-syscall.c | 4 ++++ > > bsd-user/main.c | 5 ++++- > > bsd-user/qemu.h | 1 + > > 3 files changed, 9 insertions(+), 1 deletion(-) > > > > diff --git a/bsd-user/freebsd/os-syscall.c > b/bsd-user/freebsd/os-syscall.c > > index 179a20c304b..e2b26ecb8dd 100644 > > --- a/bsd-user/freebsd/os-syscall.c > > +++ b/bsd-user/freebsd/os-syscall.c > > @@ -508,6 +508,10 @@ static abi_long freebsd_syscall(void *cpu_env, int > num, abi_long arg1, > > > > default: > > qemu_log_mask(LOG_UNIMP, "Unsupported syscall: %d\n", num); > > + if (bsd_user_strict) { > > + printf("Unimplemented system call %d\n", num); > > + abort(); > > + } > > I don't like the raw printf, even if you did write to stderr. > Perhaps just the abort, letting the error message be handled by qemu_log? > > > @@ -396,6 +397,8 @@ int main(int argc, char **argv) > > trace_opt_parse(optarg); > > } else if (!strcmp(r, "0")) { > > argv0 = argv[optind++]; > > + } else if (!strcmp(r, "strict")) { > > + bsd_user_strict = true; > > Perhaps force LOG_UNIMP? Without -D, you'll get the qemu_log above to > stderr. > Given the number of other changes in the other bits, I'm going to defer this feedback until round 3, since the number of changes I've made for round 2 means there will almost certainly result in a round 3... Warner