[ooo-build-commit] Branch 'ooo/OOO320' - 2 commits - icu/download icu/icu-4.0.patch icu/icu4c-4_0_1-src.patch icu/icuversion.mk icu/makefile.mk moz/extractfiles.mk moz/makefile.mk moz/patches moz/zipped nss/dtoa.patch nss/makefile.mk

Jan Holesovsky kendy at kemper.freedesktop.org
Thu Dec 3 20:46:19 PST 2009


 dev/null                                |binary
 icu/download/icu4c-4_0_1-src.tgz        |binary
 icu/icu-4.0.patch                       |  247 --------------------------------
 icu/icu4c-4_0_1-src.patch               |  247 ++++++++++++++++++++++++++++++++
 icu/icuversion.mk                       |    2 
 icu/makefile.mk                         |    4 
 moz/extractfiles.mk                     |   12 -
 moz/makefile.mk                         |    6 
 moz/patches/dtoa.patch                  |  237 ++++++++++++++++++++++++++++++
 moz/patches/respect_disable_pango.patch |   54 ++++++
 moz/zipped/makefile.mk                  |    2 
 nss/dtoa.patch                          |  110 ++++++++++++++
 nss/makefile.mk                         |    4 
 13 files changed, 667 insertions(+), 258 deletions(-)

New commits:
commit 2c7264751f496a4f20b5eb0840c6e58c3f2e19bc
Author: Oliver Bolte <obo at openoffice.org>
Date:   Tue Dec 1 09:54:48 2009 +0000

    CWS-TOOLING: integrate CWS icuooo32
    2009-11-17 15:42:42 +0100 er  r277537 : #i106904# upgrade to ICU 4.0.1

diff --git a/icu/download/icu-4.0.tar.gz b/icu/download/icu-4.0.tar.gz
deleted file mode 100755
index d174d06..0000000
Binary files a/icu/download/icu-4.0.tar.gz and /dev/null differ
diff --git a/icu/download/icu4c-4_0_1-src.tgz b/icu/download/icu4c-4_0_1-src.tgz
new file mode 100644
index 0000000..c837972
Binary files /dev/null and b/icu/download/icu4c-4_0_1-src.tgz differ
diff --git a/icu/icu-4.0.patch b/icu/icu-4.0.patch
deleted file mode 100644
index 172d624..0000000
--- a/icu/icu-4.0.patch
+++ /dev/null
@@ -1,247 +0,0 @@
---- misc/icu/source/common/putil.c	2008-07-01 03:41:12.000000000 +0200
-+++ misc/build/icu/source/common/putil.c	2008-09-02 07:01:29.335795765 +0200
-@@ -52,7 +52,7 @@
- Poorly upgraded Solaris machines can't have this defined.
- Cleanly installed Solaris can use this #define.
- */
--#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ >= 199901L)
-+#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L)
- #define _XOPEN_SOURCE_EXTENDED 1
- #endif
- 
---- misc/icu/source/common/unicode/pwin32.h	2008-07-01 10:41:12.000000000 +0900
-+++ misc/build/icu/source/common/unicode/pwin32.h	2008-11-05 22:37:21.479250000 +0900
-@@ -32,6 +32,10 @@
- #define __STDC_CONSTANT_MACROS
- #endif
- 
-+#if defined(__MINGW32__)
-+#define U_HAVE_INTTYPES_H 1
-+#endif
-+
- /* _MSC_VER is used to detect the Microsoft compiler. */
- #if defined(_MSC_VER)
- #define U_INT64_IS_LONG_LONG 0
---- misc/icu/source/config/mh-darwin	Tue Jul  1 03:41:24 2008
-+++ misc/build/icu/source/config/mh-darwin	Tue Jan 20 18:33:16 2009
-@@ -25,7 +25,7 @@
- SHLIB.cc=	$(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS)
- 
- ## Compiler switches to embed a library name and version information
--LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET))
-+LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name @executable_path/$(notdir $(FINAL_SO_TARGET))
- 
- ## Compiler switch to embed a runtime search path
- LD_RPATH=
-@@ -41,10 +41,6 @@
- ## Non-shared intermediate object suffix
- STATIC_O = ao
- 
--## Override Versioned target for a shared library.
--FINAL_SO_TARGET=  $(basename $(SO_TARGET)).$(SO_TARGET_VERSION).$(SO)
--MIDDLE_SO_TARGET= $(basename $(SO_TARGET)).$(SO_TARGET_VERSION_MAJOR).$(SO)
--
- ## Compilation rules
- %.$(STATIC_O): $(srcdir)/%.c
- 	$(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
-@@ -76,15 +72,9 @@
- 
- ## Versioned libraries rules
- 
--%.$(SO_TARGET_VERSION_MAJOR).$(SO): %.$(SO_TARGET_VERSION).$(SO)
-+%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION)
- 	$(RM) $@ && ln -s ${<F} $@
--%.$(SO): %.$(SO_TARGET_VERSION_MAJOR).$(SO)
--	$(RM) $@ && ln -s ${*F}.$(SO_TARGET_VERSION).$(SO) $@
--
--# tzcode option
--TZORIG_EXTRA_CFLAGS=-DSTD_INSPIRED
--
--# genren opts
--GENREN_PL_OPTS=-x Mach-O -n '-g' -p '| c++filt'
-+%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
-+	$(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
- 
- ## End Darwin-specific setup
---- misc/icu/source/config/mh-linux	2007-12-12 19:57:36.000000000 +0100
-+++ misc/build/icu/source/config/mh-linux	2008-05-21 18:59:13.000000000 +0200
-@@ -20,6 +20,14 @@
- LD_RPATH=	
- LD_RPATH_PRE = -Wl,-rpath,
- 
-+## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH
-+## (incl. the C++ runtime libs potentially found in the URE lib dir):
-+ENABLE_RPATH=YES
-+RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'
-+
-+#SH#  ENABLE_RPATH=YES
-+#SH#  RPATHLDFLAGS="${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'"
-+
- ## These are the library specific LDFLAGS
- LDFLAGSICUDT=-nodefaultlibs -nostdlib
- 
---- misc/icu/source/config/mh-mingw	2008-07-01 10:41:24.000000000 +0900
-+++ misc/build/icu/source/config/mh-mingw	2008-11-06 00:18:30.261250000 +0900
-@@ -72,10 +72,12 @@
- # The #M# is used to delete lines for icu-config
- # Current full path directory.
- #CURR_FULL_DIR=$(shell pwd -W)#M# for MSYS
--CURR_FULL_DIR=$(subst \,/,$(shell cmd /c cd | tail --bytes=+3))#M# for Cygwin shell
-+CURR_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell
- # Current full path directory for use in source code in a -D compiler option.
- #CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# for MSYS
--CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd | tail --bytes=+3))#M# for Cygwin shell
-+CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell
-+SRCDIR_DEPEND=$(shell cd $(SRCDIR) && pwd)
-+DATAFILEPATHS_DEPEND=$(foreach p,$(DATAFILEPATHS),$(shell cd $(dir $(p)) && pwd)/$(notdir $(p)))
- 
- ## Compilation rules
- %.$(STATIC_O): $(srcdir)/%.c
---- misc/icu/source/config/mh-solaris	2008-07-01 03:41:26.000000000 +0200
-+++ misc/build/icu/source/config/mh-solaris	2009-02-17 11:54:45.105890123 +0100
-@@ -18,17 +18,24 @@
- 
- ## Commands to link
- ## For Sun Workshop, use CC to link to bring in C++ runtime
--LINK.c=		$(CXX) $(CXXFLAGS) $(LDFLAGS)
--LINK.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS)
-+LINK.c=     $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath
-+LINK.cc=    $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath
- 
- ## Commands to make a shared library
- SHLIB.c=	$(CC) $(CFLAGS) $(LDFLAGS) -G
--SHLIB.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS) -G
-+SHLIB.cc=   $(CXX) $(CXXFLAGS) $(LDFLAGS) -G -norunpath
- 
- ## Compiler switch to embed a runtime search path
- LD_RPATH=	-R
- LD_RPATH_PRE=	
- 
-+## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH
-+ENABLE_RPATH=YES
-+RPATHLDFLAGS=${LD_RPATH}'$$ORIGIN'
-+
-+#SH#  ENABLE_RPATH=YES
-+#SH#  RPATHLDFLAGS="${LD_RPATH}'$$ORIGIN'"
-+
- #LIBRARY_PATH_PREFIX=/usr/lib/lwp:
- 
- ## Compiler switch to embed a library name
---- misc/icu/source/layout/ArabicShaping.cpp	2008-07-01 03:42:04.000000000 +0200
-+++ misc/build/icu/source/layout/ArabicShaping.cpp	2009-02-17 12:04:34.264869737 +0100
-@@ -79,7 +79,6 @@
- #define markFeatureMask 0x00040000UL
- #define mkmkFeatureMask 0x00020000UL
- 
--#define NO_FEATURES   0
- #define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask)
- 
- #define SHAPE_MASK 0xF0000000UL
-@@ -174,11 +173,7 @@
-         LEUnicode c = chars[in];
-         ShapeType t = getShapeType(c);
- 
--        if (t == ST_NOSHAPE_NONE) {
--            glyphStorage.setAuxData(out, NO_FEATURES, success);
--        } else {
--            glyphStorage.setAuxData(out, ISOL_FEATURES, success);
--        }
-+        glyphStorage.setAuxData(out, ISOL_FEATURES, success);
- 
-         if ((t & MASK_TRANSPARENT) != 0) {
-             continue;
---- misc/icu/source/layoutex/ParagraphLayout.cpp	2008-07-01 03:42:02.000000000 +0200
-+++ misc/build/icu/source/layoutex/ParagraphLayout.cpp	2008-12-01 19:32:58.000000000 +0100
-@@ -868,7 +868,7 @@
- 
-     return nullLanguageCode;
- }
--#elif
-+#else
- 
- // TODO - dummy implementation for right now...
- le_int32 ParagraphLayout::getLanguageCode(const Locale *locale)
---- misc/icu/source/tools/pkgdata/cmnmode.c	2008-07-01 10:41:20.000000000 +0900
-+++ misc/build/icu/source/tools/pkgdata/cmnmode.c	2008-11-07 00:03:32.393500000 +0900
-@@ -69,7 +69,11 @@
-   sprintf(tmp, "# List file for gencmn:\n"
-           "CMNLIST=%s%s%s_common.lst\n\n",
-           o->tmpDir,
-+#ifdef __MINGW32__
-+          U_FILE_ALT_SEP_STRING,
-+#else
-           U_FILE_SEP_STRING,
-+#endif
-           o->shortName);
-   T_FileStream_writeLine(makefile, tmp);
- 
---- misc/icu/source/tools/pkgdata/dllmode.c	2008-07-01 10:41:20.000000000 +0900
-+++ misc/build/icu/source/tools/pkgdata/dllmode.c	2008-11-07 06:08:36.016750000 +0900
-@@ -139,7 +139,11 @@
-     sprintf(tmp, "# List file for gencmn:\n"
-                  "CMNLIST=%s%s$(NAME)_dll.lst\n\n",
-                  o->tmpDir,
-+#ifdef __MINGW32__
-+                 U_FILE_ALT_SEP_STRING);
-+#else
-                  U_FILE_SEP_STRING);
-+#endif
-     T_FileStream_writeLine(makefile, tmp);
-     
-     if(o->hadStdin == FALSE) { /* shortcut */
---- misc/icu/source/tools/pkgdata/make.c	2008-07-01 10:41:20.000000000 +0900
-+++ misc/build/icu/source/tools/pkgdata/make.c	2008-11-06 23:23:04.096625000 +0900
-@@ -313,8 +313,13 @@
-       uprv_strcpy(cfile+uprv_strlen(cfile)-uprv_strlen(objSuffix), ".c" ); /* replace .o with .c */
-       
-       /* Make up parents.. */
-+#ifdef __MINGW32__
-+      parentPath = uprv_malloc(1+uprv_strlen(baseName) + uprv_strlen("$(SRCDIR_DEPEND)/"));
-+      sprintf(parentPath, "$(SRCDIR_DEPEND)/%s", baseName);
-+#else
-       parentPath = uprv_malloc(1+uprv_strlen(baseName) + uprv_strlen("$(SRCDIR)/"));
-       sprintf(parentPath, "$(SRCDIR)/%s", baseName);
-+#endif
-       parents = pkg_appendToList(parents, NULL, parentPath);
-       
-       /* make up commands.. */
-@@ -379,7 +384,11 @@
-     T_FileStream_writeLine(f, "\n");
-     T_FileStream_writeLine(f, "BASE_OBJECTS=$(NAME)_dat.o\n");
-     T_FileStream_writeLine(f, "\n");
-+#ifdef __MINGW32__
-+    T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME).dat: $(CMNLIST) $(DATAFILEPATHS_DEPEND)\n");
-+#else
-     T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME).dat: $(CMNLIST) $(DATAFILEPATHS)\n");
-+#endif
-     T_FileStream_writeLine(f, "\t$(INVOKE) $(ICUPKG) -t$(ICUDATA_CHAR) -c -s $(SRCDIR) -a $(CMNLIST) new $(TEMP_DIR)/$(CNAME).dat\n");
-     T_FileStream_writeLine(f, "\n");
-     T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME)_dat.o : $(TEMP_DIR)/$(NAME).dat\n");
---- misc/icu/source/tools/pkgdata/pkgdata.c	2008-07-01 10:41:20.000000000 +0900
-+++ misc/build/icu/source/tools/pkgdata/pkgdata.c	2008-11-07 05:59:27.110500000 +0900
-@@ -594,7 +594,11 @@
-                     exit(U_ILLEGAL_ARGUMENT_ERROR);
-                 }		
-                 uprv_strcpy(tmp, o->srcDir);
-+#ifdef __MINGW32__
-+                uprv_strcat(tmp, o->srcDir[uprv_strlen(o->srcDir)-1]==U_FILE_SEP_CHAR?"":U_FILE_ALT_SEP_STRING);
-+#else
-                 uprv_strcat(tmp, o->srcDir[uprv_strlen(o->srcDir)-1]==U_FILE_SEP_CHAR?"":U_FILE_SEP_STRING);
-+#endif
-                 uprv_strcat(tmp, s);
-                 o->filePaths = pkg_appendToList(o->filePaths, &tail2, uprv_strdup(tmp));
-                 linePtr = lineNext;
---- misc/icu/source/tools/pkgdata/sttcmode.c	2008-07-01 10:41:20.000000000 +0900
-+++ misc/build/icu/source/tools/pkgdata/sttcmode.c	2008-11-07 00:30:05.690375000 +0900
-@@ -172,7 +172,11 @@
-     sprintf(tmp, "# List file for gencmn:\n"
-         "CMNLIST=%s%s$(NAME)_static.lst\n\n",
-         o->tmpDir,
-+#ifdef __MINGW32__
-+        U_FILE_ALT_SEP_STRING);
-+#else
-         U_FILE_SEP_STRING);
-+#endif
-     T_FileStream_writeLine(makefile, tmp);
- 
-     if(o->hadStdin == FALSE) { /* shortcut */
diff --git a/icu/icu4c-4_0_1-src.patch b/icu/icu4c-4_0_1-src.patch
new file mode 100644
index 0000000..172d624
--- /dev/null
+++ b/icu/icu4c-4_0_1-src.patch
@@ -0,0 +1,247 @@
+--- misc/icu/source/common/putil.c	2008-07-01 03:41:12.000000000 +0200
++++ misc/build/icu/source/common/putil.c	2008-09-02 07:01:29.335795765 +0200
+@@ -52,7 +52,7 @@
+ Poorly upgraded Solaris machines can't have this defined.
+ Cleanly installed Solaris can use this #define.
+ */
+-#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ >= 199901L)
++#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L)
+ #define _XOPEN_SOURCE_EXTENDED 1
+ #endif
+ 
+--- misc/icu/source/common/unicode/pwin32.h	2008-07-01 10:41:12.000000000 +0900
++++ misc/build/icu/source/common/unicode/pwin32.h	2008-11-05 22:37:21.479250000 +0900
+@@ -32,6 +32,10 @@
+ #define __STDC_CONSTANT_MACROS
+ #endif
+ 
++#if defined(__MINGW32__)
++#define U_HAVE_INTTYPES_H 1
++#endif
++
+ /* _MSC_VER is used to detect the Microsoft compiler. */
+ #if defined(_MSC_VER)
+ #define U_INT64_IS_LONG_LONG 0
+--- misc/icu/source/config/mh-darwin	Tue Jul  1 03:41:24 2008
++++ misc/build/icu/source/config/mh-darwin	Tue Jan 20 18:33:16 2009
+@@ -25,7 +25,7 @@
+ SHLIB.cc=	$(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS)
+ 
+ ## Compiler switches to embed a library name and version information
+-LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET))
++LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name @executable_path/$(notdir $(FINAL_SO_TARGET))
+ 
+ ## Compiler switch to embed a runtime search path
+ LD_RPATH=
+@@ -41,10 +41,6 @@
+ ## Non-shared intermediate object suffix
+ STATIC_O = ao
+ 
+-## Override Versioned target for a shared library.
+-FINAL_SO_TARGET=  $(basename $(SO_TARGET)).$(SO_TARGET_VERSION).$(SO)
+-MIDDLE_SO_TARGET= $(basename $(SO_TARGET)).$(SO_TARGET_VERSION_MAJOR).$(SO)
+-
+ ## Compilation rules
+ %.$(STATIC_O): $(srcdir)/%.c
+ 	$(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
+@@ -76,15 +72,9 @@
+ 
+ ## Versioned libraries rules
+ 
+-%.$(SO_TARGET_VERSION_MAJOR).$(SO): %.$(SO_TARGET_VERSION).$(SO)
++%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION)
+ 	$(RM) $@ && ln -s ${<F} $@
+-%.$(SO): %.$(SO_TARGET_VERSION_MAJOR).$(SO)
+-	$(RM) $@ && ln -s ${*F}.$(SO_TARGET_VERSION).$(SO) $@
+-
+-# tzcode option
+-TZORIG_EXTRA_CFLAGS=-DSTD_INSPIRED
+-
+-# genren opts
+-GENREN_PL_OPTS=-x Mach-O -n '-g' -p '| c++filt'
++%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
++	$(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
+ 
+ ## End Darwin-specific setup
+--- misc/icu/source/config/mh-linux	2007-12-12 19:57:36.000000000 +0100
++++ misc/build/icu/source/config/mh-linux	2008-05-21 18:59:13.000000000 +0200
+@@ -20,6 +20,14 @@
+ LD_RPATH=	
+ LD_RPATH_PRE = -Wl,-rpath,
+ 
++## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH
++## (incl. the C++ runtime libs potentially found in the URE lib dir):
++ENABLE_RPATH=YES
++RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'
++
++#SH#  ENABLE_RPATH=YES
++#SH#  RPATHLDFLAGS="${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'"
++
+ ## These are the library specific LDFLAGS
+ LDFLAGSICUDT=-nodefaultlibs -nostdlib
+ 
+--- misc/icu/source/config/mh-mingw	2008-07-01 10:41:24.000000000 +0900
++++ misc/build/icu/source/config/mh-mingw	2008-11-06 00:18:30.261250000 +0900
+@@ -72,10 +72,12 @@
+ # The #M# is used to delete lines for icu-config
+ # Current full path directory.
+ #CURR_FULL_DIR=$(shell pwd -W)#M# for MSYS
+-CURR_FULL_DIR=$(subst \,/,$(shell cmd /c cd | tail --bytes=+3))#M# for Cygwin shell
++CURR_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell
+ # Current full path directory for use in source code in a -D compiler option.
+ #CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# for MSYS
+-CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd | tail --bytes=+3))#M# for Cygwin shell
++CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell
++SRCDIR_DEPEND=$(shell cd $(SRCDIR) && pwd)
++DATAFILEPATHS_DEPEND=$(foreach p,$(DATAFILEPATHS),$(shell cd $(dir $(p)) && pwd)/$(notdir $(p)))
+ 
+ ## Compilation rules
+ %.$(STATIC_O): $(srcdir)/%.c
+--- misc/icu/source/config/mh-solaris	2008-07-01 03:41:26.000000000 +0200
++++ misc/build/icu/source/config/mh-solaris	2009-02-17 11:54:45.105890123 +0100
+@@ -18,17 +18,24 @@
+ 
+ ## Commands to link
+ ## For Sun Workshop, use CC to link to bring in C++ runtime
+-LINK.c=		$(CXX) $(CXXFLAGS) $(LDFLAGS)
+-LINK.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS)
++LINK.c=     $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath
++LINK.cc=    $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath
+ 
+ ## Commands to make a shared library
+ SHLIB.c=	$(CC) $(CFLAGS) $(LDFLAGS) -G
+-SHLIB.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS) -G
++SHLIB.cc=   $(CXX) $(CXXFLAGS) $(LDFLAGS) -G -norunpath
+ 
+ ## Compiler switch to embed a runtime search path
+ LD_RPATH=	-R
+ LD_RPATH_PRE=	
+ 
++## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH
++ENABLE_RPATH=YES
++RPATHLDFLAGS=${LD_RPATH}'$$ORIGIN'
++
++#SH#  ENABLE_RPATH=YES
++#SH#  RPATHLDFLAGS="${LD_RPATH}'$$ORIGIN'"
++
+ #LIBRARY_PATH_PREFIX=/usr/lib/lwp:
+ 
+ ## Compiler switch to embed a library name
+--- misc/icu/source/layout/ArabicShaping.cpp	2008-07-01 03:42:04.000000000 +0200
++++ misc/build/icu/source/layout/ArabicShaping.cpp	2009-02-17 12:04:34.264869737 +0100
+@@ -79,7 +79,6 @@
+ #define markFeatureMask 0x00040000UL
+ #define mkmkFeatureMask 0x00020000UL
+ 
+-#define NO_FEATURES   0
+ #define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask)
+ 
+ #define SHAPE_MASK 0xF0000000UL
+@@ -174,11 +173,7 @@
+         LEUnicode c = chars[in];
+         ShapeType t = getShapeType(c);
+ 
+-        if (t == ST_NOSHAPE_NONE) {
+-            glyphStorage.setAuxData(out, NO_FEATURES, success);
+-        } else {
+-            glyphStorage.setAuxData(out, ISOL_FEATURES, success);
+-        }
++        glyphStorage.setAuxData(out, ISOL_FEATURES, success);
+ 
+         if ((t & MASK_TRANSPARENT) != 0) {
+             continue;
+--- misc/icu/source/layoutex/ParagraphLayout.cpp	2008-07-01 03:42:02.000000000 +0200
++++ misc/build/icu/source/layoutex/ParagraphLayout.cpp	2008-12-01 19:32:58.000000000 +0100
+@@ -868,7 +868,7 @@
+ 
+     return nullLanguageCode;
+ }
+-#elif
++#else
+ 
+ // TODO - dummy implementation for right now...
+ le_int32 ParagraphLayout::getLanguageCode(const Locale *locale)
+--- misc/icu/source/tools/pkgdata/cmnmode.c	2008-07-01 10:41:20.000000000 +0900
++++ misc/build/icu/source/tools/pkgdata/cmnmode.c	2008-11-07 00:03:32.393500000 +0900
+@@ -69,7 +69,11 @@
+   sprintf(tmp, "# List file for gencmn:\n"
+           "CMNLIST=%s%s%s_common.lst\n\n",
+           o->tmpDir,
++#ifdef __MINGW32__
++          U_FILE_ALT_SEP_STRING,
++#else
+           U_FILE_SEP_STRING,
++#endif
+           o->shortName);
+   T_FileStream_writeLine(makefile, tmp);
+ 
+--- misc/icu/source/tools/pkgdata/dllmode.c	2008-07-01 10:41:20.000000000 +0900
++++ misc/build/icu/source/tools/pkgdata/dllmode.c	2008-11-07 06:08:36.016750000 +0900
+@@ -139,7 +139,11 @@
+     sprintf(tmp, "# List file for gencmn:\n"
+                  "CMNLIST=%s%s$(NAME)_dll.lst\n\n",
+                  o->tmpDir,
++#ifdef __MINGW32__
++                 U_FILE_ALT_SEP_STRING);
++#else
+                  U_FILE_SEP_STRING);
++#endif
+     T_FileStream_writeLine(makefile, tmp);
+     
+     if(o->hadStdin == FALSE) { /* shortcut */
+--- misc/icu/source/tools/pkgdata/make.c	2008-07-01 10:41:20.000000000 +0900
++++ misc/build/icu/source/tools/pkgdata/make.c	2008-11-06 23:23:04.096625000 +0900
+@@ -313,8 +313,13 @@
+       uprv_strcpy(cfile+uprv_strlen(cfile)-uprv_strlen(objSuffix), ".c" ); /* replace .o with .c */
+       
+       /* Make up parents.. */
++#ifdef __MINGW32__
++      parentPath = uprv_malloc(1+uprv_strlen(baseName) + uprv_strlen("$(SRCDIR_DEPEND)/"));
++      sprintf(parentPath, "$(SRCDIR_DEPEND)/%s", baseName);
++#else
+       parentPath = uprv_malloc(1+uprv_strlen(baseName) + uprv_strlen("$(SRCDIR)/"));
+       sprintf(parentPath, "$(SRCDIR)/%s", baseName);
++#endif
+       parents = pkg_appendToList(parents, NULL, parentPath);
+       
+       /* make up commands.. */
+@@ -379,7 +384,11 @@
+     T_FileStream_writeLine(f, "\n");
+     T_FileStream_writeLine(f, "BASE_OBJECTS=$(NAME)_dat.o\n");
+     T_FileStream_writeLine(f, "\n");
++#ifdef __MINGW32__
++    T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME).dat: $(CMNLIST) $(DATAFILEPATHS_DEPEND)\n");
++#else
+     T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME).dat: $(CMNLIST) $(DATAFILEPATHS)\n");
++#endif
+     T_FileStream_writeLine(f, "\t$(INVOKE) $(ICUPKG) -t$(ICUDATA_CHAR) -c -s $(SRCDIR) -a $(CMNLIST) new $(TEMP_DIR)/$(CNAME).dat\n");
+     T_FileStream_writeLine(f, "\n");
+     T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME)_dat.o : $(TEMP_DIR)/$(NAME).dat\n");
+--- misc/icu/source/tools/pkgdata/pkgdata.c	2008-07-01 10:41:20.000000000 +0900
++++ misc/build/icu/source/tools/pkgdata/pkgdata.c	2008-11-07 05:59:27.110500000 +0900
+@@ -594,7 +594,11 @@
+                     exit(U_ILLEGAL_ARGUMENT_ERROR);
+                 }		
+                 uprv_strcpy(tmp, o->srcDir);
++#ifdef __MINGW32__
++                uprv_strcat(tmp, o->srcDir[uprv_strlen(o->srcDir)-1]==U_FILE_SEP_CHAR?"":U_FILE_ALT_SEP_STRING);
++#else
+                 uprv_strcat(tmp, o->srcDir[uprv_strlen(o->srcDir)-1]==U_FILE_SEP_CHAR?"":U_FILE_SEP_STRING);
++#endif
+                 uprv_strcat(tmp, s);
+                 o->filePaths = pkg_appendToList(o->filePaths, &tail2, uprv_strdup(tmp));
+                 linePtr = lineNext;
+--- misc/icu/source/tools/pkgdata/sttcmode.c	2008-07-01 10:41:20.000000000 +0900
++++ misc/build/icu/source/tools/pkgdata/sttcmode.c	2008-11-07 00:30:05.690375000 +0900
+@@ -172,7 +172,11 @@
+     sprintf(tmp, "# List file for gencmn:\n"
+         "CMNLIST=%s%s$(NAME)_static.lst\n\n",
+         o->tmpDir,
++#ifdef __MINGW32__
++        U_FILE_ALT_SEP_STRING);
++#else
+         U_FILE_SEP_STRING);
++#endif
+     T_FileStream_writeLine(makefile, tmp);
+ 
+     if(o->hadStdin == FALSE) { /* shortcut */
diff --git a/icu/icuversion.mk b/icu/icuversion.mk
index 7c03890..e0b599f 100755
--- a/icu/icuversion.mk
+++ b/icu/icuversion.mk
@@ -33,5 +33,5 @@ ICU_MAJOR=4
 # minor 
 ICU_MINOR=0
 # micro 
-ICU_MICRO=0
+ICU_MICRO=1
 
diff --git a/icu/makefile.mk b/icu/makefile.mk
index 7503a4c..c452443 100644
--- a/icu/makefile.mk
+++ b/icu/makefile.mk
@@ -42,9 +42,9 @@ TARGET=so_icu
 .INCLUDE :	icuversion.mk
 
 .IF "$(ICU_MICRO)"!="0"
-TARFILE_NAME=icu-$(ICU_MAJOR).$(ICU_MINOR).$(ICU_MICRO)
+TARFILE_NAME=icu4c-$(ICU_MAJOR)_$(ICU_MINOR)_$(ICU_MICRO)-src
 .ELSE
-TARFILE_NAME=icu-$(ICU_MAJOR).$(ICU_MINOR)
+TARFILE_NAME=icu4c-$(ICU_MAJOR)_$(ICU_MINOR)-src
 .ENDIF
 TARFILE_ROOTDIR=icu
 
commit 52d81a927b1efc9d695a7279847e02e980b5468f
Author: Oliver Bolte <obo at openoffice.org>
Date:   Tue Dec 1 08:53:35 2009 +0000

    CWS-TOOLING: integrate CWS dba32j
    2009-11-26 09:30:10 +0100 msc  r277648 : #100000 fix urgent testscript error
    2009-11-25 10:27:56 +0100 msc  r277625 : #i100000 fix urgent testscript error
    2009-11-17 22:16:46 +0100 fs  r277544 : CWS-TOOLING: rebase CWS dba32j to branches/OOO320 at 277531 (milestone: OOO320:m5)
    2009-11-17 14:26:47 +0100 fs  r277535 : ooops, didn't mean to commit this uncommented line
    2009-11-14 20:50:29 +0100 fs  r277505 : add a --disable-pango switch to SM's configure options, and add a patch which makes certain code respect it (well, respect it better than currently, by not using some pango_x_* functions, which are not always available, even when pango itself is present)
    2009-11-14 20:47:41 +0100 fs  r277504 : spelling
    2009-11-13 14:04:00 +0100 fs  r277502 : #i100764# (commit approved by ab at openoffice.org): getModelFromBasic: do not start with the parent's parent when looking for ThisComponent, but walk up the anchestor chain, starting with the immediate parent
    2009-11-13 11:04:15 +0100 fs  r277496 : #i100764# better heuristics for determining whether or not to participate in the ThisComponent game
    2009-11-13 11:02:30 +0100 fs  r277495 : #i100764# set the WB_EXT_DOCUMENT style at the backing component's container window, when creating it without the TaskCreator (which would normally do this)
    2009-11-11 13:49:11 +0100 fs  r277452 : #i106816#
    2009-11-11 13:48:53 +0100 fs  r277451 : fix the CREATETARBAL target, which is expected to create the zips used as prebuilts. The *inc.zip missed the NSS files in case NSS was built externally
    2009-11-11 12:15:34 +0100 fs  r277449 : update ignore list
    2009-11-11 12:09:23 +0100 fs  r277448 : add a link to the Mozilla build tools download location
    2009-11-11 12:07:16 +0100 fs  r277447 : add a link to the Mozilla build tools download location
    2009-11-06 16:23:12 +0100 fs  r277393 : #i106643#
    2009-11-03 23:20:29 +0100 fs  r277328 : #i106574#
    reverted the recent fix for issue #i105235#, and implemented a better one.
    2009-11-02 12:59:48 +0100 fs  r277294 : #i106550# errorOccured: also display the error when we're not in a nested form action - form actions are allowed to be triggered by other instances as well

diff --git a/moz/extractfiles.mk b/moz/extractfiles.mk
index dfb14af..c98bf85 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 3722229..4577625 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 0000000..fce3be3
--- /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 0000000..07a83e9
--- /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 at 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 a7b3ea8..b4f85f9 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/nss/dtoa.patch b/nss/dtoa.patch
new file mode 100644
index 0000000..3632df3
--- /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 4ddd2b3..fabae94 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


More information about the ooo-build-commit mailing list