[libvirt] [PATCH 0/6] Ensure clean compile with clang

Roman Bogorodskiy bogorodskiy at gmail.com
Mon May 13 14:07:43 UTC 2013


  Daniel P. Berrange wrote:

> From: "Daniel P. Berrange" <berrange at redhat.com>
> 
> There are various problems building libvirt with clang,
> which mostly revolve around compiler warning handling.
> This series fixes all the problems I see with clang
> 3.2 on a Fedora 19 x86_64 host.
> 
> Daniel P. Berrange (6):
>   Ensure consistent enablement of gcc 'diagnostic' pragma
>   Workaround issue with clang and inline functions with static vars
>   Ignore cast alignment warnings in inotify code for Xen.
>   Correctly detect warning flags with clang
>   Only pass -export-dynamic to linker, not compiler
>   Don't duplicate compiler warning flags when linking
> 
>  configure.ac                |  4 ++--
>  daemon/Makefile.am          |  1 -
>  m4/virt-compile-warnings.m4 | 29 +++++++++++++++++++++++++----
>  src/Makefile.am             | 11 +++--------
>  src/internal.h              |  2 +-
>  src/xen/xen_inotify.c       |  3 +++
>  tests/vircgroupmock.c       |  7 ++++++-
>  tools/Makefile.am           |  4 +---
>  8 files changed, 41 insertions(+), 20 deletions(-)

Tested this patchset on FreeBSD with clang 3.1.

Had a warning like that when building examples:

gmake[2]: Entering directory `/usr/home/novel/code/libvirt/examples/openauth'
  CC       openauth-openauth.o
  CCLD     openauth
clang: warning: argument unused during compilation: '-g' [-Wunused-command-line-argument]
gmake[2]: Leaving directory `/usr/home/novel/code/libvirt/examples/openauth'

The problem was fixed by this change:

diff --git a/m4/virt-compile-warnings.m4 b/m4/virt-compile-warnings.m4
index 5174472..dc0e7d7 100644
--- a/m4/virt-compile-warnings.m4
+++ b/m4/virt-compile-warnings.m4
@@ -191,7 +191,7 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
     dnl -fstack-protector stuff passes gl_WARN_ADD with gcc
     dnl on Mingw32, but fails when actually used
     case $host in
-       *-*-linux*)
+       *-*-linux*|*-*-freebsd*)
        dnl Fedora only uses -fstack-protector, but doesn't seem to
        dnl be great overhead in adding -fstack-protector-all instead
        dnl gl_WARN_ADD([-fstack-protector])

I still have another warning in gnulib:

CC regex.lo
In file included from regex.c:70:
./regex_internal.c:1397:11: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
if (idx < 0 || idx >= set->nelem)
    ~~~ ^ ~
1 warning generated.

But I'm not sure it affects the build with -Werror because I don't use
it since it still fails at gcrypt.h deprecated stuff anyways (and I
haven't test a fix for that with clang I posted in other thread).

Roman Bogorodskiy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130513/da1f8abf/attachment-0001.sig>


More information about the libvir-list mailing list