summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--moz/extractfiles.mk12
-rw-r--r--moz/makefile.mk6
-rw-r--r--moz/patches/dtoa.patch237
-rw-r--r--moz/patches/respect_disable_pango.patch54
-rw-r--r--moz/zipped/makefile.mk2
-rw-r--r--neon/makefile.mk7
-rw-r--r--neon/neon.patch80
-rw-r--r--neon/neon_exports_unix.patch289
-rw-r--r--neon/neon_exports_win.patch295
-rw-r--r--neon/prj/d.lst6
-rw-r--r--nss/dtoa.patch110
-rw-r--r--nss/makefile.mk4
-rw-r--r--zlib/zlib-1.1.4.patch2
13 files changed, 1069 insertions, 35 deletions
diff --git a/moz/extractfiles.mk b/moz/extractfiles.mk
index dfb14afa8a3e..c98bf8574e73 100644
--- a/moz/extractfiles.mk
+++ b/moz/extractfiles.mk
@@ -408,11 +408,10 @@ $(MISC)$/build$/so_moz_include_files: $(INCCOM)$/nsBuildID.h
.ENDIF
$(TOUCH) $@
.IF "$(ENABLE_NSS_MODULE)"=="YES"
- +$(foreach,dir,$(NSS_INCLUDE_LIST) $(RENAME:s/+//) $(INCLUDE_DIR)$/$(dir) \
- $(INCLUDE_DIR)$/$(dir)_remove_me &&) \
- echo >& $(NULLDEV)
- $(foreach,dir,$(NSS_INCLUDE_LIST) rm -r -f $(INCLUDE_DIR)$/$(dir)_remove_me &&) \
- echo >& $(NULLDEV)
+ +$(foreach,dir,$(NSS_INCLUDE_LIST) $(RENAME:s/+//) $(INCLUDE_DIR)$/$(dir) $(INCLUDE_DIR)$/$(dir)_remove_me &&) echo >& $(NULLDEV)
+ $(foreach,dir,$(NSS_INCLUDE_LIST) rm -rf $(INCLUDE_DIR)$/$(dir)_remove_me &&) echo >& $(NULLDEV)
+ -$(MKDIR) $(OUT)$/inc.nss
+ cd $(OUT)$/inc.nss && $(foreach,dir,$(NSS_INCLUDE_LIST) $(GNUCOPY) -pRL $(SOLARINCDIR)$/mozilla/$(dir) . &&) echo >& $(NULLDEV)
.ENDIF
# On UNX the rules for so_moz_runtime_files copy files into the same directory
@@ -464,3 +463,6 @@ $(MISC)$/CREATETARBALL: extract_mozab_files
.ENDIF
cd $(LB) && zip -r ..$/zipped$/$(MOZTARGET)lib.zip *
cd $(INCCOM) && zip -r ..$/zipped$/$(MOZTARGET)inc.zip *
+.IF "$(ENABLE_NSS_MODULE)"=="YES"
+ cd $(OUT)$/inc.nss && zip -r ..$/zipped$/$(MOZTARGET)inc.zip *
+.ENDIF
diff --git a/moz/makefile.mk b/moz/makefile.mk
index b28605f6a073..0aabda002e2e 100644
--- a/moz/makefile.mk
+++ b/moz/makefile.mk
@@ -84,7 +84,10 @@ MOZILLA_VERSION=1.1.14
TARFILE_NAME=seamonkey-$(MOZILLA_VERSION).source
TARFILE_ROOTDIR=mozilla
-PATCH_FILES=seamonkey-source-$(MOZILLA_VERSION).patch
+PATCH_FILES = \
+ seamonkey-source-$(MOZILLA_VERSION).patch \
+ patches/dtoa.patch \
+ patches/respect_disable_pango.patch \
# This file is needed for the W32 build when BUILD_MOZAB is set
# (currently only vc8/vs2005 is supported when BUILD_MOZAB is set)
@@ -131,6 +134,7 @@ MOZILLA_CONFIGURE_FLAGS += --disable-tests \
--disable-image-encoders \
--disable-plugins \
--disable-printing \
+ --disable-pango \
--enable-extensions="pref"
#.IF "$(GUI)"!="WNT"
diff --git a/moz/patches/dtoa.patch b/moz/patches/dtoa.patch
new file mode 100644
index 000000000000..fce3be38b10b
--- /dev/null
+++ b/moz/patches/dtoa.patch
@@ -0,0 +1,237 @@
+--- misc/mozilla/nsprpub/pr/src/misc/prdtoa.c 20 Mar 2009 03:41:21 -0000 4.7
++++ misc/build/mozilla/nsprpub/pr/src/misc/prdtoa.c 15 Sep 2009 00:10:20 -0000
+@@ -169,17 +169,22 @@ void _PR_CleanupDtoa(void)
+ * Llong, #define #ULLong to be the corresponding unsigned type.
+ * #define KR_headers for old-style C function headers.
+ * #define Bad_float_h if your system lacks a float.h or if it does not
+ * define some or all of DBL_DIG, DBL_MAX_10_EXP, DBL_MAX_EXP,
+ * FLT_RADIX, FLT_ROUNDS, and DBL_MAX.
+ * #define MALLOC your_malloc, where your_malloc(n) acts like malloc(n)
+ * if memory is available and otherwise does something you deem
+ * appropriate. If MALLOC is undefined, malloc will be invoked
+- * directly -- and assumed always to succeed.
++ * directly -- and assumed always to succeed. Similarly, if you
++ * want something other than the system's free() to be called to
++ * recycle memory acquired from MALLOC, #define FREE to be the
++ * name of the alternate routine. (FREE or free is only called in
++ * pathological cases, e.g., in a dtoa call after a dtoa return in
++ * mode 3 with thousands of digits requested.)
+ * #define Omit_Private_Memory to omit logic (added Jan. 1998) for making
+ * memory allocations from a private pool of memory when possible.
+ * When used, the private pool is PRIVATE_MEM bytes long: 2304 bytes,
+ * unless #defined to be a different length. This default length
+ * suffices to get rid of MALLOC calls except for unusual cases,
+ * such as decimal-to-binary conversion of a very long string of
+ * digits. The longest string dtoa can return is about 751 bytes
+ * long. For conversions by strtod of strings of 800 digits and
+@@ -553,17 +558,17 @@ extern double rnd_prod(double, double),
+ #endif
+ #endif /* NO_LONG_LONG */
+
+ #ifndef MULTIPLE_THREADS
+ #define ACQUIRE_DTOA_LOCK(n) /*nothing*/
+ #define FREE_DTOA_LOCK(n) /*nothing*/
+ #endif
+
+-#define Kmax 15
++#define Kmax 7
+
+ struct
+ Bigint {
+ struct Bigint *next;
+ int k, maxwds, sign, wds;
+ ULong x[1];
+ };
+
+@@ -581,27 +586,28 @@ Balloc
+ {
+ int x;
+ Bigint *rv;
+ #ifndef Omit_Private_Memory
+ unsigned int len;
+ #endif
+
+ ACQUIRE_DTOA_LOCK(0);
+- if (rv = freelist[k]) {
++ /* The k > Kmax case does not need ACQUIRE_DTOA_LOCK(0), */
++ /* but this case seems very unlikely. */
++ if (k <= Kmax && (rv = freelist[k]))
+ freelist[k] = rv->next;
+- }
+ else {
+ x = 1 << k;
+ #ifdef Omit_Private_Memory
+ rv = (Bigint *)MALLOC(sizeof(Bigint) + (x-1)*sizeof(ULong));
+ #else
+ len = (sizeof(Bigint) + (x-1)*sizeof(ULong) + sizeof(double) - 1)
+ /sizeof(double);
+- if (pmem_next - private_mem + len <= PRIVATE_mem) {
++ if (k <= Kmax && pmem_next - private_mem + len <= PRIVATE_mem) {
+ rv = (Bigint*)pmem_next;
+ pmem_next += len;
+ }
+ else
+ rv = (Bigint*)MALLOC(len*sizeof(double));
+ #endif
+ rv->k = k;
+ rv->maxwds = x;
+@@ -615,20 +621,28 @@ Balloc
+ Bfree
+ #ifdef KR_headers
+ (v) Bigint *v;
+ #else
+ (Bigint *v)
+ #endif
+ {
+ if (v) {
+- ACQUIRE_DTOA_LOCK(0);
+- v->next = freelist[v->k];
+- freelist[v->k] = v;
+- FREE_DTOA_LOCK(0);
++ if (v->k > Kmax)
++#ifdef FREE
++ FREE((void*)v);
++#else
++ free((void*)v);
++#endif
++ else {
++ ACQUIRE_DTOA_LOCK(0);
++ v->next = freelist[v->k];
++ freelist[v->k] = v;
++ FREE_DTOA_LOCK(0);
++ }
+ }
+ }
+
+ #define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \
+ y->wds*sizeof(Long) + 2*sizeof(int))
+
+ static Bigint *
+ multadd
+--- misc/mozilla/js/src/jsdtoa.c 2 Sep 2007 22:20:41 -0000 3.41
++++ misc/build/mozilla/js/src/jsdtoa.c 18 Sep 2009 16:15:13 -0000
+@@ -145,17 +145,22 @@
+ * and if "unsigned Llong" does not work as an unsigned version of
+ * Llong, #define #ULLong to be the corresponding unsigned type.
+ * #define Bad_float_h if your system lacks a float.h or if it does not
+ * define some or all of DBL_DIG, DBL_MAX_10_EXP, DBL_MAX_EXP,
+ * FLT_RADIX, FLT_ROUNDS, and DBL_MAX.
+ * #define MALLOC your_malloc, where your_malloc(n) acts like malloc(n)
+ * if memory is available and otherwise does something you deem
+ * appropriate. If MALLOC is undefined, malloc will be invoked
+- * directly -- and assumed always to succeed.
++ * directly -- and assumed always to succeed. Similarly, if you
++ * want something other than the system's free() to be called to
++ * recycle memory acquired from MALLOC, #define FREE to be the
++ * name of the alternate routine. (FREE or free is only called in
++ * pathological cases, e.g., in a dtoa call after a dtoa return in
++ * mode 3 with thousands of digits requested.)
+ * #define Omit_Private_Memory to omit logic (added Jan. 1998) for making
+ * memory allocations from a private pool of memory when possible.
+ * When used, the private pool is PRIVATE_MEM bytes long: 2000 bytes,
+ * unless #defined to be a different length. This default length
+ * suffices to get rid of MALLOC calls except for unusual cases,
+ * such as decimal-to-binary conversion of a very long string of
+ * digits.
+ * #define INFNAN_CHECK on IEEE systems to cause strtod to check for
+@@ -320,17 +325,17 @@ static PRLock *freelist_lock;
+ JS_END_MACRO
+ #define RELEASE_DTOA_LOCK() PR_Unlock(freelist_lock)
+ #else
+ #undef MULTIPLE_THREADS
+ #define ACQUIRE_DTOA_LOCK() /*nothing*/
+ #define RELEASE_DTOA_LOCK() /*nothing*/
+ #endif
+
+-#define Kmax 15
++#define Kmax 7
+
+ struct Bigint {
+ struct Bigint *next; /* Free list link */
+ int32 k; /* lg2(maxwds) */
+ int32 maxwds; /* Number of words allocated for x */
+ int32 sign; /* Zero if positive, 1 if negative. Ignored by most Bigint routines! */
+ int32 wds; /* Actual number of words. If value is nonzero, the most significant word must be nonzero. */
+ ULong x[1]; /* wds words of number in little endian order */
+@@ -400,26 +405,26 @@ static Bigint *Balloc(int32 k)
+
+ #ifdef ENABLE_OOM_TESTING
+ if (++allocationNum == desiredFailure) {
+ printf("Forced Failing Allocation number %d\n", allocationNum);
+ return NULL;
+ }
+ #endif
+
+- if ((rv = freelist[k]) != NULL)
++ if (k <= Kmax && (rv = freelist[k]) != NULL)
+ freelist[k] = rv->next;
+ if (rv == NULL) {
+ x = 1 << k;
+ #ifdef Omit_Private_Memory
+ rv = (Bigint *)MALLOC(sizeof(Bigint) + (x-1)*sizeof(ULong));
+ #else
+ len = (sizeof(Bigint) + (x-1)*sizeof(ULong) + sizeof(double) - 1)
+ /sizeof(double);
+- if (pmem_next - private_mem + len <= PRIVATE_mem) {
++ if (k <= Kmax && pmem_next - private_mem + len <= PRIVATE_mem) {
+ rv = (Bigint*)pmem_next;
+ pmem_next += len;
+ }
+ else
+ rv = (Bigint*)MALLOC(len*sizeof(double));
+ #endif
+ if (!rv)
+ return NULL;
+@@ -428,18 +433,26 @@ static Bigint *Balloc(int32 k)
+ }
+ rv->sign = rv->wds = 0;
+ return rv;
+ }
+
+ static void Bfree(Bigint *v)
+ {
+ if (v) {
+- v->next = freelist[v->k];
+- freelist[v->k] = v;
++ if (v->k > Kmax)
++#ifdef FREE
++ FREE((void*)v);
++#else
++ free((void*)v);
++#endif
++ else {
++ v->next = freelist[v->k];
++ freelist[v->k] = v;
++ }
+ }
+ }
+
+ #define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \
+ y->wds*sizeof(Long) + 2*sizeof(int32))
+
+ /* Return b*m + a. Deallocate the old b. Both a and m must be between 0 and
+ * 65535 inclusive. NOTE: old b is deallocated on memory failure.
+--- misc/mozilla/js/src/jsdtoa.c 22 Sep 2009 06:16:27 -0000 3.42
++++ misc/build/mozilla/js/src/jsdtoa.c 15 Oct 2009 10:34:38 -0000
+@@ -405,19 +405,19 @@ static Bigint *Balloc(int32 k)
+
+ #ifdef ENABLE_OOM_TESTING
+ if (++allocationNum == desiredFailure) {
+ printf("Forced Failing Allocation number %d\n", allocationNum);
+ return NULL;
+ }
+ #endif
+
+- if (k <= Kmax && (rv = freelist[k]) != NULL)
++ if (k <= Kmax && (rv = freelist[k]))
+ freelist[k] = rv->next;
+- if (rv == NULL) {
++ else {
+ x = 1 << k;
+ #ifdef Omit_Private_Memory
+ rv = (Bigint *)MALLOC(sizeof(Bigint) + (x-1)*sizeof(ULong));
+ #else
+ len = (sizeof(Bigint) + (x-1)*sizeof(ULong) + sizeof(double) - 1)
+ /sizeof(double);
+ if (k <= Kmax && pmem_next - private_mem + len <= PRIVATE_mem) {
+ rv = (Bigint*)pmem_next;
diff --git a/moz/patches/respect_disable_pango.patch b/moz/patches/respect_disable_pango.patch
new file mode 100644
index 000000000000..07a83e9dd40a
--- /dev/null
+++ b/moz/patches/respect_disable_pango.patch
@@ -0,0 +1,54 @@
+--- misc/mozilla/gfx/src/gtk/nsDeviceContextGTK.cpp 2006-02-28 15:55:35.000000000 +0100
++++ misc/build/mozilla/gfx/src/gtk/nsDeviceContextGTK.cpp 2009-11-13 15:12:24.000000000 +0100
+@@ -66,10 +66,12 @@
+ #endif /* MOZ_WIDGET_GTK */
+
+ #ifdef MOZ_WIDGET_GTK2
++#ifdef MOZ_ENABLE_PANGO
+ #include <pango/pango.h>
+ #include <pango/pangox.h>
+ #include <pango/pango-fontmap.h>
+ #endif
++#endif
+
+ #ifdef MOZ_ENABLE_XFT
+ #include "nsFontMetricsUtils.h"
+@@ -963,9 +965,11 @@
+ #ifdef MOZ_WIDGET_GTK2
+
+ #ifdef MOZ_ENABLE_COREXFONTS
++#ifdef MOZ_ENABLE_PANGO
+ static void xlfd_from_pango_font_description(GtkWidget *aWidget,
+ const PangoFontDescription *aFontDesc,
+ nsString& aFontName);
++#endif
+ #endif /* MOZ_ENABLE_COREXFONTS */
+
+ nsresult
+@@ -997,10 +1001,12 @@
+ #endif /* MOZ_ENABLE_XFT */
+
+ #ifdef MOZ_ENABLE_COREXFONTS
++#ifdef MOZ_ENABLE_PANGO
+ // if name already set by Xft, do nothing
+ if (!aFont->name.Length()) {
+ xlfd_from_pango_font_description(aWidget, desc, aFont->name);
+ }
++#endif /* MOZ_ENABLE_PANGO */
+ #endif /* MOZ_ENABLE_COREXFONTS */
+ aFont->weight = pango_font_description_get_weight(desc);
+
+@@ -1104,6 +1110,7 @@
+ #endif /* MOZ_ENABLE_XFT */
+
+ #if defined(MOZ_WIDGET_GTK2) && defined(MOZ_ENABLE_COREXFONTS)
++#ifdef MOZ_ENABLE_PANGO
+ // xlfd_from_pango_font_description copied from vte, which was
+ // written by nalin@redhat.com, and added some codes.
+ static void
+@@ -1226,4 +1233,5 @@
+ g_free(spec);
+ g_object_unref(font);
+ }
++#endif
+ #endif /* MOZ_WIDGET_GTK2 && MOZ_ENABLE_COREXFONTS */
diff --git a/moz/zipped/makefile.mk b/moz/zipped/makefile.mk
index a7b3ea846e9b..b4f85f93e748 100644
--- a/moz/zipped/makefile.mk
+++ b/moz/zipped/makefile.mk
@@ -43,7 +43,7 @@ TARGET=moz_unzip
.IF "$(PREBUILD_MOZAB)" == "" || "$(SYSTEM_MOZILLA)" == "YES" || "$(WITH_MOZILLA)" == "NO"
dummy:
- @echo "No need to unpack the prebuild mozab packages"
+ @echo "No need to unpack the prebuilt mozab packages"
.ELSE # unpack mozab zips
.INCLUDE : target.mk
diff --git a/neon/makefile.mk b/neon/makefile.mk
index 247e640ce8b1..dd0022822752 100644
--- a/neon/makefile.mk
+++ b/neon/makefile.mk
@@ -54,6 +54,13 @@ NEON_NAME=neon-0.28.2
TARFILE_NAME=$(NEON_NAME)
PATCH_FILES=neon.patch
+
+.IF "$(GUI)"=="WNT"
+ PATCH_FILES+=neon_exports_win.patch
+.ELSE
+ PATCH_FILES+=neon_exports_unix.patch
+.ENDIF
+
ADDITIONAL_FILES=src$/makefile.mk src$/config.h src$/ne_ntlm.h src$/ne_ntlm.c
BUILD_DIR=src
diff --git a/neon/neon.patch b/neon/neon.patch
index 569ed0f0a189..94769f7cc58f 100644
--- a/neon/neon.patch
+++ b/neon/neon.patch
@@ -1,5 +1,5 @@
---- misc/neon-0.28.2/src/config.h 2009-08-30 19:00:56.000000000 +0200
-+++ misc/build/neon-0.28.2/src/config.h 2009-08-11 09:48:54.000000000 +0200
+--- misc/neon-0.28.2/src/config.h 2009-09-29 10:28:26.750000000 +0200
++++ misc/build/neon-0.28.2/src/config.h 2009-09-29 10:22:51.890625000 +0200
@@ -1 +1,484 @@
-dummy
+
@@ -486,15 +486,16 @@
+#else
+#define HAVE_NTLM 1
+#endif
---- misc/neon-0.28.2/src/makefile.mk 2009-08-30 19:00:56.000000000 +0200
-+++ misc/build/neon-0.28.2/src/makefile.mk 2009-08-11 09:48:54.000000000 +0200
-@@ -1 +1,59 @@
+--- misc/neon-0.28.2/src/makefile.mk 2009-09-29 10:28:26.687500000 +0200
++++ misc/build/neon-0.28.2/src/makefile.mk 2009-09-17 13:04:18.031250000 +0200
+@@ -1 +1,91 @@
-dummy
+PRJ=..$/..$/..$/..$/..
+
+PRJNAME=neon
+TARGET=neon
+LIBTARGET=NO
++USE_DEFFILE=TRUE
+EXTERNAL_WARNINGS_NOT_ERRORS := TRUE
+
+# --- Settings -----------------------------------------------------
@@ -506,9 +507,15 @@
+CDEFS+=-DHAVE_CONFIG_H
+
+.IF "$(SYSTEM_LIBXML)" == "YES"
-+CFLAGS+=-DSYSTEM_LIBXML $(LIBXML_CFLAGS)
++CFLAGS+= -DSYSTEM_LIBXML $(LIBXML_CFLAGS)
++.ELSE
++LIBXMLINCDIR=external$/libxml
++CFLAGS+= -I$(SOLARINCDIR)$/$(LIBXMLINCDIR)
+.ENDIF
+
++.IF "$(SYSTEM_OPENSSL)" == "YES"
++CFLAGS+= $(OPENSSL_CFLAGS)
++.ENDIF
+
+SLOFILES= \
+ $(SLO)$/ne_207.obj \
@@ -542,15 +549,40 @@
+# $(SLO)$/ne_gnutls.obj \
+# $(SLO)$/ne_stubssl.obj
+
-+LIB1TARGET=$(SLB)$/$(TARGET).lib
-+LIB1ARCHIV=$(LB)$/lib$(TARGET).a
-+LIB1OBJFILES=$(SLOFILES)
++SHL1OBJS=$(SLOFILES)
++SHL1TARGET=$(TARGET)
++SHL1VERSIONMAP=exports.map
++SHL1IMPLIB=i$(TARGET)
++
++SHL1STDLIBS+= $(LIBXML2LIB)
++
++.IF "$(GUI)"=="WNT"
++ SHL1STDLIBS+= $(WSOCK32LIB)
++ .IF "$(WINDOWS_VISTA_PSDK)" != ""
++ SHL1STDLIBS+= $(WS2_32LIB)
++ .ENDIF
++ SHL1STDLIBS+= $(OPENSSLLIB)
++.ELSE # WNT
++ .IF "$(OS)"=="SOLARIS"
++ SHL1STDLIBS+= -lnsl -lsocket -ldl
++ .ENDIF # SOLARIS
++ .IF "$(OS)"=="OS2"
++ SHL1STDLIBS+= pthread.lib libz.lib
++ .ENDIF # OS2
++ .IF "$(SYSTEM_OPENSSL)"=="YES"
++ SHL1STDLIBS+= $(OPENSSLLIB)
++ .ELSE
++ SHL1STDLIBS+= $(OPENSSLLIBST)
++ .ENDIF
++.ENDIF # WNT
++
++SHL1DEF=$(MISC)$/$(SHL1TARGET).def
+
+# --- Targets ------------------------------------------------------
-+
++DEF1NAME=$(SHL1TARGET)
+.INCLUDE : target.mk
--- misc/neon-0.28.2/src/ne_auth.c 2008-02-29 17:30:12.000000000 +0100
-+++ misc/build/neon-0.28.2/src/ne_auth.c 2009-08-24 15:41:32.000000000 +0200
++++ misc/build/neon-0.28.2/src/ne_auth.c 2009-09-29 10:22:51.906250000 +0200
@@ -77,6 +77,10 @@
#include "ne_sspi.h"
#endif
@@ -714,7 +746,7 @@
return ret;
}
--- misc/neon-0.28.2/src/ne_auth.h 2007-12-05 17:39:58.000000000 +0100
-+++ misc/build/neon-0.28.2/src/ne_auth.h 2009-08-24 15:16:22.000000000 +0200
++++ misc/build/neon-0.28.2/src/ne_auth.h 2009-09-29 10:22:51.921875000 +0200
@@ -47,8 +47,8 @@
* Hint: if you just wish to attempt authentication just once (even if
* the user gets the username/password wrong), have the callback
@@ -727,7 +759,7 @@
/* Set callbacks to provide credentials for server and proxy
* authentication, using the default set of authentication protocols.
--- misc/neon-0.28.2/src/ne_defs.h 2006-10-24 21:40:09.000000000 +0200
-+++ misc/build/neon-0.28.2/src/ne_defs.h 2009-08-11 09:48:54.000000000 +0200
++++ misc/build/neon-0.28.2/src/ne_defs.h 2009-09-29 10:22:51.921875000 +0200
@@ -41,7 +41,7 @@
#endif
@@ -738,7 +770,7 @@
#endif
--- misc/neon-0.28.2/src/ne_locks.h 2006-01-02 12:43:19.000000000 +0100
-+++ misc/build/neon-0.28.2/src/ne_locks.h 2009-08-11 09:48:54.000000000 +0200
++++ misc/build/neon-0.28.2/src/ne_locks.h 2009-09-29 10:22:51.921875000 +0200
@@ -22,6 +22,10 @@
#ifndef NE_LOCKS_H
#define NE_LOCKS_H
@@ -750,8 +782,8 @@
#include "ne_request.h" /* for ne_session + ne_request */
#include "ne_uri.h" /* for ne_uri */
---- misc/neon-0.28.2/src/ne_ntlm.c 2009-08-30 19:00:56.000000000 +0200
-+++ misc/build/neon-0.28.2/src/ne_ntlm.c 2009-08-11 09:48:54.000000000 +0200
+--- misc/neon-0.28.2/src/ne_ntlm.c 2009-09-29 10:28:26.875000000 +0200
++++ misc/build/neon-0.28.2/src/ne_ntlm.c 2009-09-29 10:22:51.937500000 +0200
@@ -1 +1,700 @@
-dummy
+/*
@@ -1454,8 +1486,8 @@
+
+#endif /* HAVE_OPENSSL */
+#endif /* HAVE_NTLM */
---- misc/neon-0.28.2/src/ne_ntlm.h 2009-08-30 19:00:56.000000000 +0200
-+++ misc/build/neon-0.28.2/src/ne_ntlm.h 2009-08-11 09:48:54.000000000 +0200
+--- misc/neon-0.28.2/src/ne_ntlm.h 2009-09-29 10:28:26.812500000 +0200
++++ misc/build/neon-0.28.2/src/ne_ntlm.h 2009-09-29 10:22:51.937500000 +0200
@@ -1 +1,44 @@
-dummy
+/*
@@ -1503,7 +1535,7 @@
+
+#endif /* NE_NTLM_H */
--- misc/neon-0.28.2/src/ne_socket.c 2008-02-28 14:19:19.000000000 +0100
-+++ misc/build/neon-0.28.2/src/ne_socket.c 2009-08-11 09:48:54.000000000 +0200
++++ misc/build/neon-0.28.2/src/ne_socket.c 2009-09-29 10:22:51.953125000 +0200
@@ -60,6 +60,7 @@
#include <stddef.h>
#ifdef USE_GETADDRINFO
@@ -1513,7 +1545,7 @@
#endif
--- misc/neon-0.28.2/src/ne_sspi.c 2007-08-10 17:26:08.000000000 +0200
-+++ misc/build/neon-0.28.2/src/ne_sspi.c 2009-08-11 09:48:54.000000000 +0200
++++ misc/build/neon-0.28.2/src/ne_sspi.c 2009-09-29 10:22:51.953125000 +0200
@@ -202,9 +202,48 @@
return -1;
}
@@ -1604,7 +1636,7 @@
securityStatus =
initializeSecurityContext(&sspiContext->credentials, NULL,
--- misc/neon-0.28.2/src/ne_sspi.h 2006-02-12 13:05:14.000000000 +0100
-+++ misc/build/neon-0.28.2/src/ne_sspi.h 2009-08-11 09:48:54.000000000 +0200
++++ misc/build/neon-0.28.2/src/ne_sspi.h 2009-09-29 10:22:51.968750000 +0200
@@ -41,7 +41,7 @@
int ne_sspi_clear_context(void *context);
@@ -1615,7 +1647,7 @@
#endif /* HAVE_SSPI */
--- misc/neon-0.28.2/src/ne_uri.c 2007-12-05 12:04:47.000000000 +0100
-+++ misc/build/neon-0.28.2/src/ne_uri.c 2009-08-11 09:48:54.000000000 +0200
++++ misc/build/neon-0.28.2/src/ne_uri.c 2009-09-29 10:22:51.968750000 +0200
@@ -42,7 +42,7 @@
#include "ne_alloc.h"
#include "ne_uri.h"
@@ -1662,7 +1694,7 @@
/* 4x */ AT, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL,
/* 5x */ AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, AL, GD, OT, GD, OT, US,
--- misc/neon-0.28.2/src/ne_utils.c 2006-03-07 10:36:43.000000000 +0100
-+++ misc/build/neon-0.28.2/src/ne_utils.c 2009-08-30 18:55:04.000000000 +0200
++++ misc/build/neon-0.28.2/src/ne_utils.c 2009-09-29 10:22:51.984375000 +0200
@@ -118,6 +118,9 @@
#ifdef HAVE_GNUTLS
", GNU TLS " LIBGNUTLS_VERSION
@@ -1693,7 +1725,7 @@
#endif /* NE_HAVE_* */
default:
--- misc/neon-0.28.2/src/ne_utils.h 2007-07-16 08:54:57.000000000 +0200
-+++ misc/build/neon-0.28.2/src/ne_utils.h 2009-08-24 15:47:03.000000000 +0200
++++ misc/build/neon-0.28.2/src/ne_utils.h 2009-09-29 10:22:51.984375000 +0200
@@ -54,6 +54,7 @@
#define NE_FEATURE_SOCKS (5) /* SOCKSv5 support */
#define NE_FEATURE_TS_SSL (6) /* Thread-safe SSL/TLS support */
diff --git a/neon/neon_exports_unix.patch b/neon/neon_exports_unix.patch
new file mode 100644
index 000000000000..4e8098eb1eeb
--- /dev/null
+++ b/neon/neon_exports_unix.patch
@@ -0,0 +1,289 @@
+--- misc/neon-0.28.2/src/exports.map 2009-09-29 10:28:13.531250000 +0200
++++ misc/build/neon-0.28.2/src/exports.map 2009-09-21 12:16:53.453125000 +0200
+@@ -0,0 +1,286 @@
++NEON_0_28_2 {
++ global:
++ ne__negotiate_ssl;
++ ne__ssl_exit;
++ ne__ssl_init;
++ ne_ssl_cert_cmp;
++ ne_ssl_cert_digest;
++ ne_ssl_cert_export;
++ ne_ssl_cert_free;
++ ne_ssl_cert_identity;
++ ne_ssl_cert_import;
++ ne_ssl_cert_issuer;
++ ne_ssl_cert_read;
++ ne_ssl_cert_signedby;
++ ne_ssl_cert_subject;
++ ne_ssl_cert_validity_time;
++ ne_ssl_cert_write;
++ ne_ssl_clicert_decrypt;
++ ne_ssl_clicert_encrypted;
++ ne_ssl_clicert_free;
++ ne_ssl_clicert_name;
++ ne_ssl_clicert_owner;
++ ne_ssl_clicert_read;
++ ne_ssl_context_create;
++ ne_ssl_context_destroy;
++ ne_ssl_context_keypair;
++ ne_ssl_context_set_flag;
++ ne_ssl_context_set_verify;
++ ne_ssl_context_trustcert;
++ ne_ssl_dname_cmp;
++ ne_ssl_readable_dname;
++ ne_ssl_set_clicert;
++ ne_ssl_trust_default_ca;
++ ne_xml_dispatch_request;
++ ne_xml_parse_response;
++ ne_xml_create;
++ ne_xml_currentline;
++ ne_xml_destroy;
++ ne_xml_doc_encoding;
++ ne_xml_failed;
++ ne_xml_get_attr;
++ ne_xml_get_error;
++ ne_xml_mapid;
++ ne_xml_parse;
++ ne_xml_parse_v;
++ ne_xml_push_handler;
++ ne_xml_resolve_nspace;
++ ne_xml_set_error;
++ ne_debug;
++ ne_debug_init;
++ ne_debug_mask;
++ ne_debug_stream;
++ ne_has_support;
++ ne_parse_statusline;
++ ne_version_match;
++ ne_version_string;
++ ne_path_childof;
++ ne_path_compare;
++ ne_path_escape;
++ ne_path_has_trailing_slash;
++ ne_path_parent;
++ ne_path_unescape;
++ ne_uri_cmp;
++ ne_uri_copy;
++ ne_uri_defaultport;
++ ne_uri_free;
++ ne_uri_parse;
++ ne_uri_resolve;
++ ne_uri_unparse;
++ ne_base64;
++ ne_buffer_altered;
++ ne_buffer_append;
++ ne_buffer_clear;
++ ne_buffer_concat;
++ ne_buffer_create;
++ ne_buffer_destroy;
++ ne_buffer_finish;
++ ne_buffer_grow;
++ ne_buffer_ncreate;
++ ne_buffer_snprintf;
++ ne_buffer_zappend;
++ ne_concat;
++ ne_qtoken;
++ ne_shave;
++ ne_snprintf;
++ ne_strcasecmp;
++ ne_strclean;
++ ne_strerror;
++ ne_strncasecmp;
++ ne_token;
++ ne_tolower_array;
++ ne_unbase64;
++ ne_vsnprintf;
++ ne__sock_sslsock;
++ ne_addr_destroy;
++ ne_addr_error;
++ ne_addr_first;
++ ne_addr_next;
++ ne_addr_resolve;
++ ne_addr_result;
++ ne_iaddr_cmp;
++ ne_iaddr_free;
++ ne_iaddr_make;
++ ne_iaddr_print;
++ ne_iaddr_reverse;
++ ne_iaddr_typeof;
++ ne_sock_accept;
++ ne_sock_accept_ssl;
++ ne_sock_block;
++ ne_sock_cipher;
++ ne_sock_close;
++ ne_sock_connect;
++ ne_sock_connect_ssl;
++ ne_sock_connect_timeout;
++ ne_sock_create;
++ ne_sock_error;
++ ne_sock_exit;
++ ne_sock_fd;
++ ne_sock_fullread;
++ ne_sock_fullwrite;
++ ne_sock_init;
++ ne_sock_peek;
++ ne_sock_peer;
++ ne_sock_prebind;
++ ne_sock_read;
++ ne_sock_read_timeout;
++ ne_sock_readline;
++ ne_sock_sessid;
++ ne__ssl_set_verify_err;
++ ne_close_connection;
++ ne_fill_proxy_uri;
++ ne_fill_server_uri;
++ ne_get_error;
++ ne_get_scheme;
++ ne_get_server_hostport;
++ ne_get_session_flag;
++ ne_hook_close_conn;
++ ne_hook_create_request;
++ ne_hook_destroy_request;
++ ne_hook_destroy_session;
++ ne_hook_post_headers;
++ ne_hook_post_send;
++ ne_hook_pre_send;
++ ne_session_create;
++ ne_session_destroy;
++ ne_session_proxy;
++ ne_set_addrlist;
++ ne_set_connect_timeout;
++ ne_set_error;
++ ne_set_localaddr;
++ ne_set_notifier;
++ ne_set_progress;
++ ne_set_read_timeout;
++ ne_set_session_flag;
++ ne_set_session_private;
++ ne_set_useragent;
++ ne_ssl_cert_validity;
++ ne_ssl_provide_clicert;
++ ne_ssl_set_verify;
++ ne_ssl_trust_cert;
++ ne_unhook_close_conn;
++ ne_unhook_create_request;
++ ne_unhook_destroy_request;
++ ne_unhook_destroy_session;
++ ne_unhook_post_headers;
++ ne_unhook_post_send;
++ ne_unhook_pre_send;
++ ne_version_pre_http11;
++ ne_accept_2xx;
++ ne_accept_always;
++ ne_add_request_header;
++ ne_add_response_body_reader;
++ ne_begin_request;
++ ne_discard_response;
++ ne_end_request;
++ ne_get_request_flag;
++ ne_get_request_private;
++ ne_get_response_header;
++ ne_get_session;
++ ne_get_session_private;
++ ne_get_status;
++ ne_print_request_header;
++ ne_read_response_block;
++ ne_read_response_to_fd;
++ ne_request_create;
++ ne_request_destroy;
++ ne_request_dispatch;
++ ne_response_header_iterate;
++ ne_set_request_body_buffer;
++ ne_set_request_body_fd;
++ ne_set_request_body_provider;
++ ne_set_request_flag;
++ ne_set_request_private;
++ ne_redirect_location;
++ ne_redirect_register;
++ ne_propfind_allprop;
++ ne_propfind_create;
++ ne_propfind_current_private;
++ ne_propfind_destroy;
++ ne_propfind_get_parser;
++ ne_propfind_get_request;
++ ne_propfind_named;
++ ne_propfind_set_private;
++ ne_propnames;
++ ne_proppatch;
++ ne_propset_iterate;
++ ne_propset_lang;
++ ne_propset_private;
++ ne_propset_status;
++ ne_propset_value;
++ ne_simple_propfind;
++ ne_ascii_to_md5;
++ ne_md5_create_ctx;
++ ne_md5_destroy_ctx;
++ ne_md5_dup_ctx;
++ ne_md5_finish_ascii;
++ ne_md5_finish_ctx;
++ ne_md5_process_block;
++ ne_md5_process_bytes;
++ ne_md5_read_ctx;
++ ne_md5_reset_ctx;
++ ne_md5_stream;
++ ne_md5_to_ascii;
++ ne_lock;
++ ne_lock_copy;
++ ne_lock_create;
++ ne_lock_destroy;
++ ne_lock_discover;
++ ne_lock_free;
++ ne_lock_refresh;
++ ne_lock_using_parent;
++ ne_lock_using_resource;
++ ne_lockstore_add;
++ ne_lockstore_create;
++ ne_lockstore_destroy;
++ ne_lockstore_findbyuri;
++ ne_lockstore_first;
++ ne_lockstore_next;
++ ne_lockstore_register;
++ ne_lockstore_remove;
++ ne_unlock;
++ ne_i18n_init;
++ ne_asctime_parse;
++ ne_httpdate_parse;
++ ne_iso8601_parse;
++ ne_rfc1036_parse;
++ ne_rfc1123_date;
++ ne_rfc1123_parse;
++ ne_decompress_destroy;
++ ne_decompress_reader;
++ ne_add_depth_header;
++ ne_copy;
++ ne_delete;
++ ne_get;
++ ne_get_content_type;
++ ne_get_range;
++ ne_getmodtime;
++ ne_mkcol;
++ ne_move;
++ ne_options;
++ ne_options2;
++ ne_post;
++ ne_put;
++ ne_add_proxy_auth;
++ ne_add_server_auth;
++ ne_forget_auth;
++ ne_set_proxy_auth;
++ ne_set_server_auth;
++ ne_calloc;
++ ne_malloc;
++ ne_oom_callback;
++ ne_realloc;
++ ne_strdup;
++ ne_strndup;
++ ne_acl_set;
++ ne_207_create;
++ ne_207_destroy;
++ ne_207_get_current_propstat;
++ ne_207_get_current_response;
++ ne_207_set_propstat_handlers;
++ ne_207_set_response_handlers;
++ ne_accept_207;
++ ne_simple_request;
++ local:
++ *;
++};
diff --git a/neon/neon_exports_win.patch b/neon/neon_exports_win.patch
new file mode 100644
index 000000000000..479f03a9d6bc
--- /dev/null
+++ b/neon/neon_exports_win.patch
@@ -0,0 +1,295 @@
+--- misc/neon-0.28.2/src/exports.map 2009-09-29 10:28:13.531250000 +0200
++++ misc/build/neon-0.28.2/src/exports.map 2009-09-21 12:16:53.453125000 +0200
+@@ -0,0 +1,292 @@
++NEON_0_28_2 {
++ global:
++ ne_sspi_authenticate;
++ ne_sspi_clear_context;
++ ne_sspi_create_context;
++ ne_sspi_deinit;
++ ne_sspi_destroy_context;
++ ne_sspi_init;
++ ne__negotiate_ssl;
++ ne__ssl_exit;
++ ne__ssl_init;
++ ne_ssl_cert_cmp;
++ ne_ssl_cert_digest;
++ ne_ssl_cert_export;
++ ne_ssl_cert_free;
++ ne_ssl_cert_identity;
++ ne_ssl_cert_import;
++ ne_ssl_cert_issuer;
++ ne_ssl_cert_read;
++ ne_ssl_cert_signedby;
++ ne_ssl_cert_subject;
++ ne_ssl_cert_validity_time;
++ ne_ssl_cert_write;
++ ne_ssl_clicert_decrypt;
++ ne_ssl_clicert_encrypted;
++ ne_ssl_clicert_free;
++ ne_ssl_clicert_name;
++ ne_ssl_clicert_owner;
++ ne_ssl_clicert_read;
++ ne_ssl_context_create;
++ ne_ssl_context_destroy;
++ ne_ssl_context_keypair;
++ ne_ssl_context_set_flag;
++ ne_ssl_context_set_verify;
++ ne_ssl_context_trustcert;
++ ne_ssl_dname_cmp;
++ ne_ssl_readable_dname;
++ ne_ssl_set_clicert;
++ ne_ssl_trust_default_ca;
++ ne_xml_dispatch_request;
++ ne_xml_parse_response;
++ ne_xml_create;
++ ne_xml_currentline;
++ ne_xml_destroy;
++ ne_xml_doc_encoding;
++ ne_xml_failed;
++ ne_xml_get_attr;
++ ne_xml_get_error;
++ ne_xml_mapid;
++ ne_xml_parse;
++ ne_xml_parse_v;
++ ne_xml_push_handler;
++ ne_xml_resolve_nspace;
++ ne_xml_set_error;
++ ne_debug;
++ ne_debug_init;
++ ne_debug_mask;
++ ne_debug_stream;
++ ne_has_support;
++ ne_parse_statusline;
++ ne_version_match;
++ ne_version_string;
++ ne_path_childof;
++ ne_path_compare;
++ ne_path_escape;
++ ne_path_has_trailing_slash;
++ ne_path_parent;
++ ne_path_unescape;
++ ne_uri_cmp;
++ ne_uri_copy;
++ ne_uri_defaultport;
++ ne_uri_free;
++ ne_uri_parse;
++ ne_uri_resolve;
++ ne_uri_unparse;
++ ne_base64;
++ ne_buffer_altered;
++ ne_buffer_append;
++ ne_buffer_clear;
++ ne_buffer_concat;
++ ne_buffer_create;
++ ne_buffer_destroy;
++ ne_buffer_finish;
++ ne_buffer_grow;
++ ne_buffer_ncreate;
++ ne_buffer_snprintf;
++ ne_buffer_zappend;
++ ne_concat;
++ ne_qtoken;
++ ne_shave;
++ ne_snprintf;
++ ne_strcasecmp;
++ ne_strclean;
++ ne_strerror;
++ ne_strncasecmp;
++ ne_token;
++ ne_tolower_array;
++ ne_unbase64;
++ ne_vsnprintf;
++ ne__sock_sslsock;
++ ne_addr_destroy;
++ ne_addr_error;
++ ne_addr_first;
++ ne_addr_next;
++ ne_addr_resolve;
++ ne_addr_result;
++ ne_iaddr_cmp;
++ ne_iaddr_free;
++ ne_iaddr_make;
++ ne_iaddr_print;
++ ne_iaddr_reverse;
++ ne_iaddr_typeof;
++ ne_sock_accept;
++ ne_sock_accept_ssl;
++ ne_sock_block;
++ ne_sock_cipher;
++ ne_sock_close;
++ ne_sock_connect;
++ ne_sock_connect_ssl;
++ ne_sock_connect_timeout;
++ ne_sock_create;
++ ne_sock_error;
++ ne_sock_exit;
++ ne_sock_fd;
++ ne_sock_fullread;
++ ne_sock_fullwrite;
++ ne_sock_init;
++ ne_sock_peek;
++ ne_sock_peer;
++ ne_sock_prebind;
++ ne_sock_read;
++ ne_sock_read_timeout;
++ ne_sock_readline;
++ ne_sock_sessid;
++ ne__ssl_set_verify_err;
++ ne_close_connection;
++ ne_fill_proxy_uri;
++ ne_fill_server_uri;
++ ne_get_error;
++ ne_get_scheme;
++ ne_get_server_hostport;
++ ne_get_session_flag;
++ ne_hook_close_conn;
++ ne_hook_create_request;
++ ne_hook_destroy_request;
++ ne_hook_destroy_session;
++ ne_hook_post_headers;
++ ne_hook_post_send;
++ ne_hook_pre_send;
++ ne_session_create;
++ ne_session_destroy;
++ ne_session_proxy;
++ ne_set_addrlist;
++ ne_set_connect_timeout;
++ ne_set_error;
++ ne_set_localaddr;
++ ne_set_notifier;
++ ne_set_progress;
++ ne_set_read_timeout;
++ ne_set_session_flag;
++ ne_set_session_private;
++ ne_set_useragent;
++ ne_ssl_cert_validity;
++ ne_ssl_provide_clicert;
++ ne_ssl_set_verify;
++ ne_ssl_trust_cert;
++ ne_unhook_close_conn;
++ ne_unhook_create_request;
++ ne_unhook_destroy_request;
++ ne_unhook_destroy_session;
++ ne_unhook_post_headers;
++ ne_unhook_post_send;
++ ne_unhook_pre_send;
++ ne_version_pre_http11;
++ ne_accept_2xx;
++ ne_accept_always;
++ ne_add_request_header;
++ ne_add_response_body_reader;
++ ne_begin_request;
++ ne_discard_response;
++ ne_end_request;
++ ne_get_request_flag;
++ ne_get_request_private;
++ ne_get_response_header;
++ ne_get_session;
++ ne_get_session_private;
++ ne_get_status;
++ ne_print_request_header;
++ ne_read_response_block;
++ ne_read_response_to_fd;
++ ne_request_create;
++ ne_request_destroy;
++ ne_request_dispatch;
++ ne_response_header_iterate;
++ ne_set_request_body_buffer;
++ ne_set_request_body_fd;
++ ne_set_request_body_provider;
++ ne_set_request_flag;
++ ne_set_request_private;
++ ne_redirect_location;
++ ne_redirect_register;
++ ne_propfind_allprop;
++ ne_propfind_create;
++ ne_propfind_current_private;
++ ne_propfind_destroy;
++ ne_propfind_get_parser;
++ ne_propfind_get_request;
++ ne_propfind_named;
++ ne_propfind_set_private;
++ ne_propnames;
++ ne_proppatch;
++ ne_propset_iterate;
++ ne_propset_lang;
++ ne_propset_private;
++ ne_propset_status;
++ ne_propset_value;
++ ne_simple_propfind;
++ ne_ascii_to_md5;
++ ne_md5_create_ctx;
++ ne_md5_destroy_ctx;
++ ne_md5_dup_ctx;
++ ne_md5_finish_ascii;
++ ne_md5_finish_ctx;
++ ne_md5_process_block;
++ ne_md5_process_bytes;
++ ne_md5_read_ctx;
++ ne_md5_reset_ctx;
++ ne_md5_stream;
++ ne_md5_to_ascii;
++ ne_lock;
++ ne_lock_copy;
++ ne_lock_create;
++ ne_lock_destroy;
++ ne_lock_discover;
++ ne_lock_free;
++ ne_lock_refresh;
++ ne_lock_using_parent;
++ ne_lock_using_resource;
++ ne_lockstore_add;
++ ne_lockstore_create;
++ ne_lockstore_destroy;
++ ne_lockstore_findbyuri;
++ ne_lockstore_first;
++ ne_lockstore_next;
++ ne_lockstore_register;
++ ne_lockstore_remove;
++ ne_unlock;
++ ne_i18n_init;
++ ne_asctime_parse;
++ ne_httpdate_parse;
++ ne_iso8601_parse;
++ ne_rfc1036_parse;
++ ne_rfc1123_date;
++ ne_rfc1123_parse;
++ ne_decompress_destroy;
++ ne_decompress_reader;
++ ne_add_depth_header;
++ ne_copy;
++ ne_delete;
++ ne_get;
++ ne_get_content_type;
++ ne_get_range;
++ ne_getmodtime;
++ ne_mkcol;
++ ne_move;
++ ne_options;
++ ne_options2;
++ ne_post;
++ ne_put;
++ ne_add_proxy_auth;
++ ne_add_server_auth;
++ ne_forget_auth;
++ ne_set_proxy_auth;
++ ne_set_server_auth;
++ ne_calloc;
++ ne_malloc;
++ ne_oom_callback;
++ ne_realloc;
++ ne_strdup;
++ ne_strndup;
++ ne_acl_set;
++ ne_207_create;
++ ne_207_destroy;
++ ne_207_get_current_propstat;
++ ne_207_get_current_response;
++ ne_207_set_propstat_handlers;
++ ne_207_set_response_handlers;
++ ne_accept_207;
++ ne_simple_request;
++ local:
++ *;
++};
diff --git a/neon/prj/d.lst b/neon/prj/d.lst
index c9cf72163a44..a6c269e96600 100644
--- a/neon/prj/d.lst
+++ b/neon/prj/d.lst
@@ -2,5 +2,7 @@ mkdir: %_DEST%\inc%_EXT%\external
mkdir: %_DEST%\inc%_EXT%\external\neon
..\version.mk %_DEST%\inc%_EXT%\external\neon\version.mk
..\%__SRC%\inc\ne_*.h %_DEST%\inc%_EXT%\external\neon\ne_*.h
-..\%__SRC%\slb\neon.lib %_DEST%\lib%_EXT%\neon.lib
-..\%__SRC%\lib\libneon.a %_DEST%\lib%_EXT%\libneon.a
+..\%__SRC%\lib\ineon.lib %_DEST%\lib%_EXT%\ineon.lib
+..\%__SRC%\bin\neon*.dll %_DEST%\bin%_EXT%\neon*.dll
+..\%__SRC%\lib\libneon*.so %_DEST%\lib%_EXT%\libneon*.so
+..\%__SRC%\lib\libneon*.dylib %_DEST%\lib%_EXT%\libneon*.dylib \ No newline at end of file
diff --git a/nss/dtoa.patch b/nss/dtoa.patch
new file mode 100644
index 000000000000..3632df335f83
--- /dev/null
+++ b/nss/dtoa.patch
@@ -0,0 +1,110 @@
+--- misc/mozilla/nsprpub/pr/src/misc/prdtoa.c 20 Mar 2009 03:41:21 -0000 4.7
++++ misc/build/mozilla/nsprpub/pr/src/misc/prdtoa.c 15 Sep 2009 00:10:20 -0000
+@@ -169,17 +169,22 @@ void _PR_CleanupDtoa(void)
+ * Llong, #define #ULLong to be the corresponding unsigned type.
+ * #define KR_headers for old-style C function headers.
+ * #define Bad_float_h if your system lacks a float.h or if it does not
+ * define some or all of DBL_DIG, DBL_MAX_10_EXP, DBL_MAX_EXP,
+ * FLT_RADIX, FLT_ROUNDS, and DBL_MAX.
+ * #define MALLOC your_malloc, where your_malloc(n) acts like malloc(n)
+ * if memory is available and otherwise does something you deem
+ * appropriate. If MALLOC is undefined, malloc will be invoked
+- * directly -- and assumed always to succeed.
++ * directly -- and assumed always to succeed. Similarly, if you
++ * want something other than the system's free() to be called to
++ * recycle memory acquired from MALLOC, #define FREE to be the
++ * name of the alternate routine. (FREE or free is only called in
++ * pathological cases, e.g., in a dtoa call after a dtoa return in
++ * mode 3 with thousands of digits requested.)
+ * #define Omit_Private_Memory to omit logic (added Jan. 1998) for making
+ * memory allocations from a private pool of memory when possible.
+ * When used, the private pool is PRIVATE_MEM bytes long: 2304 bytes,
+ * unless #defined to be a different length. This default length
+ * suffices to get rid of MALLOC calls except for unusual cases,
+ * such as decimal-to-binary conversion of a very long string of
+ * digits. The longest string dtoa can return is about 751 bytes
+ * long. For conversions by strtod of strings of 800 digits and
+@@ -553,17 +558,17 @@ extern double rnd_prod(double, double),
+ #endif
+ #endif /* NO_LONG_LONG */
+
+ #ifndef MULTIPLE_THREADS
+ #define ACQUIRE_DTOA_LOCK(n) /*nothing*/
+ #define FREE_DTOA_LOCK(n) /*nothing*/
+ #endif
+
+-#define Kmax 15
++#define Kmax 7
+
+ struct
+ Bigint {
+ struct Bigint *next;
+ int k, maxwds, sign, wds;
+ ULong x[1];
+ };
+
+@@ -581,27 +586,28 @@ Balloc
+ {
+ int x;
+ Bigint *rv;
+ #ifndef Omit_Private_Memory
+ unsigned int len;
+ #endif
+
+ ACQUIRE_DTOA_LOCK(0);
+- if (rv = freelist[k]) {
++ /* The k > Kmax case does not need ACQUIRE_DTOA_LOCK(0), */
++ /* but this case seems very unlikely. */
++ if (k <= Kmax && (rv = freelist[k]))
+ freelist[k] = rv->next;
+- }
+ else {
+ x = 1 << k;
+ #ifdef Omit_Private_Memory
+ rv = (Bigint *)MALLOC(sizeof(Bigint) + (x-1)*sizeof(ULong));
+ #else
+ len = (sizeof(Bigint) + (x-1)*sizeof(ULong) + sizeof(double) - 1)
+ /sizeof(double);
+- if (pmem_next - private_mem + len <= PRIVATE_mem) {
++ if (k <= Kmax && pmem_next - private_mem + len <= PRIVATE_mem) {
+ rv = (Bigint*)pmem_next;
+ pmem_next += len;
+ }
+ else
+ rv = (Bigint*)MALLOC(len*sizeof(double));
+ #endif
+ rv->k = k;
+ rv->maxwds = x;
+@@ -615,20 +621,28 @@ Balloc
+ Bfree
+ #ifdef KR_headers
+ (v) Bigint *v;
+ #else
+ (Bigint *v)
+ #endif
+ {
+ if (v) {
+- ACQUIRE_DTOA_LOCK(0);
+- v->next = freelist[v->k];
+- freelist[v->k] = v;
+- FREE_DTOA_LOCK(0);
++ if (v->k > Kmax)
++#ifdef FREE
++ FREE((void*)v);
++#else
++ free((void*)v);
++#endif
++ else {
++ ACQUIRE_DTOA_LOCK(0);
++ v->next = freelist[v->k];
++ freelist[v->k] = v;
++ FREE_DTOA_LOCK(0);
++ }
+ }
+ }
+
+ #define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \
+ y->wds*sizeof(Long) + 2*sizeof(int))
+
+ static Bigint *
+ multadd
diff --git a/nss/makefile.mk b/nss/makefile.mk
index 26bc88c80146..cdc7aad019bf 100644
--- a/nss/makefile.mk
+++ b/nss/makefile.mk
@@ -47,7 +47,9 @@ all:
TARFILE_NAME=nss_3_12_4
TARFILE_ROOTDIR=mozilla
-PATCH_FILES=nss.patch
+PATCH_FILES=nss.patch dtoa.patch
+ # Note: dtoa.patch fixes https://bugzilla.mozilla.org/show_bug.cgi?id=516396. It can be removed as soon as
+ # we upgrade to a new NSS version which already contains this fix.
.IF "$(debug)" != ""
.ELSE
diff --git a/zlib/zlib-1.1.4.patch b/zlib/zlib-1.1.4.patch
index 34f2fdde44ee..6b76c9114e6e 100644
--- a/zlib/zlib-1.1.4.patch
+++ b/zlib/zlib-1.1.4.patch
@@ -63,7 +63,7 @@
+ $(SLO_X64)$/trees.obj \
+ $(SLO_X64)$/zutil.obj \
+ $(SLO_X64)$/unzip.obj \
-+ $(SLO)$/ioapi.obj
++ $(SLO_X64)$/ioapi.obj
+
+LIB1TARGET_X64=$(SLB_X64)$/$(TARGET).lib
+LIB1OBJFILES_X64=$(SLOFILES_X64)