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>
This commit is contained in:
Khem Raj 2016-07-12 23:38:49 -07:00 committed by Richard Purdie
parent 317447f1d1
commit 17dcf19d86
3 changed files with 41 additions and 5 deletions

View File

@ -0,0 +1,33 @@
clang 3.9 add this warning to rightly flag undefined
behavior, we relegate this to be just a warning instead
of error and keep the behavior as it was. Right fix would
be to not pass enum to the function with variadic arguments
as last named argument
Fixes errors like
ocsp.c:2220:22: error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs]
va_start(ap, responseType0);
^
ocsp.c:2200:43: note: parameter of type 'SECOidTag' is declared here
SECOidTag responseType0, ...)
see
https://www.securecoding.cert.org/confluence/display/cplusplus/EXP58-CPP.+Pass+an+object+of+the+correct+type+to+va_start
for more details
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
Index: nss-3.24/nss/coreconf/Werror.mk
===================================================================
--- nss-3.24.orig/nss/coreconf/Werror.mk
+++ nss-3.24/nss/coreconf/Werror.mk
@@ -54,7 +54,7 @@ ifndef WARNING_CFLAGS
ifdef CC_IS_CLANG
# -Qunused-arguments : clang objects to arguments that it doesn't understand
# and fixing this would require rearchitecture
- WARNING_CFLAGS += -Qunused-arguments
+ WARNING_CFLAGS += -Qunused-arguments -Wno-error=varargs
# -Wno-parentheses-equality : because clang warns about macro expansions
WARNING_CFLAGS += $(call disable_warning,parentheses-equality)
ifdef BUILD_OPT

View File

@ -16,11 +16,11 @@ Upstream-Status: Pending
Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
===================================================
diff --git a/nss/coreconf/nsinstall/Makefile b/nss/coreconf/nsinstall/Makefile
index 1850bcb..5aee84f 100644
--- a/nss/coreconf/nsinstall/Makefile
+++ b/nss/coreconf/nsinstall/Makefile
@@ -18,6 +18,12 @@ INTERNAL_TOOLS = 1
Index: nss-3.24/nss/coreconf/nsinstall/Makefile
===================================================================
--- nss-3.24.orig/nss/coreconf/nsinstall/Makefile
+++ nss-3.24/nss/coreconf/nsinstall/Makefile
@@ -18,6 +18,13 @@ INTERNAL_TOOLS = 1
include $(DEPTH)/coreconf/config.mk
@ -29,6 +29,7 @@ index 1850bcb..5aee84f 100644
+# to clean the '-m64' from ARCHFLAG and LDFLAGS.
+ARCHFLAG =
+LDFLAGS =
+CFLAGS =
+
ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
PROGRAM =

View File

@ -20,6 +20,7 @@ SRC_URI = "\
file://nss-no-rpath-for-cross-compiling.patch \
file://nss-fix-incorrect-shebang-of-perl.patch \
file://nss-fix-nsinstall-build.patch \
file://disable-Wvarargs-with-clang.patch \
file://nss.pc.in \
file://signlibs.sh \
"
@ -62,6 +63,7 @@ do_compile_prepend_class-native() {
do_compile() {
export CROSS_COMPILE=1
export NATIVE_CC="gcc"
export NATIVE_FLAGS="${HOST_CFLAGS}"
export BUILD_OPT=1
export FREEBL_NO_DEPEND=1