summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-connectivity
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2016-10-18 22:38:21 -0700
committerMartin Jansa <Martin.Jansa@gmail.com>2016-10-26 10:28:38 +0200
commit577604b93c14a2ecc96ad26f85f9baea29bf5bda (patch)
tree355926a31965bda0958e0f2670f964c4a9aac802 /meta-oe/recipes-connectivity
parent558d935806365784794edc2c8473dffcc1db6b86 (diff)
downloadmeta-openembedded-577604b93c14a2ecc96ad26f85f9baea29bf5bda.tar.gz
libmbim: Fix build with clang
We need to check for clang in configure so the warning options can be added surgically depending upon compiler type Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-oe/recipes-connectivity')
-rw-r--r--meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch73
-rw-r--r--meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb4
2 files changed, 76 insertions, 1 deletions
diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch b/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch
new file mode 100644
index 000000000..92e657c00
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch
@@ -0,0 +1,73 @@
1Check for clang compiler since we need to disable
2unused-function warning for clang, at same time
3pass werror when checking for compiler options if
4werror is enabled so spurious options do not get
5enabled. Only the ones that are supported by given
6compiler are accepted.
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9Upstream-Status: Pending
10
11Index: 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 \
48 -Wformat-security; do
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
diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb b/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb
index 0a8aaafc9..02a178863 100644
--- a/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb
+++ b/meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb
@@ -11,6 +11,8 @@ DEPENDS = "glib-2.0 libgudev"
11 11
12inherit autotools pkgconfig bash-completion 12inherit autotools pkgconfig bash-completion
13 13
14SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz" 14SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
15 file://clang.patch \
16"
15SRC_URI[md5sum] = "2ed809e65c85353d3ab59e372890e549" 17SRC_URI[md5sum] = "2ed809e65c85353d3ab59e372890e549"
16SRC_URI[sha256sum] = "ca8d52a95a18cbabae8f15f83f1572316e888b6504f946e6645d24405127ab5b" 18SRC_URI[sha256sum] = "ca8d52a95a18cbabae8f15f83f1572316e888b6504f946e6645d24405127ab5b"