From 8acc216b956f30c140520c6c3aff5edcfde16ea6 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Tue, 12 Jan 2016 13:10:04 +0000 Subject: disas/libvixl: Suppress gcc 4.6.3 sign-compare warnings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The VIXL code includes some equality comparisons between signed and unsigned types. Modern gcc and clang do not complain about these, but older versions of gcc such as gcc 4.6.3 do. Since libvixl is an upstream library, the simplest approach is to suppress the warnings by applying -Wno-sign-compare to the relevant files. (GCC 4.6 is not quite yet irrelevant for us; it is the gcc shipped with Ubuntu Precise, for example, which is an LTS release not yet out of its support period.) Signed-off-by: Peter Maydell Message-id: 1452604204-27202-1-git-send-email-peter.maydell@linaro.org Reviewed-by: Alex Bennée --- disas/Makefile.objs | 5 ++++- disas/libvixl/Makefile.objs | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/disas/Makefile.objs b/disas/Makefile.objs index 8dae4daec0..abeba84661 100644 --- a/disas/Makefile.objs +++ b/disas/Makefile.objs @@ -4,7 +4,10 @@ common-obj-$(CONFIG_ARM_DIS) += arm.o common-obj-$(CONFIG_ARM_A64_DIS) += arm-a64.o common-obj-$(CONFIG_ARM_A64_DIS) += libvixl/ libvixldir = $(SRC_PATH)/disas/libvixl -arm-a64.o-cflags := -I$(libvixldir) +# The -Wno-sign-compare is needed only for gcc 4.6, which complains about +# some signed-unsigned equality comparisons in libvixl which later gcc +# versions do not. +arm-a64.o-cflags := -I$(libvixldir) -Wno-sign-compare common-obj-$(CONFIG_CRIS_DIS) += cris.o common-obj-$(CONFIG_HPPA_DIS) += hppa.o common-obj-$(CONFIG_I386_DIS) += i386.o diff --git a/disas/libvixl/Makefile.objs b/disas/libvixl/Makefile.objs index e373cf02d3..d1e801a1e9 100644 --- a/disas/libvixl/Makefile.objs +++ b/disas/libvixl/Makefile.objs @@ -4,6 +4,8 @@ libvixl_OBJS = vixl/utils.o \ vixl/a64/decoder-a64.o \ vixl/a64/disasm-a64.o -$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS := -I$(SRC_PATH)/disas/libvixl $(QEMU_CFLAGS) +# The -Wno-sign-compare is needed only for gcc 4.6, which complains about +# some signed-unsigned equality comparisons which later gcc versions do not. +$(addprefix $(obj)/,$(libvixl_OBJS)): QEMU_CFLAGS := -I$(SRC_PATH)/disas/libvixl -Wno-sign-compare $(QEMU_CFLAGS) common-obj-$(CONFIG_ARM_A64_DIS) += $(libvixl_OBJS) -- cgit v1.2.3