On 20/10/2016 12:41, Dr. David Alan Gilbert wrote: > * Paolo Bonzini (pbonz...@redhat.com) wrote: >> >> >> On 18/10/2016 11:54, Dr. David Alan Gilbert wrote: >>> I've not quite figured it out but we're linked against the stubs/ monitor >>> code rather than the real monitor code; and the stubs monitor_vprintf >>> discards >>> and the stubs monitor_cur_is_qmp() always returns false, so to silence >>> things >>> we just have to make cur_mon non-NULL. >>> Unfortunately cur_mon is of type Monitor * and Monitor isn't defined >>> publicly, >>> so we can't know it's size. The following evil hack does silence things >>> for anyone desperate, but I do need to find a neater way; perhaps the right >>> thing is just to link against monitor and create a dummy "null" chardev as >>> you >>> say. >> >> If error_printf/error_vprintf are to a separate file, then stubs/ can be >> changed to use vfprintf unconditionally. > > Moving code out of util/qemu-error.c just so they can be stubbed separately > seems a little odd.
Why? It is part of how static libraries work, and allowing fine-grained inclusion is the reason why libqemustub.a and libqemuutil.a are static libraries. Paolo >> And then I wonder what we actually use cur_mon for, perhaps with this >> change we can remove stubs/mon*. > > I've just posted a slightly cleaner version of that nasty hack that gives > a value to assign to cur_mon. > > Dave > >> Paolo > -- > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK >