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?

Reply via email to