qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] disas/libvixl: Protect C system header for C++ compiler


From: Thomas Huth
Subject: Re: [PATCH v2] disas/libvixl: Protect C system header for C++ compiler
Date: Mon, 17 May 2021 11:55:18 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0

On 16/05/2021 19.10, Philippe Mathieu-Daudé wrote:
When selecting an ARM target on Debian unstable, we get:

   Compiling C++ object libcommon.fa.p/disas_libvixl_vixl_utils.cc.o
   FAILED: libcommon.fa.p/disas_libvixl_vixl_utils.cc.o
   c++ -Ilibcommon.fa.p -I. -I.. [...] -o 
libcommon.fa.p/disas_libvixl_vixl_utils.cc.o -c ../disas/libvixl/vixl/utils.cc
   In file included from /home/philmd/qemu/disas/libvixl/vixl/utils.h:30,
                    from ../disas/libvixl/vixl/utils.cc:27:
   /usr/include/string.h:36:43: error: missing binary operator before token "("
      36 | #if defined __cplusplus && (__GNUC_PREREQ (4, 4) \
         |                                           ^
   /usr/include/string.h:53:62: error: missing binary operator before token "("
      53 | #if defined __USE_MISC || defined __USE_XOPEN || __GLIBC_USE (ISOC2X)
         |                                                              ^
   /usr/include/string.h:165:21: error: missing binary operator before token "("
     165 |      || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE (ISOC2X))
         |                     ^
   /usr/include/string.h:174:43: error: missing binary operator before token "("
     174 | #if defined __USE_XOPEN2K8 || __GLIBC_USE (LIB_EXT2) || __GLIBC_USE 
(ISOC2X)
         |                                           ^
   /usr/include/string.h:492:19: error: missing binary operator before token "("
     492 | #if __GNUC_PREREQ (3,4)
         |                   ^

Relevant information from the host:

   $ lsb_release -d
   Description:    Debian GNU/Linux 11 (bullseye)
   $ gcc --version
   gcc (Debian 10.2.1-6) 10.2.1 20210110
   $ dpkg -S /usr/include/string.h
   libc6-dev: /usr/include/string.h
   $ apt-cache show libc6-dev
   Package: libc6-dev
   Version: 2.31-11

Partially cherry-pick vixl commit 78973f258039f6e96 [*]:

   Refactor VIXL to use `extern` block when including C header
   that do not have a C++ counterpart.

which is similar to commit 875df03b221 ('osdep: protect qemu/osdep.h
with extern "C"').

[*] https://git.linaro.org/arm/vixl.git/commit/?id=78973f258039f6e96

Buglink: https://bugs.launchpad.net/qemu/+bug/1914870
Suggested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
  disas/libvixl/vixl/code-buffer.h |  2 +-
  disas/libvixl/vixl/globals.h     | 16 +++++++++-------
  disas/libvixl/vixl/invalset.h    |  2 +-
  disas/libvixl/vixl/platform.h    |  2 ++
  disas/libvixl/vixl/utils.h       |  2 +-
  disas/libvixl/vixl/utils.cc      |  2 +-
  6 files changed, 15 insertions(+), 11 deletions(-)

Reviewed-by: Thomas Huth <thuth@redhat.com>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]