Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  nss-ios.patch   Sprache: unbekannt

 
--- 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
 
 #
@@ -141,7 +143,6 @@
 ifndef NSS_DISABLE_NSPR_TESTS
 build_nspr: $(NSPR_CONFIG_STATUS)
  $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)
- $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)/pr/tests
 else
 build_nspr: $(NSPR_CONFIG_STATUS)
  $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)
--- 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
@@ -456,6 +456,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);
@@ -495,6 +496,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)) {
@@ -545,10 +551,12 @@
 
 fail:
     mod->functionList = NULL;
+#ifndef NSS_STATIC_PKCS11
     disableUnload = PR_GetEnvSecure("NSS_DISABLE_UNLOAD");
     if (library && !disableUnload) {
         PR_UnloadLibrary(library);
     }
+#endif
     return SECFailure;
 }
 
@@ -656,6 +664,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)
 {

--- 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")

[ Dauer der Verarbeitung: 0.2 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge