qemu-arm
[Top][All Lists]
Advanced

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

Re: [Qemu-arm] [PATCH] disas/libvixl: Suppress gcc 4.6.3 sign-compare wa


From: Alex Bennée
Subject: Re: [Qemu-arm] [PATCH] disas/libvixl: Suppress gcc 4.6.3 sign-compare warnings
Date: Tue, 12 Jan 2016 16:35:32 +0000
User-agent: mu4e 0.9.15; emacs 25.0.50.1

Peter Maydell <address@hidden> writes:

> 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 <address@hidden>
> ---
> I had mistakenly thought these warnings only happened with
> the totally ancient mingw gcc, but it turns out they're a
> bit more widespread. In particular this is causing our
> Travis builds to fail:
>   https://travis-ci.org/qemu/qemu/jobs/101813358
>
> If somebody could review this then I'll apply it to master
> as a buildfix.

Reviewed-by: Alex Bennée <address@hidden>

> ---
>  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 8dae4da..abeba84 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 e373cf0..d1e801a 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)


--
Alex Bennée



reply via email to

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