]> xenbits.xensource.com Git - libvirt.git/commitdiff
FreeBSD: disable buggy -fstack-protector-all
authorRoman Bogorodskiy <bogorodskiy@gmail.com>
Wed, 15 May 2013 15:41:49 +0000 (19:41 +0400)
committerEric Blake <eblake@redhat.com>
Wed, 15 May 2013 21:20:52 +0000 (15:20 -0600)
FreeBSD ships an old gcc 4.2.1 which generates
bogus code, e.g. getsockopt() call returns
struct xucred with bogus values, which doesn't even
allow to connect to libvirtd:

error: Failed to find group record for gid '1284660778': No error: 0

So roll back to just -fstack-protector on FreeBSD.

m4/virt-compile-warnings.m4

index dc0e7d7e8c2c08ba8219782134b4ca65c2eb1adb..ce4e244920527469ed7ee17cf3362680459dc10d 100644 (file)
@@ -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*|*-*-freebsd*)
+       *-*-linux*)
        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])
@@ -205,6 +205,13 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
        dnl off the following clang specific warning
        gl_WARN_ADD([-Wno-unused-command-line-argument])
        ;;
+       *-*-freebsd*)
+       dnl FreeBSD ships old gcc 4.2.1 which doesn't handle
+       dnl -fstack-protector-all well
+       gl_WARN_ADD([-fstack-protector])
+
+       gl_WARN_ADD([-Wno-unused-command-line-argument])
+       ;;
     esac
     gl_WARN_ADD([-fexceptions])
     gl_WARN_ADD([-fasynchronous-unwind-tables])