* [Qemu-devel] [PATCH 0/2] configure: clang 3.5.0 build fixes
@ 2015-03-10 12:23 Stefan Hajnoczi
2015-03-10 12:23 ` [Qemu-devel] [PATCH 1/2] configure: handle clang -nopie argument warning Stefan Hajnoczi
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Stefan Hajnoczi @ 2015-03-10 12:23 UTC (permalink / raw)
To: qemu-devel; +Cc: Kevin Wolf, Peter Maydell, Stefan Hajnoczi, Stefan Weil
QEMU does not compile cleanly under clang 3.5.0. These patches eliminate the
avalanche of warnings and make the build usable.
Stefan Hajnoczi (2):
configure: handle clang -nopie argument warning
configure: silence glib unknown attribute __alloc_size__
configure | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
--
2.1.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 1/2] configure: handle clang -nopie argument warning
2015-03-10 12:23 [Qemu-devel] [PATCH 0/2] configure: clang 3.5.0 build fixes Stefan Hajnoczi
@ 2015-03-10 12:23 ` Stefan Hajnoczi
2015-03-10 17:10 ` John Snow
2015-03-10 12:23 ` [Qemu-devel] [PATCH 2/2] configure: silence glib unknown attribute __alloc_size__ Stefan Hajnoczi
2015-03-12 13:29 ` [Qemu-devel] [PATCH 0/2] configure: clang 3.5.0 build fixes Stefan Hajnoczi
2 siblings, 1 reply; 6+ messages in thread
From: Stefan Hajnoczi @ 2015-03-10 12:23 UTC (permalink / raw)
To: qemu-devel; +Cc: Kevin Wolf, Peter Maydell, Stefan Hajnoczi, Stefan Weil
gcc 4.9.2 treats -nopie as an error:
cc: error: unrecognized command line option ‘-nopie’
clang 3.5.0 treats -nopie as a warning:
clang: warning: argument unused during compilation: '-nopie'
The causes ./configure to fail with clang:
ERROR: configure test passed without -Werror but failed with -Werror.
Make the -nopie test use -Werror so that compile_prog works for both gcc
and clang.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure b/configure
index 7ba4bcb..4f9f689 100755
--- a/configure
+++ b/configure
@@ -1589,7 +1589,7 @@ EOF
fi
fi
- if compile_prog "-fno-pie" "-nopie"; then
+ if compile_prog "-Werror -fno-pie" "-nopie"; then
CFLAGS_NOPIE="-fno-pie"
LDFLAGS_NOPIE="-nopie"
fi
--
2.1.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] configure: handle clang -nopie argument warning
2015-03-10 12:23 ` [Qemu-devel] [PATCH 1/2] configure: handle clang -nopie argument warning Stefan Hajnoczi
@ 2015-03-10 17:10 ` John Snow
0 siblings, 0 replies; 6+ messages in thread
From: John Snow @ 2015-03-10 17:10 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Kevin Wolf, Peter Maydell, Stefan Weil
On 03/10/2015 08:23 AM, Stefan Hajnoczi wrote:
> gcc 4.9.2 treats -nopie as an error:
>
> cc: error: unrecognized command line option ‘-nopie’
>
> clang 3.5.0 treats -nopie as a warning:
>
> clang: warning: argument unused during compilation: '-nopie'
>
> The causes ./configure to fail with clang:
>
> ERROR: configure test passed without -Werror but failed with -Werror.
>
> Make the -nopie test use -Werror so that compile_prog works for both gcc
> and clang.
>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> configure | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index 7ba4bcb..4f9f689 100755
> --- a/configure
> +++ b/configure
> @@ -1589,7 +1589,7 @@ EOF
> fi
> fi
>
> - if compile_prog "-fno-pie" "-nopie"; then
> + if compile_prog "-Werror -fno-pie" "-nopie"; then
> CFLAGS_NOPIE="-fno-pie"
> LDFLAGS_NOPIE="-nopie"
> fi
>
Oh, clang doesn't support -nopie but doesn't fail, so we have to force
it to in order to get proper configuration.
Makes sense.
Reviewed-by: John Snow <jsnow@redhat.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 2/2] configure: silence glib unknown attribute __alloc_size__
2015-03-10 12:23 [Qemu-devel] [PATCH 0/2] configure: clang 3.5.0 build fixes Stefan Hajnoczi
2015-03-10 12:23 ` [Qemu-devel] [PATCH 1/2] configure: handle clang -nopie argument warning Stefan Hajnoczi
@ 2015-03-10 12:23 ` Stefan Hajnoczi
2015-03-10 17:12 ` John Snow
2015-03-12 13:29 ` [Qemu-devel] [PATCH 0/2] configure: clang 3.5.0 build fixes Stefan Hajnoczi
2 siblings, 1 reply; 6+ messages in thread
From: Stefan Hajnoczi @ 2015-03-10 12:23 UTC (permalink / raw)
To: qemu-devel; +Cc: Kevin Wolf, Peter Maydell, Stefan Hajnoczi, Stefan Weil
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.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
configure | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/configure b/configure
index 4f9f689..00740ad 100755
--- a/configure
+++ b/configure
@@ -2773,6 +2773,16 @@ if ! $pkg_config --atleast-version=2.38 glib-2.0; then
glib_subprocess=no
fi
+# Silence clang 3.5.0 warnings about glib attribute __alloc_size__ usage
+cat > $TMPC << EOF
+#include <glib.h>
+int main(void) { return 0; }
+EOF
+if ! compile_prog "-Werror" "" ; then
+ glib_cflags="-Wno-unknown-attributes $glib_cflags"
+ CFLAGS="-Wno-unknown-attributes $CFLAGS"
+fi
+
##########################################
# SHA command probe for modules
if test "$modules" = yes; then
--
2.1.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] configure: silence glib unknown attribute __alloc_size__
2015-03-10 12:23 ` [Qemu-devel] [PATCH 2/2] configure: silence glib unknown attribute __alloc_size__ Stefan Hajnoczi
@ 2015-03-10 17:12 ` John Snow
0 siblings, 0 replies; 6+ messages in thread
From: John Snow @ 2015-03-10 17:12 UTC (permalink / raw)
To: Stefan Hajnoczi, qemu-devel; +Cc: Kevin Wolf, Peter Maydell, Stefan Weil
On 03/10/2015 08:23 AM, Stefan Hajnoczi wrote:
> 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.
>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> configure | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/configure b/configure
> index 4f9f689..00740ad 100755
> --- a/configure
> +++ b/configure
> @@ -2773,6 +2773,16 @@ if ! $pkg_config --atleast-version=2.38 glib-2.0; then
> glib_subprocess=no
> fi
>
> +# Silence clang 3.5.0 warnings about glib attribute __alloc_size__ usage
> +cat > $TMPC << EOF
> +#include <glib.h>
> +int main(void) { return 0; }
> +EOF
> +if ! compile_prog "-Werror" "" ; then
> + glib_cflags="-Wno-unknown-attributes $glib_cflags"
> + CFLAGS="-Wno-unknown-attributes $CFLAGS"
> +fi
> +
> ##########################################
> # SHA command probe for modules
> if test "$modules" = yes; then
>
Reviewed-by: John Snow <jsnow@redhat.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] configure: clang 3.5.0 build fixes
2015-03-10 12:23 [Qemu-devel] [PATCH 0/2] configure: clang 3.5.0 build fixes Stefan Hajnoczi
2015-03-10 12:23 ` [Qemu-devel] [PATCH 1/2] configure: handle clang -nopie argument warning Stefan Hajnoczi
2015-03-10 12:23 ` [Qemu-devel] [PATCH 2/2] configure: silence glib unknown attribute __alloc_size__ Stefan Hajnoczi
@ 2015-03-12 13:29 ` Stefan Hajnoczi
2 siblings, 0 replies; 6+ messages in thread
From: Stefan Hajnoczi @ 2015-03-12 13:29 UTC (permalink / raw)
To: Stefan Hajnoczi; +Cc: Kevin Wolf, Peter Maydell, qemu-devel, Stefan Weil
[-- Attachment #1: Type: text/plain, Size: 549 bytes --]
On Tue, Mar 10, 2015 at 12:23:43PM +0000, Stefan Hajnoczi wrote:
> QEMU does not compile cleanly under clang 3.5.0. These patches eliminate the
> avalanche of warnings and make the build usable.
>
> Stefan Hajnoczi (2):
> configure: handle clang -nopie argument warning
> configure: silence glib unknown attribute __alloc_size__
>
> configure | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> --
> 2.1.0
>
>
Thanks, applied to my net tree:
https://github.com/stefanha/qemu/commits/net
Stefan
[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-03-12 13:30 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-10 12:23 [Qemu-devel] [PATCH 0/2] configure: clang 3.5.0 build fixes Stefan Hajnoczi
2015-03-10 12:23 ` [Qemu-devel] [PATCH 1/2] configure: handle clang -nopie argument warning Stefan Hajnoczi
2015-03-10 17:10 ` John Snow
2015-03-10 12:23 ` [Qemu-devel] [PATCH 2/2] configure: silence glib unknown attribute __alloc_size__ Stefan Hajnoczi
2015-03-10 17:12 ` John Snow
2015-03-12 13:29 ` [Qemu-devel] [PATCH 0/2] configure: clang 3.5.0 build fixes Stefan Hajnoczi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).