chiark / gitweb /
configure[.ac]: Arrange to cope with jessie's gcc
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 16 Feb 2020 12:39:39 +0000 (12:39 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 16 Feb 2020 12:40:54 +0000 (12:40 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
configure
configure.ac

index 43de16e885044aaede33ad0150f872308ca93a1a..152c8ed24a97d24ddf74a60ffa670c0aa7d94133 100755 (executable)
--- a/configure
+++ b/configure
@@ -4132,6 +4132,54 @@ fi
 done
 
 
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking required gcc -std flag" >&5
+$as_echo_n "checking required gcc -std flag... " >&6; }
+if ${secnet_cv_gcc_std_flag+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    secnet_cv_gcc_std_flag=""
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+void x(void) { for (int i=0; i<1; i++) { } }
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+
+        old_cflags="$CFLAGS"
+       CFLAGS="$CFLAGS -std=gnu11"
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+void x(void) { for (int i=0; i<1; i++) { } }
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+           secnet_cv_gcc_std_flag=" -std=gnu11"
+
+else
+
+           { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure!" >&5
+$as_echo "failure!" >&6; }
+           as_fn_error 1 "cannot get test program to compile" "$LINENO" 5
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       CFLAGS="$old_cflags"
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $secnet_cv_gcc_std_flag" >&5
+$as_echo "$secnet_cv_gcc_std_flag" >&6; }
+CFLAGS="$CFLAGS$secnet_cv_gcc_std_flag"
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: Checking requirements for IPv6 support..." >&5
 $as_echo "$as_me: Checking requirements for IPv6 support..." >&6;}
 enable_ipv6=true
index 674ed3642da6ef96a0e5cd27b171fef83af451fa..471a6e77db56f726b675cdad6114732c200a4109 100644 (file)
@@ -102,6 +102,28 @@ REQUIRE_HEADER([adns.h])
 
 AC_CHECK_FUNCS([fmemopen funopen])
 
+dnl gcc 4.9.2 (jessie) requires -std=gnu11 to cope with for (int i=...
+dnl but we do not want to pass that everywhere because we don't want
+dnl to nail down the C dialect this way.  Why oh why oh why.
+m4_define([for_gcc_std],[
+void x(void) { for (int i=0; i<1; i++) { } }
+])
+AC_CACHE_CHECK([required gcc -std flag],[secnet_cv_gcc_std_flag],[
+    secnet_cv_gcc_std_flag=""
+    AC_COMPILE_IFELSE([AC_LANG_SOURCE(for_gcc_std)],[],[
+        old_cflags="$CFLAGS"
+       CFLAGS="$CFLAGS -std=gnu11"
+       AC_COMPILE_IFELSE([AC_LANG_SOURCE(for_gcc_std)],[
+           secnet_cv_gcc_std_flag=" -std=gnu11"
+       ],[
+           AC_MSG_RESULT([failure!])
+           AC_MSG_ERROR([cannot get test program to compile],1)
+       ])
+       CFLAGS="$old_cflags"
+    ])
+])
+CFLAGS="$CFLAGS$secnet_cv_gcc_std_flag"
+
 AC_MSG_NOTICE([Checking requirements for IPv6 support...])
 enable_ipv6=true
 m4_define(NO_IPV6,[enable_ipv6=false])