diff options
author | Khem Raj <raj.khem@gmail.com> | 2016-10-18 22:38:21 -0700 |
---|---|---|
committer | Martin Jansa <Martin.Jansa@gmail.com> | 2016-10-26 10:28:38 +0200 |
commit | 577604b93c14a2ecc96ad26f85f9baea29bf5bda (patch) | |
tree | 355926a31965bda0958e0f2670f964c4a9aac802 /meta-oe/recipes-connectivity/libmbim | |
parent | 558d935806365784794edc2c8473dffcc1db6b86 (diff) | |
download | meta-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/libmbim')
-rw-r--r-- | meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch | 73 | ||||
-rw-r--r-- | meta-oe/recipes-connectivity/libmbim/libmbim_1.14.0.bb | 4 |
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 @@ | |||
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 \ | ||
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 | ||
12 | inherit autotools pkgconfig bash-completion | 12 | inherit autotools pkgconfig bash-completion |
13 | 13 | ||
14 | SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz" | 14 | SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \ |
15 | file://clang.patch \ | ||
16 | " | ||
15 | SRC_URI[md5sum] = "2ed809e65c85353d3ab59e372890e549" | 17 | SRC_URI[md5sum] = "2ed809e65c85353d3ab59e372890e549" |
16 | SRC_URI[sha256sum] = "ca8d52a95a18cbabae8f15f83f1572316e888b6504f946e6645d24405127ab5b" | 18 | SRC_URI[sha256sum] = "ca8d52a95a18cbabae8f15f83f1572316e888b6504f946e6645d24405127ab5b" |