On Wed, Apr 6, 2011 at 3:15 PM, Lluís <xscr...@gmx.net> wrote: > Stefan Hajnoczi writes: > >>> + if (len > 1) { /* skip empty lines */ >>> + line[len - 1] = '\0'; >>> + if (!st_change_trace_event_state(line, true)) { > >> The build breaks when --enable-trace-backend != simple because this >> code is outside an #ifdef CONFIG_SIMPLE_TRACE. Please add this: > >> diff --git a/simpletrace.h b/simpletrace.h >> index 8d893bd..5d9d2ec 100644 >> --- a/simpletrace.h >> +++ b/simpletrace.h >> @@ -43,6 +43,11 @@ static inline bool st_init(const char *file) >> { >> return true; >> } >> + >> +static bool st_change_trace_event_state(const char *tname, bool tstate) >> +{ >> + return true; >> +} >> #endif /* !CONFIG_SIMPLE_TRACE */ > >> #endif /* SIMPLETRACE_H */ > > Hmmm... why don't simply conditionally call st_init (put it into an > #ifdef) and remove the "#else" in simpletrace.h. > > I've looked at it and it's not called from anywhere else.
The benefit to stubbing out these functions is that callers don't have #ifdefs. And caller code is always built (i.e. syntax checked by the parser) so it helps avoid bitrot. vl.c:main() is already a long and ugly function so it would be nice to avoid #ifdefs there. > This also reminds me that I didn't see any "-trace" option parsing in > the OS-specific frontends (at least in linux-user). User emulation does not have any way to control simpletrace today. Stefan