The GCC Win32 compiler will claim to support -fstack-protector,
but if it actually gets triggered by a suitable code pattern,
linking will fail. Other non-Linux OS likely suffer the same
way with gcc.

* m4/virt-compile-warnings.m4: Only use stack protector when
  the build target is Linux.
---
 m4/virt-compile-warnings.m4 |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/m4/virt-compile-warnings.m4 b/m4/virt-compile-warnings.m4
index 7e252d5..819da8f 100644
--- a/m4/virt-compile-warnings.m4
+++ b/m4/virt-compile-warnings.m4
@@ -98,11 +98,17 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
 
         # Extra special flags
         gl_WARN_ADD([-Wp,-D_FORTIFY_SOURCE=2])
-        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])
-        gl_WARN_ADD([-fstack-protector-all])
-        gl_WARN_ADD([--param=ssp-buffer-size=4])
+        dnl -fstack-protector stuff passes gl_WARN_ADD with gcc
+        dnl on Mingw32, but fails when actually used
+        case $host in
+           *-*-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])
+           gl_WARN_ADD([-fstack-protector-all])
+           gl_WARN_ADD([--param=ssp-buffer-size=4])
+           ;;
+        esac
         gl_WARN_ADD([-fexceptions])
         gl_WARN_ADD([-fasynchronous-unwind-tables])
         gl_WARN_ADD([-fdiagnostics-show-option])
-- 
1.7.4

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to