disas/arm-a64.cc is careful to include only the bare minimum that it needs---qemu/osdep.h and disas/bfd.h. Unfortunately, disas/bfd.h then includes qemu-common.h, which brings in qemu/option.h and from there we get the kitchen sink.
This causes problems because for example QEMU's atomic macros conflict with C++ atomic types. But really all that bfd.h needs is the fprintf_function typedef, so replace the inclusion of qemu-common.h with qemu/fprintf-fn.h. Reported-by: Sean Bruno <sbr...@freebsd.org> Tested-by: Sean Bruno <sbr...@freebsd.org> Cc: Peter Maydell <peter.mayd...@linaro.org> Cc: Markus Armbruster <arm...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- include/disas/bfd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/disas/bfd.h b/include/disas/bfd.h index a112e9c..a87b8a1 100644 --- a/include/disas/bfd.h +++ b/include/disas/bfd.h @@ -9,7 +9,7 @@ #ifndef DIS_ASM_H #define DIS_ASM_H -#include "qemu-common.h" +#include "qemu/fprintf-fn.h" typedef void *PTR; typedef uint64_t bfd_vma; -- 1.8.3.1