office-gobmx/external/nss/nss-ios.patch
Taichi Haradaguchi a2969884af nss: upgrade to release 3.86.0
Change-Id: Ia236c7124d920785f7a2856db5ee1ccbef7a2d68
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143038
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-12-13 12:35:08 +00:00

300 lines
8.2 KiB
Diff

--- a/a/nss/Makefile
+++ a/a/nss/Makefile
@@ -91,13 +91,11 @@
ifdef NS_USE_GCC
NSPR_CONFIGURE_ENV = CC=gcc CXX=g++
endif
-# Make sure to remove -arch arguments. NSPR can't handle that.
-remove_arch = $(filter-out __REMOVEME%,$(subst $(NULL) -arch , __REMOVEME,$(1)))
ifdef CC
-NSPR_CONFIGURE_ENV = CC="$(call remove_arch,$(CC))"
+NSPR_CONFIGURE_ENV = CC="$(CC)"
endif
ifdef CCC
-NSPR_CONFIGURE_ENV += CXX="$(call remove_arch,$(CCC))"
+NSPR_CONFIGURE_ENV += CXX="$(CCC)"
endif
#
@@ -140,7 +138,6 @@
build_nspr: $(NSPR_CONFIG_STATUS)
$(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)/pr/tests
install_nspr: build_nspr
$(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME) install
--- a/a/nss/lib/ckfw/builtins/manifest.mn
+++ a/a/nss/lib/ckfw/builtins/manifest.mn
@@ -5,7 +5,7 @@
CORE_DEPTH = ../../..
-DIRS = testlib
+DIRS =
MODULE = nss
--- a/a/nss/lib/nss/nssinit.c
+++ a/a/nss/lib/nss/nssinit.c
@@ -275,6 +275,7 @@
const char *secmodprefix,
char **retoldpath, char **retnewpath)
{
+#ifndef NSS_STATIC_PKCS11
char *path, *oldpath = NULL, *lastsep;
int len, path_len, secmod_len, dll_len;
@@ -309,6 +310,10 @@
}
*retoldpath = oldpath;
*retnewpath = path;
+#else
+ *retoldpath = NULL;
+ *retnewpath = PORT_Strdup("NSSCKBI");
+#endif
return;
}
--- a/a/nss/lib/pk11wrap/pk11load.c
+++ a/a/nss/lib/pk11wrap/pk11load.c
@@ -390,6 +390,8 @@
/*
* load a new module into our address space and initialize it.
*/
+extern CK_RV NSSCKBI_C_GetFunctionList();
+
SECStatus
secmod_LoadPKCS11Module(SECMODModule *mod, SECMODModule **oldModule)
{
@@ -468,6 +470,7 @@
/* load the library. If this succeeds, then we have to remember to
* unload the library if anything goes wrong from here on out...
*/
+#ifndef NSS_STATIC_PKCS11 // With NSS_STATIC_PKCS11, the only module wodule we load here is nssckbi
#if defined(_WIN32)
if (nssUTF8_Length(mod->dllName, NULL)) {
wchar_t *dllNameWide = _NSSUTIL_UTF8ToWide(mod->dllName);
@@ -507,6 +510,11 @@
mod->moduleDBFunc = (void *)
PR_FindSymbol(library, "NSS_ReturnModuleSpecData");
}
+#else
+ if (strcmp(mod->dllName, "NSSCKBI") == 0)
+ fentry = NSSCKBI_C_GetFunctionList;
+#endif
+
if (mod->moduleDBFunc == NULL)
mod->isModuleDB = PR_FALSE;
if ((ientry == NULL) && (fentry == NULL)) {
@@ -643,10 +651,12 @@
}
fail:
mod->functionList = NULL;
+#ifndef NSS_STATIC_PKCS11
disableUnload = PR_GetEnvSecure("NSS_DISABLE_UNLOAD");
if (library && !disableUnload) {
PR_UnloadLibrary(library);
}
+#endif
return SECFailure;
}
--- a/a/nss/lib/ckfw/nssck.api
+++ a/a/nss/lib/ckfw/nssck.api
@@ -1842,7 +1842,11 @@
/* This one is always present */
CK_RV CK_ENTRY
+#ifndef NSS_STATIC_PKCS11
C_GetFunctionList
+#else
+NSSCKBI_C_GetFunctionList
+#endif
(
CK_FUNCTION_LIST_PTR_PTR ppFunctionList
)
--- a/a/nss/lib/freebl/loader.c
+++ a/a/nss/lib/freebl/loader.c
@@ -35,6 +35,7 @@
static PRStatus
freebl_LoadDSO(void)
{
+#ifndef NSS_STATIC_FREEBL
PRLibrary *handle;
const char *name = getLibName();
@@ -47,32 +48,42 @@
if (handle) {
PRFuncPtr address = PR_FindFunctionSymbol(handle, "FREEBL_GetVector");
if (address) {
- FREEBLGetVectorFn *getVector = (FREEBLGetVectorFn *)address;
+#else
+ FREEBLGetVectorFn *getVector = FREEBL_GetVector;
+#endif
const FREEBLVector *dsoVector = getVector();
if (dsoVector) {
unsigned short dsoVersion = dsoVector->version;
unsigned short myVersion = FREEBL_VERSION;
if (MSB(dsoVersion) == MSB(myVersion) &&
LSB(dsoVersion) >= LSB(myVersion) &&
dsoVector->length >= sizeof(FREEBLVector)) {
vector = dsoVector;
+#ifndef NSS_STATIC_FREEBL
libraryName = name;
blLib = handle;
+#else
+ libraryName = "self";
+#endif
return PR_SUCCESS;
}
}
+ else
+ return PR_FAILURE;
+#ifndef NSS_STATIC_FREEBL
}
#ifdef DEBUG
if (blLib) {
PRStatus status = PR_UnloadLibrary(blLib);
PORT_Assert(PR_SUCCESS == status);
}
#else
if (blLib)
PR_UnloadLibrary(blLib);
#endif
}
return PR_FAILURE;
+#endif
}
static const PRCallOnceType pristineCallOnce;
@@ -860,6 +871,7 @@
void
BL_Unload(void)
{
+#ifndef NSS_STATIC_FREEBL
/* This function is not thread-safe, but doesn't need to be, because it is
* only called from functions that are also defined as not thread-safe,
* namely C_Finalize in softoken, and the SSL bypass shutdown callback called
@@ -872,6 +884,7 @@
PR_UnloadLibrary(blLib);
#endif
}
+#endif
blLib = NULL;
loadFreeBLOnce = pristineCallOnce;
}
--- a/a/nspr/build/autoconf/config.sub 2017-09-07 15:29:45.031246453 +0200
+++ a/a/nspr/build/autoconf/config.sub 2017-09-07 15:32:13.087235423 +0200
@@ -110,6 +110,9 @@
exit 1;;
esac
+if test $1 = "arm64-apple-darwin"; then echo $1; exit; fi
+if test $1 = "aarch64-apple-darwin"; then echo $1; exit; fi
+
# Split fields of configuration type
# shellcheck disable=SC2162
IFS="-" read field1 field2 field3 field4 <<EOF
--- a/a/nspr/config/autoconf.mk.in
+++ a/a/nspr/config/autoconf.mk.in
@@ -69,7 +69,7 @@
MSC_VER = @MSC_VER@
AR = @AR@
AR_FLAGS = @AR_FLAGS@
-LD = @LD@
+LD = echo
RANLIB = @RANLIB@
PERL = @PERL@
RC = @RC@
--- a/a/nspr/configure
+++ a/a/nspr/configure
@@ -2507,7 +2507,7 @@
OBJDIR='$(OBJDIR_NAME)'
OBJDIR_NAME=.
OBJDIR_SUFFIX=OBJ
-NSINSTALL='$(MOD_DEPTH)/config/$(OBJDIR_NAME)/nsinstall'
+NSINSTALL=${NSINSTALL?'$(MOD_DEPTH)/config/$(OBJDIR_NAME)/nsinstall'}
NOSUCHFILE=/no-such-file
LIBNSPR='-L$(dist_libdir) -lnspr$(MOD_MAJOR_VERSION)'
LIBPLC='-L$(dist_libdir) -lplc$(MOD_MAJOR_VERSION)'
@@ -5571,7 +5571,7 @@
LIB_SUFFIX=a
DLL_SUFFIX=so
ASM_SUFFIX=s
-MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
+MKSHLIB='touch $@; echo'
PR_MD_ASFILES=
PR_MD_CSRCS=
PR_MD_ARCH_DIR=unix
@@ -6485,7 +6485,7 @@
DSO_CFLAGS=-fPIC
DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name @__________________________________________________OOO/$@ -headerpad_max_install_names'
_OPTIMIZE_FLAGS=-O2
- MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
+ MKSHLIB=touch $@
STRIP="$STRIP -x -S"
DLL_SUFFIX=dylib
USE_PTHREADS=1
--- a/a/nss/coreconf/ruleset.mk
+++ a/a/nss/coreconf/ruleset.mk
@@ -45,7 +45,7 @@
endif
ifeq ($(MKPROG),)
- MKPROG = $(CC)
+ MKPROG = touch $@; echo
endif
#
--- a/a/nss/coreconf/Darwin.mk
+++ a/a/nss/coreconf/Darwin.mk
@@ -116,7 +116,7 @@
DSO_LDOPTS += --coverage
endif
-MKSHLIB = $(CC) $(DSO_LDOPTS) $(DARWIN_SDK_SHLIBFLAGS)
+MKSHLIB = touch $@; echo
DLL_SUFFIX = dylib
ifdef MAPFILE
MKSHLIB += -exported_symbols_list $(MAPFILE)
--- a/a/nss/coreconf/UNIX.mk
+++ a/a/nss/coreconf/UNIX.mk
@@ -19,10 +19,14 @@
ifdef BUILD_TREE
NSINSTALL_DIR = $(BUILD_TREE)/nss
+ifndef NSINSTALL
NSINSTALL = $(BUILD_TREE)/nss/nsinstall
+endif
else
NSINSTALL_DIR = $(CORE_DEPTH)/coreconf/nsinstall
+ifndef NSINSTALL
NSINSTALL = $(NSINSTALL_DIR)/$(OBJDIR_NAME)/nsinstall
+endif
endif
####################################################################
--- a/a/nspr/pr/include/md/_darwin.h
+++ a/a/nspr/pr/include/md/_darwin.h
@@ -26,6 +26,8 @@
#define _PR_SI_ARCHITECTURE "ppc"
#elif defined(__arm__)
#define _PR_SI_ARCHITECTURE "arm"
+#elif defined(__arm64__)
+#define _PR_SI_ARCHITECTURE "arm64"
#elif defined(__aarch64__)
#define _PR_SI_ARCHITECTURE "aarch64"
#else
--- a/a/nss/cmd/shlibsign/sign.sh
+++ a/a/nss/cmd/shlibsign/sign.sh
@@ -2,6 +2,9 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Pointless to sign anything for iOS as we don't build any real shared libraries
+exit 0
# arguments:
# 1: full path to DIST/OBJDIR (parent dir of "lib")