зеркало из https://github.com/mozilla/gecko-dev.git
Bug 134113: make NSS build on Win32 using GCC (MinGW). The patch
(attachment 121068) is contributed by Chris Seawood (cls@seawood.org).
This commit is contained in:
Родитель
bdeb25acd4
Коммит
213a402f9d
|
@ -38,6 +38,17 @@
|
|||
|
||||
DEFAULT_COMPILER = cl
|
||||
|
||||
ifdef NS_USE_GCC
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
LINK = ld
|
||||
AR = ar
|
||||
AR += cr $@
|
||||
RANLIB = ranlib
|
||||
BSDECHO = echo
|
||||
RC = windres.exe -O coff
|
||||
LINK_DLL = $(CC) $(OS_DLLFLAGS) $(DLLFLAGS)
|
||||
else
|
||||
CC = cl
|
||||
CCC = cl
|
||||
LINK = link
|
||||
|
@ -45,6 +56,8 @@ AR = lib
|
|||
AR += -NOLOGO -OUT:"$@"
|
||||
RANLIB = echo
|
||||
BSDECHO = echo
|
||||
RC = rc.exe
|
||||
endif
|
||||
|
||||
ifdef BUILD_TREE
|
||||
NSINSTALL_DIR = $(BUILD_TREE)/nss
|
||||
|
@ -62,12 +75,37 @@ MKDEPENDENCIES = $(OBJDIR_NAME)/depend.mk
|
|||
INSTALL = $(NSINSTALL)
|
||||
MAKE_OBJDIR = mkdir
|
||||
MAKE_OBJDIR += $(OBJDIR)
|
||||
RC = rc.exe
|
||||
GARBAGE += $(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb
|
||||
XP_DEFINE += -DXP_PC
|
||||
ifdef NS_USE_GCC
|
||||
LIB_SUFFIX = a
|
||||
else
|
||||
LIB_SUFFIX = lib
|
||||
endif
|
||||
DLL_SUFFIX = dll
|
||||
|
||||
ifdef NS_USE_GCC
|
||||
OS_CFLAGS += -mno-cygwin -mms-bitfields
|
||||
_GEN_IMPORT_LIB=-Wl,--out-implib,$(IMPORT_LIBRARY)
|
||||
DLLFLAGS += -mno-cygwin -o $@ -shared -Wl,--export-all-symbols $(if $(IMPORT_LIBRARY),$(_GEN_IMPORT_LIB))
|
||||
ifdef BUILD_OPT
|
||||
OPTIMIZER += -O2
|
||||
DEFINES += -UDEBUG -U_DEBUG -DNDEBUG
|
||||
#
|
||||
# Add symbolic information for a profiler
|
||||
#
|
||||
ifdef MOZ_PROFILE
|
||||
OPTIMIZER += -g
|
||||
endif
|
||||
else
|
||||
OPTIMIZER += -g
|
||||
NULLSTRING :=
|
||||
SPACE := $(NULLSTRING) # end of the line
|
||||
USERNAME := $(subst $(SPACE),_,$(USERNAME))
|
||||
USERNAME := $(subst -,_,$(USERNAME))
|
||||
DEFINES += -DDEBUG -D_DEBUG -UNDEBUG -DDEBUG_$(USERNAME)
|
||||
endif
|
||||
else # !NS_USE_GCC
|
||||
ifdef BUILD_OPT
|
||||
OS_CFLAGS += -MD
|
||||
OPTIMIZER += -O2
|
||||
|
@ -100,11 +138,14 @@ else
|
|||
DLLFLAGS += -DEBUG -DEBUGTYPE:CV -OUT:"$@"
|
||||
LDFLAGS += -DEBUG -DEBUGTYPE:CV -PDB:NONE
|
||||
endif
|
||||
endif # NS_USE_GCC
|
||||
|
||||
DEFINES += -DWIN32
|
||||
ifdef MAPFILE
|
||||
ifndef NS_USE_GCC
|
||||
DLLFLAGS += -DEF:$(MAPFILE)
|
||||
endif
|
||||
endif
|
||||
# Change PROCESS to put the mapfile in the correct format for this platform
|
||||
PROCESS_MAP_FILE = cp $(LIBRARY_NAME).def $@
|
||||
|
||||
|
@ -116,8 +157,13 @@ PROCESS_MAP_FILE = cp $(LIBRARY_NAME).def $@
|
|||
DEFINES += -D_WINDOWS
|
||||
|
||||
# override default, which is ASFLAGS = CFLAGS
|
||||
ifdef NS_USE_GCC
|
||||
AS = $(CC)
|
||||
ASFLAGS = $(INCLUDES)
|
||||
else
|
||||
AS = ml.exe
|
||||
ASFLAGS = -Cp -Sn -Zi -coff $(INCLUDES)
|
||||
endif
|
||||
|
||||
#
|
||||
# override the definitions of RELEASE_TREE found in tree.mk
|
||||
|
@ -154,15 +200,23 @@ endif
|
|||
# Object suffixes
|
||||
#
|
||||
ifndef OBJ_SUFFIX
|
||||
ifdef NS_USE_GCC
|
||||
OBJ_SUFFIX = .o
|
||||
else
|
||||
OBJ_SUFFIX = .obj
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Assembler source suffixes
|
||||
#
|
||||
ifndef ASM_SUFFIX
|
||||
ifdef NS_USE_GCC
|
||||
ASM_SUFFIX = .s
|
||||
else
|
||||
ASM_SUFFIX = .asm
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Library suffixes
|
||||
|
|
|
@ -40,7 +40,9 @@
|
|||
include $(CORE_DEPTH)/coreconf/WIN32.mk
|
||||
|
||||
ifeq ($(CPU_ARCH), x386)
|
||||
ifndef NS_USE_GCC
|
||||
OS_CFLAGS += -W3 -nologo
|
||||
endif
|
||||
DEFINES += -D_X86_
|
||||
else
|
||||
ifeq ($(CPU_ARCH), MIPS)
|
||||
|
@ -55,5 +57,7 @@ else
|
|||
endif
|
||||
endif
|
||||
|
||||
ifndef NS_USE_GCC
|
||||
OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS -PDB:NONE
|
||||
endif
|
||||
DEFINES += -DWIN95
|
||||
|
|
|
@ -52,7 +52,7 @@ endif
|
|||
platform::
|
||||
@echo $(OBJDIR_NAME)
|
||||
|
||||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
|
||||
USE_NT_C_SYNTAX=1
|
||||
endif
|
||||
|
||||
|
@ -285,7 +285,7 @@ endif
|
|||
|
||||
$(PROGRAM): $(OBJS) $(EXTRA_LIBS)
|
||||
@$(MAKE_OBJDIR)
|
||||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
|
||||
$(MKPROG) $(subst /,\\,$(OBJS)) -Fe$@ -link $(LDFLAGS) $(subst /,\\,$(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS))
|
||||
else
|
||||
ifdef XP_OS2_VACPP
|
||||
|
@ -337,7 +337,11 @@ ifeq ($(OS_TARGET)$(OS_RELEASE), AIX4.1)
|
|||
-bM:SRE -bnoentry $(OS_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS)
|
||||
else
|
||||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
ifdef NS_USE_GCC
|
||||
$(LINK_DLL) $(OBJS) $(SUB_SHLOBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) $(LD_LIBS) $(RES)
|
||||
else
|
||||
$(LINK_DLL) -MAP $(DLLBASE) $(subst /,\\,$(OBJS) $(SUB_SHLOBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS) $(LD_LIBS) $(RES))
|
||||
endif
|
||||
else
|
||||
ifdef XP_OS2_VACPP
|
||||
$(MKSHLIB) $(DLLFLAGS) $(LDFLAGS) $(OBJS) $(SUB_SHLOBJS) $(LD_LIBS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS)
|
||||
|
@ -357,7 +361,11 @@ ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
|||
$(RES): $(RESNAME)
|
||||
@$(MAKE_OBJDIR)
|
||||
# The resource compiler does not understand the -U option.
|
||||
ifdef NS_USE_GCC
|
||||
$(RC) $(filter-out -U%,$(DEFINES)) $(INCLUDES:-I%=--include-dir %) -o $@ $<
|
||||
else
|
||||
$(RC) $(filter-out -U%,$(DEFINES)) $(INCLUDES) -Fo$@ $<
|
||||
endif
|
||||
@echo $(RES) finished
|
||||
endif
|
||||
|
||||
|
@ -368,7 +376,7 @@ $(MAPFILE): $(LIBRARY_NAME).def
|
|||
|
||||
$(OBJDIR)/$(PROG_PREFIX)%$(PROG_SUFFIX): $(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX)
|
||||
@$(MAKE_OBJDIR)
|
||||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
|
||||
$(MKPROG) $(OBJDIR)/$(PROG_PREFIX)$*$(OBJ_SUFFIX) -Fe$@ -link \
|
||||
$(LDFLAGS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) $(OS_LIBS)
|
||||
else
|
||||
|
@ -388,8 +396,7 @@ NEED_ABSOLUTE_PATH := 1
|
|||
PWD := $(shell pwd)
|
||||
endif
|
||||
|
||||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
ifndef NS_USE_GCC
|
||||
ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
|
||||
NEED_ABSOLUTE_PATH := 1
|
||||
ifeq (,$(findstring ;,$(PATH)))
|
||||
PWD := $(subst \,/,$(shell cygpath -w `pwd`))
|
||||
|
@ -397,7 +404,6 @@ else
|
|||
PWD := $(shell pwd)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef NEED_ABSOLUTE_PATH
|
||||
abspath = $(if $(findstring :,$(1)),$(1),$(if $(filter /%,$(1)),$(1),$(PWD)/$(1)))
|
||||
|
@ -429,7 +435,7 @@ endif
|
|||
endif
|
||||
|
||||
ifndef XP_OS2_VACPP
|
||||
ifneq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
ifneq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
|
||||
$(OBJDIR)/$(PROG_PREFIX)%$(OBJ_SUFFIX): %.s
|
||||
@$(MAKE_OBJDIR)
|
||||
$(AS) -o $@ $(ASFLAGS) -c $<
|
||||
|
|
|
@ -60,7 +60,9 @@ endif
|
|||
|
||||
ifeq (,$(filter-out WINNT WIN95 WIN16,$(OS_TARGET))) # omits WINCE
|
||||
ifndef BUILD_OPT
|
||||
ifndef NS_USE_GCC
|
||||
LDFLAGS += /subsystem:console /profile /debug /machine:I386 /incremental:no
|
||||
endif
|
||||
OS_CFLAGS += -D_CONSOLE
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -39,7 +39,7 @@ ifeq ($(OS_ARCH), WINNT)
|
|||
|
||||
DEFINES += -DNSS_USE_STATIC_LIBS
|
||||
# $(PROGRAM) has explicit dependencies on $(EXTRA_LIBS)
|
||||
CRYPTOLIB=$(DIST)/lib/freebl.lib
|
||||
CRYPTOLIB=$(DIST)/lib/$(LIB_PREFIX)freebl.$(LIB_SUFFIX)
|
||||
ifdef MOZILLA_SECURITY_BUILD
|
||||
CRYPTOLIB=$(DIST)/lib/crypto.lib
|
||||
endif
|
||||
|
@ -49,28 +49,28 @@ ifdef MOZILLA_BSAFE_BUILD
|
|||
endif
|
||||
|
||||
EXTRA_LIBS += \
|
||||
$(DIST)/lib/smime.lib \
|
||||
$(DIST)/lib/ssl.lib \
|
||||
$(DIST)/lib/nss.lib \
|
||||
$(DIST)/lib/ssl.lib \
|
||||
$(DIST)/lib/sectool.lib \
|
||||
$(DIST)/lib/pkcs12.lib \
|
||||
$(DIST)/lib/pkcs7.lib \
|
||||
$(DIST)/lib/certhi.lib \
|
||||
$(DIST)/lib/cryptohi.lib \
|
||||
$(DIST)/lib/pk11wrap.lib \
|
||||
$(DIST)/lib/certdb.lib \
|
||||
$(DIST)/lib/softokn.lib \
|
||||
$(DIST)/lib/$(LIB_PREFIX)smime.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)ssl.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)nss.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)ssl.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)sectool.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)pkcs12.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)pkcs7.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)certhi.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)cryptohi.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)pk11wrap.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)certdb.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)softokn.$(LIB_SUFFIX) \
|
||||
$(CRYPTOLIB) \
|
||||
$(DIST)/lib/swfci.lib \
|
||||
$(DIST)/lib/secutil.lib \
|
||||
$(DIST)/lib/nsspki.lib \
|
||||
$(DIST)/lib/nssdev.lib \
|
||||
$(DIST)/lib/nssb.lib \
|
||||
$(DIST)/lib/dbm.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plc4.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)nspr4.lib \
|
||||
$(DIST)/lib/$(LIB_PREFIX)swfci.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)secutil.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)nsspki.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)nssdev.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)nssb.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)dbm.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plc4.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)nspr4.$(LIB_SUFFIX) \
|
||||
$(NULL)
|
||||
|
||||
# $(PROGRAM) has NO explicit dependencies on $(OS_LIBS)
|
||||
|
@ -79,8 +79,8 @@ EXTRA_LIBS += \
|
|||
winmm.lib \
|
||||
$(NULL)
|
||||
|
||||
JAR_LIBS = $(DIST)/lib/jar.lib \
|
||||
$(DIST)/lib/zlib.lib \
|
||||
JAR_LIBS = $(DIST)/lib/$(LIB_PREFIX)jar.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)zlib.$(LIB_SUFFIX) \
|
||||
$(NULL)
|
||||
else
|
||||
|
||||
|
@ -150,13 +150,13 @@ ifeq ($(OS_ARCH), WINNT)
|
|||
|
||||
# $(PROGRAM) has explicit dependencies on $(EXTRA_LIBS)
|
||||
EXTRA_LIBS += \
|
||||
$(DIST)/lib/sectool.lib \
|
||||
$(DIST)/lib/smime3.lib \
|
||||
$(DIST)/lib/ssl3.lib \
|
||||
$(DIST)/lib/nss3.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plc4.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)nspr4.lib \
|
||||
$(DIST)/lib/$(LIB_PREFIX)sectool.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(IMPORT_LIB_PREFIX)smime3$(IMPORT_LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(IMPORT_LIB_PREFIX)ssl3$(IMPORT_LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(IMPORT_LIB_PREFIX)nss3$(IMPORT_LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plc4.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)nspr4.$(LIB_SUFFIX) \
|
||||
$(NULL)
|
||||
|
||||
# $(PROGRAM) has NO explicit dependencies on $(OS_LIBS)
|
||||
|
@ -165,8 +165,8 @@ EXTRA_LIBS += \
|
|||
winmm.lib \
|
||||
$(NULL)
|
||||
|
||||
JAR_LIBS = $(DIST)/lib/jar.lib \
|
||||
$(DIST)/lib/zlib.lib \
|
||||
JAR_LIBS = $(DIST)/lib/$(LIB_PREFIX)jar.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)zlib.$(LIB_SUFFIX) \
|
||||
$(NULL)
|
||||
else
|
||||
|
||||
|
|
|
@ -55,7 +55,9 @@ include ../platlibs.mk
|
|||
|
||||
ifeq (,$(filter-out WINNT WIN95 WIN16,$(OS_TARGET))) #omits WINCE
|
||||
ifndef BUILD_OPT
|
||||
ifndef NS_USE_GCC
|
||||
LDFLAGS += /subsystem:console /profile /debug /machine:I386 /incremental:no
|
||||
endif
|
||||
OS_CFLAGS += -D_CONSOLE
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -56,7 +56,9 @@ include ../platlibs.mk
|
|||
|
||||
ifeq (,$(filter-out WINNT WIN95 WIN16,$(OS_TARGET))) # omits WINCE
|
||||
ifndef BUILD_OPT
|
||||
ifndef NS_USE_GCC
|
||||
LDFLAGS += /subsystem:console /profile /debug /machine:I386 /incremental:no
|
||||
endif
|
||||
OS_CFLAGS += -D_CONSOLE
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -56,7 +56,9 @@ include ../platlibs.mk
|
|||
|
||||
ifeq (,$(filter-out WINNT WIN95 WIN16,$(OS_TARGET))) # omits WINCE
|
||||
ifndef BUILD_OPT
|
||||
ifndef NS_USE_GCC
|
||||
LDFLAGS += /subsystem:console /profile /debug /machine:I386 /incremental:no
|
||||
endif
|
||||
OS_CFLAGS += -D_CONSOLE
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
# may use your version of this file under either the MPL or the
|
||||
# GPL.
|
||||
#
|
||||
MAKEFILE_CVS_ID = "@(#) $RCSfile: Makefile,v $ $Revision: 1.11 $ $Date: 2002/04/05 03:30:37 $ $Name: $"
|
||||
MAKEFILE_CVS_ID = "@(#) $RCSfile: Makefile,v $ $Revision: 1.12 $ $Date: 2003/04/20 04:23:24 $ $Name: $"
|
||||
|
||||
include manifest.mn
|
||||
include $(CORE_DEPTH)/coreconf/config.mk
|
||||
|
@ -44,10 +44,22 @@ EXTRA_LIBS = \
|
|||
# can't do this in manifest.mn because OS_TARGET isn't defined there.
|
||||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
|
||||
# Link with the real NSPR DLLs for MinGW because the NSPR stubs in
|
||||
# nsprstub.c can't resolve the references to the _imp__PR_XXX symbols.
|
||||
# This is merely an expedient hack and not the right solution.
|
||||
ifdef NS_USE_GCC
|
||||
EXTRA_LIBS += \
|
||||
-L$(DIST)/lib \
|
||||
-lplc4 \
|
||||
-lplds4 \
|
||||
-lnspr4 \
|
||||
$(NULL)
|
||||
else
|
||||
EXTRA_LIBS += \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plc4_s.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4_s.lib \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
else
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
# may use your version of this file under either the MPL or the
|
||||
# GPL.
|
||||
#
|
||||
CONFIG_CVS_ID = "@(#) $RCSfile: config.mk,v $ $Revision: 1.6 $ $Date: 2002/07/29 21:48:39 $ $Name: $"
|
||||
CONFIG_CVS_ID = "@(#) $RCSfile: config.mk,v $ $Revision: 1.7 $ $Date: 2003/04/20 04:23:25 $ $Name: $"
|
||||
|
||||
#
|
||||
# Override TARGETS variable so that only shared libraries
|
||||
|
@ -43,7 +43,7 @@ IMPORT_LIBRARY =
|
|||
PROGRAM =
|
||||
|
||||
ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).dll
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(DLL_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
|
||||
endif
|
||||
|
||||
ifdef BUILD_IDG
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
* SW FORTEZZA to link with some low level security functions without dragging
|
||||
* in NSPR.
|
||||
*
|
||||
* $Id: nsprstub.c,v 1.3 2002/05/01 00:06:29 wtc%netscape.com Exp $
|
||||
* $Id: nsprstub.c,v 1.4 2003/04/20 04:23:22 wtc%netscape.com Exp $
|
||||
*/
|
||||
|
||||
#include "seccomon.h"
|
||||
|
@ -283,6 +283,12 @@ nssPointerTracker_verify(nssPointerTracker *tracker, const void *pointer)
|
|||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Do not use NSPR stubs for MinGW because they can't resolve references
|
||||
* to the _imp__PR_XXX symbols. This is merely an expedient hack and not
|
||||
* the right solution.
|
||||
*/
|
||||
#if !(defined(WIN32) && defined(__GNUC__))
|
||||
PR_IMPLEMENT(PRThread *)
|
||||
PR_GetCurrentThread(void)
|
||||
{
|
||||
|
@ -337,6 +343,7 @@ PR_IMPLEMENT(PRInt32) PR_AtomicSet(PRInt32 *val) { return ++(*val); }
|
|||
|
||||
/* now make the RNG happy */ /* This is not atomic! */
|
||||
PR_IMPLEMENT(PRInt32) PR_AtomicIncrement(PRInt32 *val) { return ++(*val); }
|
||||
#endif /* ! (WIN32 && GCC) */
|
||||
|
||||
CK_C_INITIALIZE_ARGS_PTR nssstub_initArgs = NULL;
|
||||
NSSArena *nssstub_arena = NULL;
|
||||
|
@ -349,6 +356,12 @@ nssSetLockArgs(CK_C_INITIALIZE_ARGS_PTR pInitArgs)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Do not use NSPR stubs for MinGW because they can't resolve references
|
||||
* to the _imp__PR_XXX symbols. This is merely an expedient hack and not
|
||||
* the right solution.
|
||||
*/
|
||||
#if !(defined(WIN32) && defined(__GNUC__))
|
||||
#include "prlock.h"
|
||||
PR_IMPLEMENT(PRLock *)
|
||||
PR_NewLock(void) {
|
||||
|
@ -437,6 +450,7 @@ PRIntn PR_CeilingLog2(PRUint32 i) {
|
|||
PR_CEILING_LOG2(log2,i);
|
||||
return log2;
|
||||
}
|
||||
#endif /* ! (WIN32 && GCC) */
|
||||
|
||||
/********************** end of arena functions ***********************/
|
||||
|
||||
|
|
|
@ -109,11 +109,19 @@ endif
|
|||
|
||||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
$(STUBDLL): $(OBJDIR)/maci.o
|
||||
ifdef NS_USE_GCC
|
||||
$(LINK_DLL) -Wl,--out-implib,$(STUBLIB) $(OBJDIR)/maci.o $(OS_LIBS)
|
||||
else
|
||||
$(LINK_DLL) -MAP $(DLLBASE) $(subst /,\\,$(OBJDIR)/maci.o $(OS_LIBS))
|
||||
endif
|
||||
|
||||
$(OBJDIR)/maci.o: maci.c
|
||||
ifdef NS_USE_GCC
|
||||
$(CC) -o $@ -c $(CFLAGS) $<
|
||||
else
|
||||
$(CC) -Fo$@ -c $(CFLAGS) $<
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# The following rules packages the shared library into a JAR,
|
||||
|
|
|
@ -78,7 +78,7 @@ extern "C"
|
|||
|
||||
#ifndef RETURN_TYPE
|
||||
#if defined( _WIN32 ) || defined( __WIN32__ )
|
||||
#define RETURN_TYPE extern _declspec( dllimport ) int _cdecl
|
||||
#define RETURN_TYPE extern __declspec( dllimport ) int _cdecl
|
||||
#elif defined( _WINDOWS ) || defined( _Windows )
|
||||
#define RETURN_TYPE extern int _far _pascal
|
||||
#else
|
||||
|
|
|
@ -50,6 +50,23 @@ CRYPTO_LIB += $(DIST)/lib/bsafe$(BSAFEVER).lib
|
|||
CRYPTO_LIB += $(DIST)/lib/freebl.lib
|
||||
endif
|
||||
|
||||
# Link with the real NSPR DLLs for MinGW because the NSPR stubs in
|
||||
# stub.c can't resolve the references to the _imp__PR_XXX symbols.
|
||||
# This is merely an expedient hack and not the right solution.
|
||||
ifdef NS_USE_GCC
|
||||
EXTRA_LIBS = \
|
||||
$(DIST)/lib/$(LIB_PREFIX)swfci.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)softokn.$(LIB_SUFFIX) \
|
||||
$(CRYPTO_LIB) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)secutil.$(LIB_SUFFIX) \
|
||||
-L$(DIST)/lib \
|
||||
-lplc4 \
|
||||
-lplds4 \
|
||||
-lnspr4 \
|
||||
-lws2_32 \
|
||||
-lwinmm \
|
||||
$(NULL)
|
||||
else # ! NS_USE_GCC
|
||||
EXTRA_LIBS = \
|
||||
$(DIST)/lib/swfci.lib \
|
||||
$(DIST)/lib/softokn.lib \
|
||||
|
@ -60,6 +77,7 @@ EXTRA_LIBS = \
|
|||
wsock32.lib \
|
||||
winmm.lib \
|
||||
$(NULL)
|
||||
endif # NS_USE_GCC
|
||||
|
||||
else
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
* SW FORTEZZA to link with some low level security functions without dragging
|
||||
* in NSPR.
|
||||
*
|
||||
* $Id: stub.c,v 1.5 2002/05/01 00:06:33 wtc%netscape.com Exp $
|
||||
* $Id: stub.c,v 1.6 2003/04/20 04:23:29 wtc%netscape.com Exp $
|
||||
*/
|
||||
|
||||
#include "seccomon.h"
|
||||
|
@ -234,6 +234,12 @@ PORT_ArenaStrdup(PLArenaPool *arena,const char *str) {
|
|||
return newstr;
|
||||
}
|
||||
|
||||
/*
|
||||
* Do not use NSPR stubs for MinGW because they can't resolve references
|
||||
* to the _imp__PR_XXX symbols. This is merely an expedient hack and not
|
||||
* the right solution.
|
||||
*/
|
||||
#if !(defined(WIN32) && defined(__GNUC__))
|
||||
PR_IMPLEMENT(void)
|
||||
PR_Assert(const char *expr, const char *file, int line) {
|
||||
return;
|
||||
|
@ -256,6 +262,7 @@ PR_SetError(PRErrorCode errorCode, PRInt32 oserr) { return; }
|
|||
|
||||
PR_IMPLEMENT(void)
|
||||
PR_SetErrorText(PRIntn textLength, const char *text) { return; }
|
||||
#endif /* ! (WIN32 && GCC) */
|
||||
|
||||
|
||||
/* Old template; want to expunge it eventually. */
|
||||
|
@ -272,6 +279,12 @@ const SEC_ASN1Template SECOID_AlgorithmIDTemplate[] = {
|
|||
{ 0, }
|
||||
};
|
||||
|
||||
/*
|
||||
* Do not use NSPR stubs for MinGW because they can't resolve references
|
||||
* to the _imp__PR_XXX symbols. This is merely an expedient hack and not
|
||||
* the right solution.
|
||||
*/
|
||||
#if !(defined(WIN32) && defined(__GNUC__))
|
||||
/* now make the RNG happy */ /* This is not atomic! */
|
||||
PR_IMPLEMENT(PRInt32) PR_AtomicIncrement(PRInt32 *val) { return ++(*val); }
|
||||
/* This is not atomic! */
|
||||
|
@ -358,6 +371,7 @@ PRIntn PR_CeilingLog2(PRUint32 i) {
|
|||
PR_CEILING_LOG2(log2,i);
|
||||
return log2;
|
||||
}
|
||||
#endif /* ! (WIN32 && GCC) */
|
||||
|
||||
/********************** end of arena functions ***********************/
|
||||
|
||||
|
|
|
@ -78,12 +78,25 @@ ifeq ($(OS_TARGET),OSF1)
|
|||
endif
|
||||
|
||||
ifeq (,$(filter-out WINNT WIN95,$(OS_TARGET))) #omits WIN16 and WINCE
|
||||
ifdef NS_USE_GCC
|
||||
# Ideally, we want to use assembler
|
||||
# ASFILES = mpi_x86.s
|
||||
# DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE \
|
||||
# -DMP_ASSEMBLY_DIV_2DX1D
|
||||
# but we haven't figured out how to make it work, so we are not
|
||||
# using assembler right now.
|
||||
ASFILES =
|
||||
DEFINES += -DMP_NO_MP_WORD -DMP_USE_UINT_DIGIT
|
||||
else
|
||||
ASFILES = mpi_x86.asm
|
||||
DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE -DMP_ASSEMBLY_DIV_2DX1D
|
||||
endif
|
||||
ifdef BUILD_OPT
|
||||
ifndef NS_USE_GCC
|
||||
OPTIMIZER += -Ox # maximum optimization for freebl
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OS_TARGET),WINCE)
|
||||
DEFINES += -DMP_ARGCHK=0 # no assert in WinCE
|
||||
|
|
|
@ -40,18 +40,28 @@
|
|||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
|
||||
# don't want the 32 in the shared library name
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).dll
|
||||
IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).lib
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(DLL_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
|
||||
IMPORT_LIBRARY = $(OBJDIR)/$(IMPORT_LIB_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION)$(IMPORT_LIB_SUFFIX)
|
||||
|
||||
RES = $(OBJDIR)/$(LIBRARY_NAME).res
|
||||
RESNAME = $(LIBRARY_NAME).rc
|
||||
|
||||
ifdef NS_USE_GCC
|
||||
EXTRA_SHARED_LIBS += \
|
||||
-L$(DIST)/lib \
|
||||
-lsoftokn3 \
|
||||
-lplc4 \
|
||||
-lplds4 \
|
||||
-lnspr4\
|
||||
$(NULL)
|
||||
else # ! NS_USE_GCC
|
||||
EXTRA_SHARED_LIBS += \
|
||||
$(DIST)/lib/softokn3.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plc4.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)nspr4.lib \
|
||||
$(NULL)
|
||||
endif # NS_USE_GCC
|
||||
|
||||
else
|
||||
|
||||
|
@ -99,8 +109,10 @@ MKSHLIB += -R '$$ORIGIN'
|
|||
endif
|
||||
|
||||
ifeq (,$(filter-out WINNT WIN95,$(OS_TARGET)))
|
||||
ifndef NS_USE_GCC
|
||||
# Export 'mktemp' to be backward compatible with NSS 3.2.x and 3.3.x
|
||||
# but do not put it in the import library. See bug 142575.
|
||||
DEFINES += -DWIN32_NSS3_DLL_COMPAT
|
||||
DLLFLAGS += -EXPORT:mktemp=nss_mktemp,PRIVATE
|
||||
endif
|
||||
endif
|
||||
|
|
|
@ -36,18 +36,28 @@ RELEASE_LIBS = $(TARGETS)
|
|||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
|
||||
# don't want the 32 in the shared library name
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).dll
|
||||
IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).lib
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(DLL_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
|
||||
IMPORT_LIBRARY = $(OBJDIR)/$(IMPORT_LIB_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION)$(IMPORT_LIB_SUFFIX)
|
||||
|
||||
RES = $(OBJDIR)/smime.res
|
||||
RESNAME = smime.rc
|
||||
|
||||
ifdef NS_USE_GCC
|
||||
EXTRA_SHARED_LIBS += \
|
||||
-L$(DIST)/lib \
|
||||
-lnss3 \
|
||||
-lplc4 \
|
||||
-lplds4 \
|
||||
-lnspr4 \
|
||||
$(NULL)
|
||||
else # ! NS_USE_GCC
|
||||
EXTRA_SHARED_LIBS += \
|
||||
$(DIST)/lib/nss3.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plc4.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)nspr4.lib \
|
||||
$(NULL)
|
||||
endif # NS_USE_GCC
|
||||
|
||||
else
|
||||
|
||||
|
|
|
@ -49,12 +49,20 @@ EXTRA_LIBS += \
|
|||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
|
||||
# don't want the 32 in the shared library name
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).dll
|
||||
IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).lib
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(DLL_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
|
||||
IMPORT_LIBRARY = $(OBJDIR)/$(IMPORT_LIB_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION)$(IMPORT_LIB_SUFFIX)
|
||||
|
||||
RES = $(OBJDIR)/$(LIBRARY_NAME).res
|
||||
RESNAME = $(LIBRARY_NAME).rc
|
||||
|
||||
ifdef NS_USE_GCC
|
||||
EXTRA_SHARED_LIBS += \
|
||||
-L$(DIST)/lib \
|
||||
-lplc4 \
|
||||
-lplds4 \
|
||||
-lnspr4 \
|
||||
$(NULL)
|
||||
else # ! NS_USE_GCC
|
||||
ifdef MOZILLA_BSAFE_BUILD
|
||||
EXTRA_LIBS+=$(DIST)/lib/bsafe$(BSAFEVER).lib
|
||||
endif
|
||||
|
@ -64,6 +72,7 @@ EXTRA_SHARED_LIBS += \
|
|||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)nspr4.lib \
|
||||
$(NULL)
|
||||
endif # NS_USE_GCC
|
||||
|
||||
else
|
||||
|
||||
|
|
|
@ -43,7 +43,9 @@
|
|||
*/
|
||||
|
||||
#if defined(_WIN32)
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(disable:4103)
|
||||
#endif
|
||||
#pragma pack(push, cryptoki, 1)
|
||||
#endif
|
||||
|
||||
|
|
|
@ -41,7 +41,9 @@
|
|||
*/
|
||||
|
||||
#if defined (_WIN32)
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(disable:4103)
|
||||
#endif
|
||||
#pragma pack(pop, cryptoki)
|
||||
#endif
|
||||
|
||||
|
|
|
@ -34,18 +34,29 @@
|
|||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
|
||||
# don't want the 32 in the shared library name
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).dll
|
||||
IMPORT_LIBRARY = $(OBJDIR)/$(LIBRARY_NAME)$(LIBRARY_VERSION).lib
|
||||
SHARED_LIBRARY = $(OBJDIR)/$(DLL_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
|
||||
IMPORT_LIBRARY = $(OBJDIR)/$(IMPORT_LIB_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION)$(IMPORT_LIB_SUFFIX)
|
||||
|
||||
RES = $(OBJDIR)/ssl.res
|
||||
RESNAME = ssl.rc
|
||||
|
||||
ifdef NS_USE_GCC
|
||||
EXTRA_SHARED_LIBS += \
|
||||
-L$(DIST)/lib \
|
||||
-lnss3 \
|
||||
-lplc4 \
|
||||
-lplds4 \
|
||||
-lnspr4 \
|
||||
$(NULL)
|
||||
else # ! NS_USE_GCC
|
||||
EXTRA_SHARED_LIBS += \
|
||||
$(DIST)/lib/nss3.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plc4.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4.lib \
|
||||
$(DIST)/lib/$(NSPR31_LIB_PREFIX)nspr4.lib \
|
||||
$(NULL)
|
||||
endif # NS_USE_GCC
|
||||
|
||||
else
|
||||
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче