Skip to content
  • Paolo Bonzini's avatar
    875df03b
    osdep: protect qemu/osdep.h with extern "C" · 875df03b
    Paolo Bonzini authored
    
    
    System headers may include templates if compiled with a C++ compiler,
    which cause the compiler to complain if qemu/osdep.h is included
    within a C++ source file's 'extern "C"' block.  Add
    an 'extern "C"' block directly to qemu/osdep.h, so that
    system headers can be kept out of it.
    
    There is a stray declaration early in qemu/osdep.h, which needs
    to be special cased.  Add a definition in qemu/compiler.h to
    make it look nice.
    
    config-host.h, CONFIG_TARGET, exec/poison.h and qemu/compiler.h
    are included outside the 'extern "C"' block; that is not
    an issue because they consist entirely of preprocessor directives.
    
    This allows us to move the include of osdep.h in our two C++
    source files outside the extern "C" block they were previously
    using for it, which in turn means that they compile successfully
    against newer versions of glib which insist that glib.h is
    *not* inside an extern "C" block.
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Reviewed-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
    Acked-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
    Message-id: 20210416135543.20382-3-peter.maydell@linaro.org
    [PMM: Moved disas/arm-a64.cc osdep.h include out of its extern "C" block;
     explained in commit message why we're doing this]
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    875df03b
    osdep: protect qemu/osdep.h with extern "C"
    Paolo Bonzini authored
    
    
    System headers may include templates if compiled with a C++ compiler,
    which cause the compiler to complain if qemu/osdep.h is included
    within a C++ source file's 'extern "C"' block.  Add
    an 'extern "C"' block directly to qemu/osdep.h, so that
    system headers can be kept out of it.
    
    There is a stray declaration early in qemu/osdep.h, which needs
    to be special cased.  Add a definition in qemu/compiler.h to
    make it look nice.
    
    config-host.h, CONFIG_TARGET, exec/poison.h and qemu/compiler.h
    are included outside the 'extern "C"' block; that is not
    an issue because they consist entirely of preprocessor directives.
    
    This allows us to move the include of osdep.h in our two C++
    source files outside the extern "C" block they were previously
    using for it, which in turn means that they compile successfully
    against newer versions of glib which insist that glib.h is
    *not* inside an extern "C" block.
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Reviewed-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
    Acked-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarRichard Henderson <richard.henderson@linaro.org>
    Message-id: 20210416135543.20382-3-peter.maydell@linaro.org
    [PMM: Moved disas/arm-a64.cc osdep.h include out of its extern "C" block;
     explained in commit message why we're doing this]
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Loading