summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2016-07-12 23:38:49 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-20 10:28:47 +0100
commit17dcf19d867eb15d5eadedfda99b18b3b0c379bb (patch)
tree755c7f514fe6d55d0c983399783949d4e26c45ba /meta
parent317447f1d1d18b0e7e5ca837270f9ebf476fdcac (diff)
downloadpoky-17dcf19d867eb15d5eadedfda99b18b3b0c379bb.tar.gz
nss: Fix build with clang
Add a patch to disable a clang specific warning and avoid passing clang options to gcc when we have cross compiler is clang but host compiler is gcc We do not need to use target cflags when building native pieces and hence avoid the inter-mixing of compiler options (From OE-Core rev: d13640f39f8f467597daa42774102329e82d9b68) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch33
-rw-r--r--meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch11
-rw-r--r--meta/recipes-support/nss/nss_3.24.bb2
3 files changed, 41 insertions, 5 deletions
diff --git a/meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch b/meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
new file mode 100644
index 0000000000..86b1b60556
--- /dev/null
+++ b/meta/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
@@ -0,0 +1,33 @@
1clang 3.9 add this warning to rightly flag undefined
2behavior, we relegate this to be just a warning instead
3of error and keep the behavior as it was. Right fix would
4be to not pass enum to the function with variadic arguments
5as last named argument
6
7Fixes errors like
8ocsp.c:2220:22: error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs]
9 va_start(ap, responseType0);
10 ^
11ocsp.c:2200:43: note: parameter of type 'SECOidTag' is declared here
12 SECOidTag responseType0, ...)
13
14see
15https://www.securecoding.cert.org/confluence/display/cplusplus/EXP58-CPP.+Pass+an+object+of+the+correct+type+to+va_start
16for more details
17
18Signed-off-by: Khem Raj <raj.khem@gmail.com>
19Upstream-Status: Pending
20
21Index: nss-3.24/nss/coreconf/Werror.mk
22===================================================================
23--- nss-3.24.orig/nss/coreconf/Werror.mk
24+++ nss-3.24/nss/coreconf/Werror.mk
25@@ -54,7 +54,7 @@ ifndef WARNING_CFLAGS
26 ifdef CC_IS_CLANG
27 # -Qunused-arguments : clang objects to arguments that it doesn't understand
28 # and fixing this would require rearchitecture
29- WARNING_CFLAGS += -Qunused-arguments
30+ WARNING_CFLAGS += -Qunused-arguments -Wno-error=varargs
31 # -Wno-parentheses-equality : because clang warns about macro expansions
32 WARNING_CFLAGS += $(call disable_warning,parentheses-equality)
33 ifdef BUILD_OPT
diff --git a/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch b/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
index 866de07ea8..181c69adb0 100644
--- a/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
+++ b/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
@@ -16,11 +16,11 @@ Upstream-Status: Pending
16 16
17Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> 17Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
18=================================================== 18===================================================
19diff --git a/nss/coreconf/nsinstall/Makefile b/nss/coreconf/nsinstall/Makefile 19Index: nss-3.24/nss/coreconf/nsinstall/Makefile
20index 1850bcb..5aee84f 100644 20===================================================================
21--- a/nss/coreconf/nsinstall/Makefile 21--- nss-3.24.orig/nss/coreconf/nsinstall/Makefile
22+++ b/nss/coreconf/nsinstall/Makefile 22+++ nss-3.24/nss/coreconf/nsinstall/Makefile
23@@ -18,6 +18,12 @@ INTERNAL_TOOLS = 1 23@@ -18,6 +18,13 @@ INTERNAL_TOOLS = 1
24 24
25 include $(DEPTH)/coreconf/config.mk 25 include $(DEPTH)/coreconf/config.mk
26 26
@@ -29,6 +29,7 @@ index 1850bcb..5aee84f 100644
29+# to clean the '-m64' from ARCHFLAG and LDFLAGS. 29+# to clean the '-m64' from ARCHFLAG and LDFLAGS.
30+ARCHFLAG = 30+ARCHFLAG =
31+LDFLAGS = 31+LDFLAGS =
32+CFLAGS =
32+ 33+
33 ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET))) 34 ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
34 PROGRAM = 35 PROGRAM =
diff --git a/meta/recipes-support/nss/nss_3.24.bb b/meta/recipes-support/nss/nss_3.24.bb
index 95a33f27d3..caed7fa894 100644
--- a/meta/recipes-support/nss/nss_3.24.bb
+++ b/meta/recipes-support/nss/nss_3.24.bb
@@ -20,6 +20,7 @@ SRC_URI = "\
20 file://nss-no-rpath-for-cross-compiling.patch \ 20 file://nss-no-rpath-for-cross-compiling.patch \
21 file://nss-fix-incorrect-shebang-of-perl.patch \ 21 file://nss-fix-incorrect-shebang-of-perl.patch \
22 file://nss-fix-nsinstall-build.patch \ 22 file://nss-fix-nsinstall-build.patch \
23 file://disable-Wvarargs-with-clang.patch \
23 file://nss.pc.in \ 24 file://nss.pc.in \
24 file://signlibs.sh \ 25 file://signlibs.sh \
25" 26"
@@ -62,6 +63,7 @@ do_compile_prepend_class-native() {
62do_compile() { 63do_compile() {
63 export CROSS_COMPILE=1 64 export CROSS_COMPILE=1
64 export NATIVE_CC="gcc" 65 export NATIVE_CC="gcc"
66 export NATIVE_FLAGS="${HOST_CFLAGS}"
65 export BUILD_OPT=1 67 export BUILD_OPT=1
66 68
67 export FREEBL_NO_DEPEND=1 69 export FREEBL_NO_DEPEND=1