summaryrefslogtreecommitdiffstats
path: root/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch
blob: d88578418d29b30857254b707a1ee956fc07a607 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Check for clang compiler since we need to disable
unused-function warning for clang, at same time
pass werror when checking for compiler options if
werror is enabled so spurious options do not get
enabled. Only the ones that are supported by given
compiler are accepted.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending

Index: libmbim-1.14.0/m4/compiler-warnings.m4
===================================================================
--- libmbim-1.14.0.orig/m4/compiler-warnings.m4
+++ libmbim-1.14.0/m4/compiler-warnings.m4
@@ -2,10 +2,30 @@ AC_DEFUN([LIBMBIM_COMPILER_WARNINGS],
 [AC_ARG_ENABLE(more-warnings,
 	AS_HELP_STRING([--enable-more-warnings], [Possible values: no/yes/error]),
 	set_more_warnings="$enableval",set_more_warnings=error)
+
+# 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=-Wno-error=unused-function])
+CFLAGS="$CFLAGS $CLANG_FLAGS"
+LDFLAGS="$LDFLAGS $CLANG_FLAGS"
+
 AC_MSG_CHECKING(for more warnings)
 if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
 	AC_MSG_RESULT(yes)
 	CFLAGS="-Wall -std=gnu89 $CFLAGS"
+	if test "x$set_more_warnings" = xerror; then
+		WERROR="-Werror"
+	fi
 
 	for option in -Wmissing-declarations -Wmissing-prototypes \
 		      -Wdeclaration-after-statement -Wstrict-prototypes \
@@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_war
 		      -Wmissing-include-dirs -Waggregate-return \
 		      -Wformat-security -Wtype-limits; do
 		SAVE_CFLAGS="$CFLAGS"
-		CFLAGS="$CFLAGS $option"
+		CFLAGS="$CFLAGS $option $WERROR"
 		AC_MSG_CHECKING([whether gcc understands $option])
 		AC_TRY_COMPILE([], [],
 			has_option=yes,
 			has_option=no,)
 		if test $has_option = no; then
 			CFLAGS="$SAVE_CFLAGS"
+		else
+			CFLAGS="$SAVE_CFLAGS $option"
 		fi
 		AC_MSG_RESULT($has_option)
 		unset has_option
 		unset SAVE_CFLAGS
 	done
+	CFLAGS="$CFLAGS $WERROR"
 	unset option
-	if test "x$set_more_warnings" = xerror; then
-		CFLAGS="$CFLAGS -Werror"
-	fi
+	unset WERROR
 else
 	AC_MSG_RESULT(no)
 fi
OpenPOWER on IntegriCloud