[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 3/4] configure: silence glib unknown attribut
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v2 3/4] configure: silence glib unknown attribute __alloc_size__ |
Date: |
Wed, 18 Mar 2015 22:55:39 +0000 |
On 18 March 2015 at 22:43, John Snow <address@hidden> wrote:
> v2: We must test compilation with the right glib flags,
> otherwise the test compile will always fail.
> In addition, test-compile the warning flag to make
> sure we can use it.
>
> The glib headers use GCC attributes. Unfortunately the __GNUC__ and
> __GNUC_MINOR__ version macros are also defined by clang, but clang
> doesn't support the same attributes as GCC.
>
> clang 3.5.0 does not support the __alloc_size__ attribute:
>
>
> https://github.com/llvm-mirror/clang/commit/c047507a9a79e89fc8339e074fa72822a7e7ea73
>
> The following warning is produced:
>
> gstrfuncs.h:257:44: warning: unknown attribute '__alloc_size__' ignored
> [-Wunknown-attributes]
> G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(2);
> gmacros.h:67:45: note: expanded from macro 'G_GNUC_ALLOC_SIZE'
> #define G_GNUC_ALLOC_SIZE(x)
> __attribute__((__alloc_size__(x)))
>
> This patch checks whether glib headers cause warnings and disables
> -Wunknown-attributes if that is the case.
Is it worth factoring out the body of the "see if we support
this long list of gcc warning flags?" check into a function?
cc_has_warning_flag () {
# Use the positive sense of the flag when testing for -Wno-wombat
# support (gcc will happily accept the -Wno- form of unknown
# warning options).
optflag="$(echo $flag | sed -e 's/^-Wno-/-W/')"
compile_prog "-Werror $optflag" ""
}
and then
for flag in $gcc_flags; do
if cc_has_warning_flag $flag
QEMU_CFLAGS="$QEMU_CFLAGS $flag"
fi
done
where we currently inline that sed/compile_prog. (Untested :-))
-- PMM