Fam Zheng <f...@redhat.com> writes: > Compiling util/modules.c with modules enabled fails now. > > Fix it by including qemu-common.h before #ifdef testing in module.c. > > Signed-off-by: Fam Zheng <f...@redhat.com> > --- > util/module.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/util/module.c b/util/module.c > index dc08c16..863a8a3 100644 > --- a/util/module.c > +++ b/util/module.c > @@ -14,10 +14,10 @@ > */ > > #include <stdlib.h> > +#include "qemu-common.h" > #ifdef CONFIG_MODULES > #include <gmodule.h> > #endif > -#include "qemu-common.h" > #include "qemu/queue.h" > #include "qemu/module.h"
I'm not objecting to quickly fixing the build this way. However, your patch violates the rule "external headers before our own headers". The rule exists to avoid our headers messing up the external ones. I like Autoconf's convention to solve this problem: every .c includes the header generated by configure before anything else, and nothing else includes it. This ensures that all our code sees the configuration defines, and that external headers get only exposed to configuration defines, not to random other crap. Opinions?