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:
wtc%netscape.com 2003-04-20 04:23:37 +00:00
Родитель bdeb25acd4
Коммит 213a402f9d
22 изменённых файлов: 266 добавлений и 69 удалений

Просмотреть файл

@ -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