1--- misc/icu/source/common/putil.c 2008-07-01 03:41:12.000000000 +0200 2+++ misc/build/icu/source/common/putil.c 2008-09-02 07:01:29.335795765 +0200 3@@ -52,7 +52,7 @@ 4 Poorly upgraded Solaris machines can't have this defined. 5 Cleanly installed Solaris can use this #define. 6 */ 7-#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ >= 199901L) 8+#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L) 9 #define _XOPEN_SOURCE_EXTENDED 1 10 #endif 11 12--- misc/icu/source/common/unicode/pwin32.h 2008-07-01 10:41:12.000000000 +0900 13+++ misc/build/icu/source/common/unicode/pwin32.h 2008-11-05 22:37:21.479250000 +0900 14@@ -32,6 +32,10 @@ 15 #define __STDC_CONSTANT_MACROS 16 #endif 17 18+#if defined(__MINGW32__) 19+#define U_HAVE_INTTYPES_H 1 20+#endif 21+ 22 /* _MSC_VER is used to detect the Microsoft compiler. */ 23 #if defined(_MSC_VER) 24 #define U_INT64_IS_LONG_LONG 0 25--- misc/icu/source/config/mh-darwin Tue Jul 1 03:41:24 2008 26+++ misc/build/icu/source/config/mh-darwin Tue Jan 20 18:33:16 2009 27@@ -25,7 +25,7 @@ 28 SHLIB.cc= $(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS) 29 30 ## Compiler switches to embed a library name and version information 31-LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET)) 32+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)) 33 34 ## Compiler switch to embed a runtime search path 35 LD_RPATH= 36@@ -41,10 +41,6 @@ 37 ## Non-shared intermediate object suffix 38 STATIC_O = ao 39 40-## Override Versioned target for a shared library. 41-FINAL_SO_TARGET= $(basename $(SO_TARGET)).$(SO_TARGET_VERSION).$(SO) 42-MIDDLE_SO_TARGET= $(basename $(SO_TARGET)).$(SO_TARGET_VERSION_MAJOR).$(SO) 43- 44 ## Compilation rules 45 %.$(STATIC_O): $(srcdir)/%.c 46 $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< 47@@ -76,15 +72,9 @@ 48 49 ## Versioned libraries rules 50 51-%.$(SO_TARGET_VERSION_MAJOR).$(SO): %.$(SO_TARGET_VERSION).$(SO) 52+%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION) 53 $(RM) $@ && ln -s ${<F} $@ 54-%.$(SO): %.$(SO_TARGET_VERSION_MAJOR).$(SO) 55- $(RM) $@ && ln -s ${*F}.$(SO_TARGET_VERSION).$(SO) $@ 56- 57-# tzcode option 58-TZORIG_EXTRA_CFLAGS=-DSTD_INSPIRED 59- 60-# genren opts 61-GENREN_PL_OPTS=-x Mach-O -n '-g' -p '| c++filt' 62+%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR) 63+ $(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@ 64 65 ## End Darwin-specific setup 66--- misc/icu/source/config/mh-linux 2007-12-12 19:57:36.000000000 +0100 67+++ misc/build/icu/source/config/mh-linux 2008-05-21 18:59:13.000000000 +0200 68@@ -20,6 +20,14 @@ 69 LD_RPATH= 70 LD_RPATH_PRE = -Wl,-rpath, 71 72+## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH 73+## (incl. the C++ runtime libs potentially found in the URE lib dir): 74+ENABLE_RPATH=YES 75+RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib' 76+ 77+#SH# ENABLE_RPATH=YES 78+#SH# RPATHLDFLAGS="${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'" 79+ 80 ## These are the library specific LDFLAGS 81 LDFLAGSICUDT=-nodefaultlibs -nostdlib 82 83--- misc/icu/source/config/mh-mingw 2008-07-01 10:41:24.000000000 +0900 84+++ misc/build/icu/source/config/mh-mingw 2008-11-06 00:18:30.261250000 +0900 85@@ -72,10 +72,12 @@ 86 # The #M# is used to delete lines for icu-config 87 # Current full path directory. 88 #CURR_FULL_DIR=$(shell pwd -W)#M# for MSYS 89-CURR_FULL_DIR=$(subst \,/,$(shell cmd /c cd | tail --bytes=+3))#M# for Cygwin shell 90+CURR_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell 91 # Current full path directory for use in source code in a -D compiler option. 92 #CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# for MSYS 93-CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd | tail --bytes=+3))#M# for Cygwin shell 94+CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell 95+SRCDIR_DEPEND=$(shell cd $(SRCDIR) && pwd) 96+DATAFILEPATHS_DEPEND=$(foreach p,$(DATAFILEPATHS),$(shell cd $(dir $(p)) && pwd)/$(notdir $(p))) 97 98 ## Compilation rules 99 %.$(STATIC_O): $(srcdir)/%.c 100--- misc/icu/source/config/mh-solaris 2008-07-01 03:41:26.000000000 +0200 101+++ misc/build/icu/source/config/mh-solaris 2009-02-17 11:54:45.105890123 +0100 102@@ -18,17 +18,24 @@ 103 104 ## Commands to link 105 ## For Sun Workshop, use CC to link to bring in C++ runtime 106-LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS) 107-LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) 108+LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath 109+LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath 110 111 ## Commands to make a shared library 112 SHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -G 113-SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -G 114+SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -G -norunpath 115 116 ## Compiler switch to embed a runtime search path 117 LD_RPATH= -R 118 LD_RPATH_PRE= 119 120+## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH 121+ENABLE_RPATH=YES 122+RPATHLDFLAGS=${LD_RPATH}'$$ORIGIN' 123+ 124+#SH# ENABLE_RPATH=YES 125+#SH# RPATHLDFLAGS="${LD_RPATH}'$$ORIGIN'" 126+ 127 #LIBRARY_PATH_PREFIX=/usr/lib/lwp: 128 129 ## Compiler switch to embed a library name 130--- misc/icu/source/layout/ArabicShaping.cpp 2008-07-01 03:42:04.000000000 +0200 131+++ misc/build/icu/source/layout/ArabicShaping.cpp 2009-02-17 12:04:34.264869737 +0100 132@@ -79,7 +79,6 @@ 133 #define markFeatureMask 0x00040000UL 134 #define mkmkFeatureMask 0x00020000UL 135 136-#define NO_FEATURES 0 137 #define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask) 138 139 #define SHAPE_MASK 0xF0000000UL 140@@ -174,11 +173,7 @@ 141 LEUnicode c = chars[in]; 142 ShapeType t = getShapeType(c); 143 144- if (t == ST_NOSHAPE_NONE) { 145- glyphStorage.setAuxData(out, NO_FEATURES, success); 146- } else { 147- glyphStorage.setAuxData(out, ISOL_FEATURES, success); 148- } 149+ glyphStorage.setAuxData(out, ISOL_FEATURES, success); 150 151 if ((t & MASK_TRANSPARENT) != 0) { 152 continue; 153--- misc/icu/source/layoutex/ParagraphLayout.cpp 2008-07-01 03:42:02.000000000 +0200 154+++ misc/build/icu/source/layoutex/ParagraphLayout.cpp 2008-12-01 19:32:58.000000000 +0100 155@@ -868,7 +868,7 @@ 156 157 return nullLanguageCode; 158 } 159-#elif 160+#else 161 162 // TODO - dummy implementation for right now... 163 le_int32 ParagraphLayout::getLanguageCode(const Locale *locale) 164--- misc/icu/source/tools/pkgdata/cmnmode.c 2008-07-01 10:41:20.000000000 +0900 165+++ misc/build/icu/source/tools/pkgdata/cmnmode.c 2008-11-07 00:03:32.393500000 +0900 166@@ -69,7 +69,11 @@ 167 sprintf(tmp, "# List file for gencmn:\n" 168 "CMNLIST=%s%s%s_common.lst\n\n", 169 o->tmpDir, 170+#ifdef __MINGW32__ 171+ U_FILE_ALT_SEP_STRING, 172+#else 173 U_FILE_SEP_STRING, 174+#endif 175 o->shortName); 176 T_FileStream_writeLine(makefile, tmp); 177 178--- misc/icu/source/tools/pkgdata/dllmode.c 2008-07-01 10:41:20.000000000 +0900 179+++ misc/build/icu/source/tools/pkgdata/dllmode.c 2008-11-07 06:08:36.016750000 +0900 180@@ -139,7 +139,11 @@ 181 sprintf(tmp, "# List file for gencmn:\n" 182 "CMNLIST=%s%s$(NAME)_dll.lst\n\n", 183 o->tmpDir, 184+#ifdef __MINGW32__ 185+ U_FILE_ALT_SEP_STRING); 186+#else 187 U_FILE_SEP_STRING); 188+#endif 189 T_FileStream_writeLine(makefile, tmp); 190 191 if(o->hadStdin == FALSE) { /* shortcut */ 192--- misc/icu/source/tools/pkgdata/make.c 2008-07-01 10:41:20.000000000 +0900 193+++ misc/build/icu/source/tools/pkgdata/make.c 2008-11-06 23:23:04.096625000 +0900 194@@ -313,8 +313,13 @@ 195 uprv_strcpy(cfile+uprv_strlen(cfile)-uprv_strlen(objSuffix), ".c" ); /* replace .o with .c */ 196 197 /* Make up parents.. */ 198+#ifdef __MINGW32__ 199+ parentPath = uprv_malloc(1+uprv_strlen(baseName) + uprv_strlen("$(SRCDIR_DEPEND)/")); 200+ sprintf(parentPath, "$(SRCDIR_DEPEND)/%s", baseName); 201+#else 202 parentPath = uprv_malloc(1+uprv_strlen(baseName) + uprv_strlen("$(SRCDIR)/")); 203 sprintf(parentPath, "$(SRCDIR)/%s", baseName); 204+#endif 205 parents = pkg_appendToList(parents, NULL, parentPath); 206 207 /* make up commands.. */ 208@@ -379,7 +384,11 @@ 209 T_FileStream_writeLine(f, "\n"); 210 T_FileStream_writeLine(f, "BASE_OBJECTS=$(NAME)_dat.o\n"); 211 T_FileStream_writeLine(f, "\n"); 212+#ifdef __MINGW32__ 213+ T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME).dat: $(CMNLIST) $(DATAFILEPATHS_DEPEND)\n"); 214+#else 215 T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME).dat: $(CMNLIST) $(DATAFILEPATHS)\n"); 216+#endif 217 T_FileStream_writeLine(f, "\t$(INVOKE) $(ICUPKG) -t$(ICUDATA_CHAR) -c -s $(SRCDIR) -a $(CMNLIST) new $(TEMP_DIR)/$(CNAME).dat\n"); 218 T_FileStream_writeLine(f, "\n"); 219 T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME)_dat.o : $(TEMP_DIR)/$(NAME).dat\n"); 220--- misc/icu/source/tools/pkgdata/pkgdata.c 2008-07-01 10:41:20.000000000 +0900 221+++ misc/build/icu/source/tools/pkgdata/pkgdata.c 2008-11-07 05:59:27.110500000 +0900 222@@ -594,7 +594,11 @@ 223 exit(U_ILLEGAL_ARGUMENT_ERROR); 224 } 225 uprv_strcpy(tmp, o->srcDir); 226+#ifdef __MINGW32__ 227+ uprv_strcat(tmp, o->srcDir[uprv_strlen(o->srcDir)-1]==U_FILE_SEP_CHAR?"":U_FILE_ALT_SEP_STRING); 228+#else 229 uprv_strcat(tmp, o->srcDir[uprv_strlen(o->srcDir)-1]==U_FILE_SEP_CHAR?"":U_FILE_SEP_STRING); 230+#endif 231 uprv_strcat(tmp, s); 232 o->filePaths = pkg_appendToList(o->filePaths, &tail2, uprv_strdup(tmp)); 233 linePtr = lineNext; 234--- misc/icu/source/tools/pkgdata/sttcmode.c 2008-07-01 10:41:20.000000000 +0900 235+++ misc/build/icu/source/tools/pkgdata/sttcmode.c 2008-11-07 00:30:05.690375000 +0900 236@@ -172,7 +172,11 @@ 237 sprintf(tmp, "# List file for gencmn:\n" 238 "CMNLIST=%s%s$(NAME)_static.lst\n\n", 239 o->tmpDir, 240+#ifdef __MINGW32__ 241+ U_FILE_ALT_SEP_STRING); 242+#else 243 U_FILE_SEP_STRING); 244+#endif 245 T_FileStream_writeLine(makefile, tmp); 246 247 if(o->hadStdin == FALSE) { /* shortcut */ 248--- misc/icu/source/common/uloc.c 2009-01-15 08:45:56.000000000 +0100 249+++ misc/build/icu/source/common/uloc.c 2009-12-14 10:51:38.000000000 +0100 250@@ -1736,7 +1736,7 @@ 251 int32_t variantLen = _deleteVariant(variant, uprv_min(variantSize, (nameCapacity-len)), variantToCompare, n); 252 len -= variantLen; 253 if (variantLen > 0) { 254- if (name[len-1] == '_') { /* delete trailing '_' */ 255+ if (len > 0 && name[len-1] == '_') { /* delete trailing '_' */ 256 --len; 257 } 258 addKeyword = VARIANT_MAP[j].keyword; 259@@ -1744,7 +1744,7 @@ 260 break; 261 } 262 } 263- if (name[len-1] == '_') { /* delete trailing '_' */ 264+ if (len > 0 && name[len-1] == '_') { /* delete trailing '_' */ 265 --len; 266 } 267 } 268