Message ID | 20210320041854.68668-1-gshan@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] disas/arm-a64.cc: Fix build error | expand |
On Sat, Mar 20, 2021 at 12:18:54PM +0800, Gavin Shan wrote: > This fixes the following build error with gcc v11.0.0: > > # gcc --version > gcc (GCC) 11.0.0 20210210 (Red Hat 11.0.0-0) > > [969/2604] Compiling C++ object libcommon.fa.p/disas_arm-a64.cc.o > FAILED: libcommon.fa.p/disas_arm-a64.cc.o > : > In file included from /usr/include/glib-2.0/glib/gmacros.h:241, > from /usr/lib64/glib-2.0/include/glibconfig.h:9, > from /usr/include/glib-2.0/glib/gtypes.h:32, > from /usr/include/glib-2.0/glib/galloca.h:32, > from /usr/include/glib-2.0/glib.h:30, > from /home/gavin/sandbox/qemu.main/include/glib-compat.h:32, > from /home/gavin/sandbox/qemu.main/include/qemu/osdep.h:126, > from ../disas/arm-a64.cc:21: > /usr/include/c++/11/type_traits:56:3: error: template with C linkage > 56 | template<typename _Tp, _Tp __v> > | ^~~~~~~~ > ../disas/arm-a64.cc:20:1: note: ‘extern "C"’ linkage started here > 20 | extern "C" { > | ^~~~~~~~~~ > > Signed-off-by: Gavin Shan <gshan@redhat.com> > --- > disas/arm-a64.cc | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/disas/arm-a64.cc b/disas/arm-a64.cc > index 9fa779e175..8545c04038 100644 > --- a/disas/arm-a64.cc > +++ b/disas/arm-a64.cc > @@ -17,13 +17,13 @@ > * along with this program. If not, see <http://www.gnu.org/licenses/>. > */ > > +#include "vixl/a64/disasm-a64.h" > + > extern "C" { > #include "qemu/osdep.h" > #include "disas/dis-asm.h" > } > > -#include "vixl/a64/disasm-a64.h" > - > using namespace vixl; > > static Decoder *vixl_decoder = NULL; > -- > 2.23.0 > > This error occurs when c++ compiler is used. With the fix, build pass. Reviewed-by: Miroslav Rezanina <mrezanin@redhat.com>
+Christian for https://www.mail-archive.com/qemu-devel@nongnu.org/msg785090.html On 3/20/21 5:18 AM, Gavin Shan wrote: > This fixes the following build error with gcc v11.0.0: > > # gcc --version > gcc (GCC) 11.0.0 20210210 (Red Hat 11.0.0-0) > > [969/2604] Compiling C++ object libcommon.fa.p/disas_arm-a64.cc.o > FAILED: libcommon.fa.p/disas_arm-a64.cc.o > : > In file included from /usr/include/glib-2.0/glib/gmacros.h:241, > from /usr/lib64/glib-2.0/include/glibconfig.h:9, > from /usr/include/glib-2.0/glib/gtypes.h:32, > from /usr/include/glib-2.0/glib/galloca.h:32, > from /usr/include/glib-2.0/glib.h:30, > from /home/gavin/sandbox/qemu.main/include/glib-compat.h:32, > from /home/gavin/sandbox/qemu.main/include/qemu/osdep.h:126, > from ../disas/arm-a64.cc:21: > /usr/include/c++/11/type_traits:56:3: error: template with C linkage > 56 | template<typename _Tp, _Tp __v> > | ^~~~~~~~ > ../disas/arm-a64.cc:20:1: note: ‘extern "C"’ linkage started here > 20 | extern "C" { > | ^~~~~~~~~~ > > Signed-off-by: Gavin Shan <gshan@redhat.com> > --- > disas/arm-a64.cc | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/disas/arm-a64.cc b/disas/arm-a64.cc > index 9fa779e175..8545c04038 100644 > --- a/disas/arm-a64.cc > +++ b/disas/arm-a64.cc > @@ -17,13 +17,13 @@ > * along with this program. If not, see <http://www.gnu.org/licenses/>. > */ > > +#include "vixl/a64/disasm-a64.h" > + > extern "C" { > #include "qemu/osdep.h" > #include "disas/dis-asm.h" > } > > -#include "vixl/a64/disasm-a64.h" > - > using namespace vixl; > > static Decoder *vixl_decoder = NULL; >
Still worth 6.0 IMO. On 3/20/21 5:18 AM, Gavin Shan wrote: > This fixes the following build error with gcc v11.0.0: > > # gcc --version > gcc (GCC) 11.0.0 20210210 (Red Hat 11.0.0-0) > > [969/2604] Compiling C++ object libcommon.fa.p/disas_arm-a64.cc.o > FAILED: libcommon.fa.p/disas_arm-a64.cc.o > : > In file included from /usr/include/glib-2.0/glib/gmacros.h:241, > from /usr/lib64/glib-2.0/include/glibconfig.h:9, > from /usr/include/glib-2.0/glib/gtypes.h:32, > from /usr/include/glib-2.0/glib/galloca.h:32, > from /usr/include/glib-2.0/glib.h:30, > from /home/gavin/sandbox/qemu.main/include/glib-compat.h:32, > from /home/gavin/sandbox/qemu.main/include/qemu/osdep.h:126, > from ../disas/arm-a64.cc:21: > /usr/include/c++/11/type_traits:56:3: error: template with C linkage > 56 | template<typename _Tp, _Tp __v> > | ^~~~~~~~ > ../disas/arm-a64.cc:20:1: note: ‘extern "C"’ linkage started here > 20 | extern "C" { > | ^~~~~~~~~~ +Kamil & Eric for: https://lists.nongnu.org/archive/html/qemu-devel/2017-05/msg03321.html https://www.mail-archive.com/qemu-devel@nongnu.org/msg450478.html > > Signed-off-by: Gavin Shan <gshan@redhat.com> > --- > disas/arm-a64.cc | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/disas/arm-a64.cc b/disas/arm-a64.cc > index 9fa779e175..8545c04038 100644 > --- a/disas/arm-a64.cc > +++ b/disas/arm-a64.cc > @@ -17,13 +17,13 @@ > * along with this program. If not, see <http://www.gnu.org/licenses/>. > */ > > +#include "vixl/a64/disasm-a64.h" > + > extern "C" { > #include "qemu/osdep.h" > #include "disas/dis-asm.h" > } > > -#include "vixl/a64/disasm-a64.h" > - > using namespace vixl; > > static Decoder *vixl_decoder = NULL; >
diff --git a/disas/arm-a64.cc b/disas/arm-a64.cc index 9fa779e175..8545c04038 100644 --- a/disas/arm-a64.cc +++ b/disas/arm-a64.cc @@ -17,13 +17,13 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include "vixl/a64/disasm-a64.h" + extern "C" { #include "qemu/osdep.h" #include "disas/dis-asm.h" } -#include "vixl/a64/disasm-a64.h" - using namespace vixl; static Decoder *vixl_decoder = NULL;
This fixes the following build error with gcc v11.0.0: # gcc --version gcc (GCC) 11.0.0 20210210 (Red Hat 11.0.0-0) [969/2604] Compiling C++ object libcommon.fa.p/disas_arm-a64.cc.o FAILED: libcommon.fa.p/disas_arm-a64.cc.o : In file included from /usr/include/glib-2.0/glib/gmacros.h:241, from /usr/lib64/glib-2.0/include/glibconfig.h:9, from /usr/include/glib-2.0/glib/gtypes.h:32, from /usr/include/glib-2.0/glib/galloca.h:32, from /usr/include/glib-2.0/glib.h:30, from /home/gavin/sandbox/qemu.main/include/glib-compat.h:32, from /home/gavin/sandbox/qemu.main/include/qemu/osdep.h:126, from ../disas/arm-a64.cc:21: /usr/include/c++/11/type_traits:56:3: error: template with C linkage 56 | template<typename _Tp, _Tp __v> | ^~~~~~~~ ../disas/arm-a64.cc:20:1: note: ‘extern "C"’ linkage started here 20 | extern "C" { | ^~~~~~~~~~ Signed-off-by: Gavin Shan <gshan@redhat.com> --- disas/arm-a64.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)