Patrick Williams | ddad1a1 | 2017-02-23 20:36:32 -0600 | [diff] [blame] | 1 | Check for clang compiler since we need to disable |
| 2 | unused-function warning for clang, at same time |
| 3 | pass werror when checking for compiler options if |
| 4 | werror is enabled so spurious options do not get |
| 5 | enabled. Only the ones that are supported by given |
| 6 | compiler are accepted. |
| 7 | |
| 8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 9 | Upstream-Status: Pending |
| 10 | |
| 11 | Index: libmbim-1.14.0/m4/compiler-warnings.m4 |
| 12 | =================================================================== |
| 13 | --- libmbim-1.14.0.orig/m4/compiler-warnings.m4 |
| 14 | +++ libmbim-1.14.0/m4/compiler-warnings.m4 |
| 15 | @@ -2,10 +2,30 @@ AC_DEFUN([LIBMBIM_COMPILER_WARNINGS], |
| 16 | [AC_ARG_ENABLE(more-warnings, |
| 17 | AS_HELP_STRING([--enable-more-warnings], [Possible values: no/yes/error]), |
| 18 | set_more_warnings="$enableval",set_more_warnings=error) |
| 19 | + |
| 20 | +# Clang throws a lot of warnings when it does not understand a flag. Disable |
| 21 | +# this warning for now so other warnings are visible. |
| 22 | +AC_MSG_CHECKING([if compiling with clang]) |
| 23 | +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[ |
| 24 | +#ifndef __clang__ |
| 25 | + not clang |
| 26 | +#endif |
| 27 | + ]])], |
| 28 | + [CLANG=yes], |
| 29 | + [CLANG=no] |
| 30 | +) |
| 31 | +AC_MSG_RESULT([$CLANG]) |
| 32 | +AS_IF([test "x$CLANG" = "xyes"], [CLANG_FLAGS=-Wno-error=unused-function]) |
| 33 | +CFLAGS="$CFLAGS $CLANG_FLAGS" |
| 34 | +LDFLAGS="$LDFLAGS $CLANG_FLAGS" |
| 35 | + |
| 36 | AC_MSG_CHECKING(for more warnings) |
| 37 | if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then |
| 38 | AC_MSG_RESULT(yes) |
| 39 | CFLAGS="-Wall -std=gnu89 $CFLAGS" |
| 40 | + if test "x$set_more_warnings" = xerror; then |
| 41 | + WERROR="-Werror" |
| 42 | + fi |
| 43 | |
| 44 | for option in -Wmissing-declarations -Wmissing-prototypes \ |
| 45 | -Wdeclaration-after-statement -Wstrict-prototypes \ |
| 46 | @@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_war |
| 47 | -Wmissing-include-dirs -Waggregate-return \ |
Brad Bishop | 1932369 | 2019-04-05 15:28:33 -0400 | [diff] [blame^] | 48 | -Wformat-security -Wtype-limits; do |
Patrick Williams | ddad1a1 | 2017-02-23 20:36:32 -0600 | [diff] [blame] | 49 | SAVE_CFLAGS="$CFLAGS" |
| 50 | - CFLAGS="$CFLAGS $option" |
| 51 | + CFLAGS="$CFLAGS $option $WERROR" |
| 52 | AC_MSG_CHECKING([whether gcc understands $option]) |
| 53 | AC_TRY_COMPILE([], [], |
| 54 | has_option=yes, |
| 55 | has_option=no,) |
| 56 | if test $has_option = no; then |
| 57 | CFLAGS="$SAVE_CFLAGS" |
| 58 | + else |
| 59 | + CFLAGS="$SAVE_CFLAGS $option" |
| 60 | fi |
| 61 | AC_MSG_RESULT($has_option) |
| 62 | unset has_option |
| 63 | unset SAVE_CFLAGS |
| 64 | done |
| 65 | + CFLAGS="$CFLAGS $WERROR" |
| 66 | unset option |
| 67 | - if test "x$set_more_warnings" = xerror; then |
| 68 | - CFLAGS="$CFLAGS -Werror" |
| 69 | - fi |
| 70 | + unset WERROR |
| 71 | else |
| 72 | AC_MSG_RESULT(no) |
| 73 | fi |