From 373f8c75cba7e5f68901d9ac10182f115bb0343b Mon Sep 17 00:00:00 2001 From: Brent Cook Date: Mon, 15 Feb 2016 13:51:05 -0600 Subject: [PATCH] add compiler warnings checks from LibreSSL --- configure.ac | 2 ++ m4/disable-compiler-warnings.m4 | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 m4/disable-compiler-warnings.m4 diff --git a/configure.ac b/configure.ac index 769103b..1d19e0c 100644 --- a/configure.ac +++ b/configure.ac @@ -32,6 +32,8 @@ AC_PROG_LIBTOOL LT_INIT AC_PROG_YACC +DISABLE_COMPILER_WARNINGS + CHECK_OS_OPTIONS CHECK_CRYPTO_COMPAT diff --git a/m4/disable-compiler-warnings.m4 b/m4/disable-compiler-warnings.m4 new file mode 100644 index 0000000..2792722 --- /dev/null +++ b/m4/disable-compiler-warnings.m4 @@ -0,0 +1,29 @@ +AC_DEFUN([DISABLE_COMPILER_WARNINGS], [ +# Clang throws a lot of warnings when it does not understand a flag. Disable +# this warning for now so other warnings are visible. +AC_MSG_CHECKING([if compiling with clang]) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ +#ifndef __clang__ + not clang +#endif + ]])], + [CLANG=yes], + [CLANG=no] +) +AC_MSG_RESULT([$CLANG]) +AS_IF([test "x$CLANG" = "xyes"], [CLANG_FLAGS=-Qunused-arguments]) +CFLAGS="$CFLAGS $CLANG_FLAGS" +LDFLAGS="$LDFLAGS $CLANG_FLAGS" + +# Removing the dependency on -Wno-pointer-sign should be a goal. These are +# largely unsigned char */char* mismatches in asn1 functions. +save_cflags="$CFLAGS" +CFLAGS=-Wno-pointer-sign +AC_MSG_CHECKING([whether CC supports -Wno-pointer-sign]) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], + [AC_MSG_RESULT([yes])] + [AM_CFLAGS=-Wno-pointer-sign], + [AC_MSG_RESULT([no])] +) +CFLAGS="$save_cflags $AM_CFLAGS" +])