From 6c10f89e825f80f027fac2cb3b3b0b86bcd1d7ef Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 16 Feb 2020 12:39:39 +0000 Subject: [PATCH] configure[.ac]: Arrange to cope with jessie's gcc Signed-off-by: Ian Jackson --- configure | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 22 ++++++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/configure b/configure index 43de16e..152c8ed 100755 --- 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 diff --git a/configure.ac b/configure.ac index 674ed36..471a6e7 100644 --- a/configure.ac +++ b/configure.ac @@ -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]) -- 2.30.2