From 932a09f4a03a6250dd8e8f0b91e0072ab27dfaaa Mon Sep 17 00:00:00 2001
From: wagerlabs <joelr1@gmail.com>
Date: Mon, 16 Nov 2009 20:59:31 +0000
Subject: [PATCH] static build. fails at nsAppRunner.cpp:1749 with result 0x8000FFFF

---
 browser/app/Makefile.in                       |   24 ++++++
 browser/components/build/Makefile.in          |    2 +-
 browser/confvars.sh                           |    2 +-
 browser/installer/Makefile.in                 |    9 --
 browser/installer/package-manifest.in         |   11 +++-
 configure.in                                  |  104 ++++++++++++++-----------
 db/sqlite3/src/Makefile.in                    |    4 +-
 js/src/Makefile.in                            |    2 +
 js/src/dtoa.c                                 |    2 +-
 js/src/xpconnect/shell/Makefile.in            |    2 +
 security/manager/Makefile.in                  |   12 +++-
 security/manager/ssl/src/Makefile.in          |    3 +-
 security/manager/ssl/src/nsKeygenHandler.cpp  |    3 +
 security/nss/cmd/platlibs.mk                  |    2 +
 security/nss/lib/cryptohi/keythi.h            |    3 +-
 security/nss/lib/cryptohi/seckey.c            |    4 +
 toolkit/components/alerts/src/mac/Makefile.in |    3 +-
 toolkit/library/Makefile.in                   |   31 +++++++-
 toolkit/xre/Makefile.in                       |    5 +-
 xpcom/build/Makefile.in                       |    1 +
 xpcom/stub/Makefile.in                        |    6 +-
 21 files changed, 162 insertions(+), 73 deletions(-)

diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
index 0b70fef..1c59a12 100644
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -45,6 +45,8 @@ VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
+BUILD_STATIC_LIBS = 1
+
 DIRS		= profile/extensions
 
 PREF_JS_EXPORTS = $(srcdir)/profile/firefox.js \
@@ -103,6 +105,7 @@ else
 STATIC_COMPONENTS_LINKER_PATH = -L$(DEPTH)/staticlib
 endif
 LIBS += $(DEPTH)/toolkit/xre/$(LIB_PREFIX)xulapp_s.$(LIB_SUFFIX)
+OS_LIBS += -framework SystemConfiguration -framework OpenGL
 else
 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 LIBS += $(DIST)/bin/XUL
@@ -111,6 +114,15 @@ EXTRA_DSO_LIBS += xul
 endif
 endif
 
+ifdef BUILD_STATIC_LIBS
+MOZ_JS_LIBS		   = -L$(DIST)/lib -ljs_static
+NSPR_LIBS = \
+  $(DIST)/lib/libplds4.a \
+  $(DIST)/lib/libplc4.a \
+  $(DIST)/lib/libnspr4.a \
+  $(NULL)
+endif
+
 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
 TK_LIBS := $(TK_LIBS)
 endif
@@ -122,6 +134,10 @@ MOZILLA_INTERNAL_API = 1
 APP_XPCOM_LIBS = $(XPCOM_LIBS)
 endif
 
+ifdef BUILD_STATIC_LIBS
+APP_XPCOM_LIBS = $(XPCOM_LIBS)
+endif
+
 LIBS += \
 	$(STATIC_COMPONENTS_LINKER_PATH) \
 	$(EXTRA_DSO_LIBS) \
@@ -131,6 +147,13 @@ LIBS += \
 	$(TK_LIBS) \
 	$(NULL)
 
+ifdef BUILD_STATIC_LIBS
+  LIBS += \
+    -lcerthi \
+    -lpk11wrap \
+    $(NULL)
+endif
+
 # Add explicit X11 dependency when building against X11 toolkits
 ifneq (,$(filter gtk2,$(MOZ_WIDGET_TOOLKIT)))
 LIBS += $(XLDFLAGS) $(XLIBS) $(ZLIB_LIBS)
@@ -178,6 +201,7 @@ DEFINES		+= $(STATIC_DEFINES)
 CPPSRCS		+= $(STATIC_CPPSRCS)
 EXTRA_DSO_LIBS	+= $(STATIC_EXTRA_DSO_LIBS)
 EXTRA_LIBS	+= $(STATIC_EXTRA_LIBS)
+EXTRA_LIBS += ../../media/liboggz/src/liboggz/liboggz.a 
 endif
 
 ifeq ($(OS_ARCH),WINNT)
diff --git a/browser/components/build/Makefile.in b/browser/components/build/Makefile.in
index 7adf23c..03add34 100644
--- a/browser/components/build/Makefile.in
+++ b/browser/components/build/Makefile.in
@@ -10,7 +10,7 @@ LIBRARY_NAME = browsercomps
 SHORT_LIBNAME = brwsrcmp
 IS_COMPONENT = 1
 MODULE_NAME = nsBrowserCompsModule
-FORCE_SHARED_LIB = 1
+FORCE_STATIC_LIB = 1
 
 # Because we are an application component, link against the CRT statically
 # (on Windows, but only if we're not building our own CRT for jemalloc)
diff --git a/browser/confvars.sh b/browser/confvars.sh
index 56f2986..b421268 100755
--- a/browser/confvars.sh
+++ b/browser/confvars.sh
@@ -41,7 +41,7 @@ MOZ_UPDATER=1
 MOZ_PHOENIX=1
 
 MOZ_ENABLE_LIBXUL=1
-MOZ_STATIC_BUILD_UNSUPPORTED=1
+#MOZ_STATIC_BUILD_UNSUPPORTED=1
 MOZ_PLACES=1
 # always enabled for form history
 MOZ_MORKREADER=1
diff --git a/browser/installer/Makefile.in b/browser/installer/Makefile.in
index 4898815..c2fe964 100644
--- a/browser/installer/Makefile.in
+++ b/browser/installer/Makefile.in
@@ -59,16 +59,7 @@ include $(topsrcdir)/config/rules.mk
 
 MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in
 
-ifdef MOZ_ENABLE_LIBXUL
 MOZ_PKG_MANIFEST_P = $(srcdir)/package-manifest.in
-else
-define message
-You need to build with --enable-libxul (the default, unless you specify
---disable-libxul or --enable-shared or --enable-debug) to package a build.
-endef
-default libs installer::
-	$(error $(message))
-endif
 
 MOZ_NONLOCALIZED_PKG_LIST = \
 	xpcom \
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index 669b3dc..6702000 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -40,16 +40,19 @@
 #endif
 
 [xpcom]
+#ifndef MOZ_STATIC_BUILD
 @BINPATH@/@DLL_PREFIX@mozjs@DLL_SUFFIX@
 @BINPATH@/@DLL_PREFIX@plc4@DLL_SUFFIX@
 @BINPATH@/@DLL_PREFIX@plds4@DLL_SUFFIX@
 @BINPATH@/@DLL_PREFIX@xpcom@DLL_SUFFIX@
+@BINPATH@/@DLL_PREFIX@xpcom_core@DLL_SUFFIX@
 @BINPATH@/@DLL_PREFIX@nspr4@DLL_SUFFIX@
 #ifdef XP_MACOSX
 @BINPATH@/XUL
 #else
 @BINPATH@/@DLL_PREFIX@xul@DLL_SUFFIX@
 #endif
+#endif
 #ifdef WINCE
 @BINPATH@/mozce_shunt.dll
 #elifdef XP_WIN32
@@ -87,7 +90,9 @@
 #elifdef XP_OS2
 @BINPATH@/plugins/npnulos2.dll
 #endif
+#ifndef MOZ_STATIC_BUILD
 @BINPATH@/@DLL_PREFIX@mozsqlite3@DLL_SUFFIX@
+#endif
 @BINPATH@/README.txt
 @BINPATH@/LICENSE
 @BINPATH@/blocklist.xml
@@ -423,16 +428,19 @@
 
 ; [Personal Security Manager]
 ;
+#ifndef MOZ_STATIC_BUILD
 @BINPATH@/@DLL_PREFIX@nssckbi@DLL_SUFFIX@
+#endif
 @BINPATH@/components/pipboot.xpt
 @BINPATH@/components/pipnss.xpt
 @BINPATH@/components/pippki.xpt
+#ifndef MOZ_STATIC_BUILD
 @BINPATH@/@DLL_PREFIX@nss3@DLL_SUFFIX@
 @BINPATH@/@DLL_PREFIX@nssutil3@DLL_SUFFIX@
 @BINPATH@/@DLL_PREFIX@smime3@DLL_SUFFIX@
+@BINPATH@/@DLL_PREFIX@ssl3@DLL_SUFFIX@
 @BINPATH@/@DLL_PREFIX@softokn3@DLL_SUFFIX@
 @BINPATH@/@DLL_PREFIX@freebl3@DLL_SUFFIX@
-@BINPATH@/@DLL_PREFIX@ssl3@DLL_SUFFIX@
 #ifndef CROSS_COMPILE
 @BINPATH@/@DLL_PREFIX@freebl3.chk
 @BINPATH@/@DLL_PREFIX@softokn3.chk
@@ -443,6 +451,7 @@
 @BINPATH@/@DLL_PREFIX@nssdbm3.chk
 #endif
 #endif
+#endif
 @BINPATH@/chrome/pippki.jar
 @BINPATH@/chrome/pippki.manifest
 
diff --git a/configure.in b/configure.in
index 39e96be..6e57e93 100644
--- a/configure.in
+++ b/configure.in
@@ -4249,6 +4249,48 @@ if test -n "$SYSTEM_LIBXUL" && test -z "$MOZ_ENABLE_LIBXUL"; then
 fi
 
 dnl ========================================================
+dnl =
+dnl = Static Build Options
+dnl =
+dnl ========================================================
+MOZ_ARG_HEADER(Static build options)
+
+MOZ_ARG_ENABLE_BOOL(static,
+[  --enable-static         Enable building of internal static libs],
+    BUILD_STATIC_LIBS=1,
+    BUILD_STATIC_LIBS=)
+
+dnl Disable libxul in debug builds, but not for xulrunner.
+if test -n "$MOZ_DEBUG" -a "$MOZ_BUILD_APP" != "xulrunner"; then
+   MOZ_ENABLE_LIBXUL=
+fi
+
+MOZ_ARG_ENABLE_BOOL(libxul,
+[  --enable-libxul         Enable building of libxul],
+    MOZ_ENABLE_LIBXUL=1,
+    MOZ_ENABLE_LIBXUL=)
+
+if test -n "$MOZ_STATIC_BUILD_UNSUPPORTED" -a -n "$BUILD_STATIC_LIBS"; then
+	AC_MSG_ERROR([--enable-static is not supported for building $MOZ_APP_NAME. You probably want --enable-libxul.])
+fi
+
+if test -n "$MOZ_ENABLE_LIBXUL" -a -n "$BUILD_STATIC_LIBS"; then
+	AC_MSG_ERROR([--enable-libxul is not compatible with --enable-static])
+fi
+
+AC_SUBST(LIBXUL_LIBS)
+
+if test -n "$MOZ_ENABLE_LIBXUL"; then
+    XPCOM_LIBS="$LIBXUL_LIBS"
+    AC_DEFINE(MOZ_ENABLE_LIBXUL)
+else
+    if test -n "$BUILD_STATIC_LIBS"; then
+        AC_DEFINE(MOZ_STATIC_BUILD)
+    fi
+    XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS"
+fi
+
+dnl ========================================================
 dnl = If NSPR was not detected in the system, 
 dnl = use the one in the source tree (mozilla/nsprpub)
 dnl ========================================================
@@ -4312,12 +4354,24 @@ else
         \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)nssutil$NSS_VERSION\$(DLL_SUFFIX)"
 
    if test -z "$GNU_CC" && test "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "WINCE" -o "$OS_ARCH" = "OS2"; then
+       _BUILD_STATIC_NSS=1
+   else
+       _BUILD_STATIC_NSS=
+   fi
+   
+   if test -n "$BUILD_STATIC_LIBS";
+   then
+       _BUILD_STATIC_NSS=1
+   fi
+   
+   if test -n "$_BUILD_STATIC_NSS";
+   then
        NSS_LIBS="\
         \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \
-        \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)smime$NSS_VERSION.\$(IMPORT_LIB_SUFFIX) \
-        \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)ssl$NSS_VERSION.\$(IMPORT_LIB_SUFFIX) \
-        \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nss$NSS_VERSION.\$(IMPORT_LIB_SUFFIX) \
-        \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nssutil$NSS_VERSION.\$(IMPORT_LIB_SUFFIX)"
+        \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)smime.\$(LIB_SUFFIX) \
+        \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)ssl.\$(LIB_SUFFIX) \
+        \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nss.\$(LIB_SUFFIX) \
+        \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nssutil.\$(LIB_SUFFIX)"
    else
        NSS_LIBS='$(LIBS_DIR)'" -lcrmf -lsmime$NSS_VERSION -lssl$NSS_VERSION -lnss$NSS_VERSION -lnssutil$NSS_VERSION"
    fi
@@ -7226,48 +7280,6 @@ AC_SUBST(MDDEPDIR)
 
 dnl ========================================================
 dnl =
-dnl = Static Build Options
-dnl =
-dnl ========================================================
-MOZ_ARG_HEADER(Static build options)
-
-MOZ_ARG_ENABLE_BOOL(static,
-[  --enable-static         Enable building of internal static libs],
-    BUILD_STATIC_LIBS=1,
-    BUILD_STATIC_LIBS=)
-
-dnl Disable libxul in debug builds, but not for xulrunner.
-if test -n "$MOZ_DEBUG" -a "$MOZ_BUILD_APP" != "xulrunner"; then
-   MOZ_ENABLE_LIBXUL=
-fi
-
-MOZ_ARG_ENABLE_BOOL(libxul,
-[  --enable-libxul         Enable building of libxul],
-    MOZ_ENABLE_LIBXUL=1,
-    MOZ_ENABLE_LIBXUL=)
-
-if test -n "$MOZ_STATIC_BUILD_UNSUPPORTED" -a -n "$BUILD_STATIC_LIBS"; then
-	AC_MSG_ERROR([--enable-static is not supported for building $MOZ_APP_NAME. You probably want --enable-libxul.])
-fi
-
-if test -n "$MOZ_ENABLE_LIBXUL" -a -n "$BUILD_STATIC_LIBS"; then
-	AC_MSG_ERROR([--enable-libxul is not compatible with --enable-static])
-fi
-
-AC_SUBST(LIBXUL_LIBS)
-
-if test -n "$MOZ_ENABLE_LIBXUL"; then
-    XPCOM_LIBS="$LIBXUL_LIBS"
-    AC_DEFINE(MOZ_ENABLE_LIBXUL)
-else
-    if test -n "$BUILD_STATIC_LIBS"; then
-        AC_DEFINE(MOZ_STATIC_BUILD)
-    fi
-    XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS"
-fi
-
-dnl ========================================================
-dnl =
 dnl = Standalone module options
 dnl = 
 dnl ========================================================
diff --git a/db/sqlite3/src/Makefile.in b/db/sqlite3/src/Makefile.in
index ab01962..09d5985 100644
--- a/db/sqlite3/src/Makefile.in
+++ b/db/sqlite3/src/Makefile.in
@@ -47,7 +47,9 @@ include $(DEPTH)/config/autoconf.mk
 
 MODULE           = sqlite3
 LIBRARY_NAME     = mozsqlite3
-FORCE_SHARED_LIB = 1
+FORCE_STATIC_LIB = 1
+DIST_INSTALL = 1
+
 VISIBILITY_FLAGS =
 LIB_IS_C_ONLY    = 1
 
diff --git a/js/src/Makefile.in b/js/src/Makefile.in
index d469015..d449c4c 100644
--- a/js/src/Makefile.in
+++ b/js/src/Makefile.in
@@ -75,6 +75,8 @@ LIBRARY_NAME	    = mozjs
 STATIC_LIBRARY_NAME = js_static
 GRE_MODULE	    = 1
 
+DIST_INSTALL = 1
+
 LIBS		= $(NSPR_LIBS) 
 
 ifdef GNU_CXX
diff --git a/js/src/dtoa.c b/js/src/dtoa.c
index 1fdd397..d7cb992 100644
--- a/js/src/dtoa.c
+++ b/js/src/dtoa.c
@@ -2592,7 +2592,7 @@ nrv_alloc(CONST char *s, char **rve, int n)
  * when MULTIPLE_THREADS is not defined.
  */
 
- void
+static void
 #ifdef KR_headers
 freedtoa(s) char *s;
 #else
diff --git a/js/src/xpconnect/shell/Makefile.in b/js/src/xpconnect/shell/Makefile.in
index 3058f69..7c885d6 100644
--- a/js/src/xpconnect/shell/Makefile.in
+++ b/js/src/xpconnect/shell/Makefile.in
@@ -58,6 +58,8 @@ LIBS		= \
 		$(LIBXUL_LIBS) \
 		$(MOZ_JS_LIBS) \
 		$(NSPR_LIBS) \
+    -lcerthi \
+    -lpk11wrap \
 		$(NULL)
 
 NSDISTMODE = copy
diff --git a/security/manager/Makefile.in b/security/manager/Makefile.in
index 5b2eabd..342e73c 100644
--- a/security/manager/Makefile.in
+++ b/security/manager/Makefile.in
@@ -50,10 +50,17 @@ ifndef MOZ_NATIVE_NSS
 LOADABLE_ROOT_MODULE = $(DLL_PREFIX)nssckbi$(DLL_SUFFIX)
 endif
 
+ifdef BUILD_STATIC_LIBS
+NSS3_LIB = $(LIB_PREFIX)nss.$(LIB_SUFFIX)
+NSSUTIL3_LIB = $(LIB_PREFIX)nssutil.$(LIB_SUFFIX)
+SMIME3_LIB = $(LIB_PREFIX)smime.$(LIB_SUFFIX)
+SSL3_LIB =  $(LIB_PREFIX)ssl.$(LIB_SUFFIX)
+else
 NSS3_LIB = $(DLL_PREFIX)nss3$(DLL_SUFFIX)
 NSSUTIL3_LIB = $(DLL_PREFIX)nssutil3$(DLL_SUFFIX)
 SMIME3_LIB = $(DLL_PREFIX)smime3$(DLL_SUFFIX)
 SSL3_LIB =  $(DLL_PREFIX)ssl3$(DLL_SUFFIX)
+endif
 SOFTOKEN3_LIB = $(DLL_PREFIX)softokn3$(DLL_SUFFIX)
 SOFTOKEN3_CHK = $(DLL_PREFIX)softokn3.chk
 
@@ -66,7 +73,10 @@ NSSDBM3_CHK =
 endif
 
 ifndef MOZ_NATIVE_NSS
-ifneq (,$(filter OS2 WINCE WINNT,$(OS_ARCH)))
+ifeq (,$(filter OS2 WINCE WINNT,$(OS_ARCH)))
+BUILD_STATIC_LIBS = 1
+endif
+ifneq ($(BUILD_STATIC_LIBS),1)
 SDK_LIBS = \
   $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
   $(DIST)/lib/$(LIB_PREFIX)smime3.$(IMPORT_LIB_SUFFIX) \
diff --git a/security/manager/ssl/src/Makefile.in b/security/manager/ssl/src/Makefile.in
index ae916b0..b3fd510 100644
--- a/security/manager/ssl/src/Makefile.in
+++ b/security/manager/ssl/src/Makefile.in
@@ -113,7 +113,8 @@ CSRCS += md4.c
 
 EXTRA_DEPS = $(NSS_DEP_LIBS)
 
-DEFINES += -DNSS_ENABLE_ECC
+DEFINES += -DNSS_ENABLE_ECC -D_BUILD_STATIC_LIBS
+
 
 # Use local includes because they are inserted before INCLUDES
 # so that Mozilla's nss.h is used, not glibc's
diff --git a/security/manager/ssl/src/nsKeygenHandler.cpp b/security/manager/ssl/src/nsKeygenHandler.cpp
index fcf1ac5..0219d71 100644
--- a/security/manager/ssl/src/nsKeygenHandler.cpp
+++ b/security/manager/ssl/src/nsKeygenHandler.cpp
@@ -99,6 +99,9 @@ DERTemplate CERTPublicKeyAndChallengeTemplate[] =
     { 0, }
 };
 
+#ifdef _BUILD_STATIC_LIBS
+static 
+#endif
 const SEC_ASN1Template SECKEY_PQGParamsTemplate[] = {
     { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(PQGParams) },
     { SEC_ASN1_INTEGER, offsetof(PQGParams,prime) },
diff --git a/security/nss/cmd/platlibs.mk b/security/nss/cmd/platlibs.mk
index ab80243..71af876 100644
--- a/security/nss/cmd/platlibs.mk
+++ b/security/nss/cmd/platlibs.mk
@@ -35,6 +35,8 @@
 #
 # ***** END LICENSE BLOCK *****
 
+USE_STATIC_LIBS = 1
+
 # set RPATH-type linker instructions here so they can be used in the shared
 # version and in the mixed (static nss libs/shared NSPR libs) version.
 
diff --git a/security/nss/lib/cryptohi/keythi.h b/security/nss/lib/cryptohi/keythi.h
index cd55b05..813a842 100644
--- a/security/nss/lib/cryptohi/keythi.h
+++ b/security/nss/lib/cryptohi/keythi.h
@@ -61,7 +61,9 @@ extern const SEC_ASN1Template SECKEY_RSAPublicKeyTemplate[];
 extern const SEC_ASN1Template SECKEY_DSAPublicKeyTemplate[];
 extern const SEC_ASN1Template SECKEY_DHPublicKeyTemplate[];
 extern const SEC_ASN1Template SECKEY_DHParamKeyTemplate[];
+#ifndef _BUILD_STATIC_LIBS
 extern const SEC_ASN1Template SECKEY_PQGParamsTemplate[];
+#endif
 extern const SEC_ASN1Template SECKEY_DSAPrivateKeyExportTemplate[];
 
 /* Windows DLL accessor functions */
@@ -69,7 +71,6 @@ extern SEC_ASN1TemplateChooser NSS_Get_SECKEY_DSAPublicKeyTemplate;
 extern SEC_ASN1TemplateChooser NSS_Get_SECKEY_RSAPublicKeyTemplate;
 SEC_END_PROTOS
 
-
 /*
 ** RSA Public Key structures
 ** member names from PKCS#1, section 7.1 
diff --git a/security/nss/lib/cryptohi/seckey.c b/security/nss/lib/cryptohi/seckey.c
index b1ddf93..a39aa39 100644
--- a/security/nss/lib/cryptohi/seckey.c
+++ b/security/nss/lib/cryptohi/seckey.c
@@ -83,6 +83,10 @@ const SEC_ASN1Template SECKEY_DSAPublicKeyTemplate[] = {
     { 0, }
 };
 
+#ifdef _BUILD_STATIC_LIBS
+static 
+#endif
+
 const SEC_ASN1Template SECKEY_PQGParamsTemplate[] = {
     { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(SECKEYPQGParams) },
     { SEC_ASN1_INTEGER, offsetof(SECKEYPQGParams,prime) },
diff --git a/toolkit/components/alerts/src/mac/Makefile.in b/toolkit/components/alerts/src/mac/Makefile.in
index fb524dc..4d79920 100644
--- a/toolkit/components/alerts/src/mac/Makefile.in
+++ b/toolkit/components/alerts/src/mac/Makefile.in
@@ -44,8 +44,7 @@ include $(DEPTH)/config/autoconf.mk
 MODULE = alerts
 LIBRARY_NAME = alerts_s
 IS_COMPONENT = 1
-FORCE_SHARED_LIB = 1
-
+FORCE_STATIC_LIB = 1
 
 CMMSRCS = \
   nsAlertsService.mm \
diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
index ab3904b..bc4a093 100644
--- a/toolkit/library/Makefile.in
+++ b/toolkit/library/Makefile.in
@@ -50,7 +50,11 @@ include $(topsrcdir)/intl/unicharutil/util/objs.mk
 MODULE = libxul
 LIBRARY_NAME = xul
 FORCE_USE_PIC = 1
+ifdef BUILD_STATIC_LIBS
+FORCE_STATIC_LIB = 1
+else
 FORCE_SHARED_LIB = 1
+endif
 MOZILLA_INTERNAL_API = 1
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
@@ -60,7 +64,7 @@ LIBRARY_NAME=XUL
 # Setting MAKE_FRAMEWORK makes DLL_PREFIX and DLL_SUFFIX be ignored when
 # setting SHARED_LIBRARY; we need to leave DLL_PREFIX and DLL_SUFFIX
 # as-is so that dependencies of the form -ltracemalloc still work.
-MAKE_FRAMEWORK=1
+MAKE_FRAMEWORK=0
 endif
 
 
@@ -173,7 +177,30 @@ endif
 
 DEFINES += -DIMPL_XREAPI
 
-EXTRA_DSO_LDOPTS += $(NSPR_LIBS)
+EXTRA_DSO_LDOPTS += \
+  $(NSPR_LIBS) \
+  -lcerthi \
+	-lcertdb \
+	-lpk11wrap \
+	-lpkixutil \
+	-lpkixtop \
+	-lpkixcertsel \
+	-lpkcs12 \
+	-lpkcs7 \
+	-lpkixparams \
+	-lpkixsystem \
+	-lpkixpki \
+	-lpkixchecker \
+	-lpkixresults \
+	-lpkixstore \
+	-lpkixmodule \
+	-lpkixcrlsel \
+	-lnssdev \
+	-lnssb \
+	-lnsspki \
+	-lfreebl \
+	-lcryptohi \
+  $(NULL)
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
 CXXFLAGS	+= $(TK_CFLAGS)
diff --git a/toolkit/xre/Makefile.in b/toolkit/xre/Makefile.in
index 931d3c5..2a3854d 100644
--- a/toolkit/xre/Makefile.in
+++ b/toolkit/xre/Makefile.in
@@ -47,11 +47,8 @@ MODULE = xulapp
 LIBRARY_NAME = xulapp_s
 LIBXUL_LIBRARY = 1
 
-
-
-
-
 FORCE_STATIC_LIB = 1
+BUILD_STATIC_LIBS = 1
 
 XPIDLSRCS = \
 	nsINativeAppSupport.idl \
diff --git a/xpcom/build/Makefile.in b/xpcom/build/Makefile.in
index 6b3be07..a3fbbe0 100644
--- a/xpcom/build/Makefile.in
+++ b/xpcom/build/Makefile.in
@@ -50,6 +50,7 @@ MODULE		= xpcom
 LIBRARY_NAME	= xpcom_core
 SHORT_LIBNAME	= xpcomcor
 LIBXUL_LIBRARY = 1
+DIST_INSTALL = 1
 
 # This is only a static library in libxul builds
 ifdef MOZ_ENABLE_LIBXUL
diff --git a/xpcom/stub/Makefile.in b/xpcom/stub/Makefile.in
index f4f9ee8..5e7a7a1 100644
--- a/xpcom/stub/Makefile.in
+++ b/xpcom/stub/Makefile.in
@@ -50,7 +50,7 @@ LIBRARY_NAME	= xpcom
 NSDISTMODE = copy
 
 # Do not set EXPORT_LIBRARY as we do not want xpcom in the static libs list
-#EXPORT_LIBRARY = 1
+EXPORT_LIBRARY = 1
 GRE_MODULE	= 1
 MOZILLA_INTERNAL_API = 1
 
@@ -70,7 +70,9 @@ endif
 # Force use of PIC
 FORCE_USE_PIC	= 1 
 
-FORCE_SHARED_LIB = 1
+DIST_INSTALL = 1
+BUILD_STATIC_LIBS = 1
+FORCE_STATIC_LIB = 1
 
 EXTRA_DSO_LDOPTS = $(LIBS_DIR)
 
-- 
1.6.4.1

