On 9 June 2014 16:23, Stefan Hajnoczi <stefa...@redhat.com> wrote: > From: LluĂs Vilanova <vilan...@ac.upc.edu> > > Adds support to compile QEMU with multiple tracing backends at the same time. > > For example, you can compile QEMU with: > > $ ./configure --enable-trace-backends=ftrace,dtrace > > Where 'ftrace' can be handy for having an in-flight record of events, and > 'dtrace' can be later used to extract more information from the system. > > This patch allows having both available without recompiling QEMU.
Hi. This patch causes QEMU to fail to do a rebuild unless you do a distclean, because: * the trace headers are in GENERATED_HEADERS, and so Makefile depends on them * this means that when Make does its "is any makefile or include out of date and needing a rebuild?" check, as well as possibly running configure (to update config-host.mak) it will also rebuild GENERATED_HEADERS under the "old" config-host.mak regime * if you run the new trace header rules with an old config-host.mak then the tracetool script will barf (printing its usage message) because it has been passed an empty string for the list of backends. Paolo suggested that adding $(GENERATED_HEADERS): config-host.mak to the makefile might fix this. Unfortunately it doesn't help much, because although it ensures that configure gets run first, make won't reread any of its files (including config-host.mak) until it has rebuilt all of them, so we still run the header rules with the old config-host.mak. It does mean that configure gets run first, so you can guarantee that manually rerunning make will work (without the dependency then the headers might get built first and fail before make gets round to running configure). thanks -- PMM