--- misc/icu/source/config/mh-bsd-gcc 2009-01-15 16:46:10.000000000 +0900 +++ misc/build/icu/source/config/mh-bsd-gcc 2011-06-14 17:12:14.000000000 +0900 @@ -18,7 +18,15 @@ ## Compiler switch to embed a runtime search path LD_RPATH= -LD_RPATH_PRE= -Wl,-rpath, +LD_RPATH_PRE= -Wl,-z,origin -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'" ## Compiler switch to embed a library name LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET)) --- 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 ${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 */ --- misc/icu/source/common/uloc.c 2009-01-15 08:45:56.000000000 +0100 +++ misc/build/icu/source/common/uloc.c 2009-12-14 10:51:38.000000000 +0100 @@ -1736,7 +1736,7 @@ int32_t variantLen = _deleteVariant(variant, uprv_min(variantSize, (nameCapacity-len)), variantToCompare, n); len -= variantLen; if (variantLen > 0) { - if (name[len-1] == '_') { /* delete trailing '_' */ + if (len > 0 && name[len-1] == '_') { /* delete trailing '_' */ --len; } addKeyword = VARIANT_MAP[j].keyword; @@ -1744,7 +1744,7 @@ break; } } - if (name[len-1] == '_') { /* delete trailing '_' */ + if (len > 0 && name[len-1] == '_') { /* delete trailing '_' */ --len; } } --- misc/icu/source/tools/genuca/genuca.cpp 2009-01-15 08:46:02.000000000 +0100 +++ misc/build/icu/source/tools/genuca/genuca.cpp 2013-01-30 07:45:01.000000000 +0100 @@ -395,7 +395,7 @@ copyright, status); if(U_FAILURE(*status)) { - fprintf(stderr, "Error: unable to create %s"INVC_DATA_NAME", error %s\n", outputDir, u_errorName(*status)); + fprintf(stderr, "Error: unable to create %s" INVC_DATA_NAME ", error %s\n", outputDir, u_errorName(*status)); return; } @@ -757,7 +757,7 @@ copyright, status); if(U_FAILURE(*status)) { - fprintf(stderr, "Error: unable to create %s"UCA_DATA_NAME", error %s\n", outputDir, u_errorName(*status)); + fprintf(stderr, "Error: unable to create %s" UCA_DATA_NAME ", error %s\n", outputDir, u_errorName(*status)); return; } @@ -904,9 +904,9 @@ {0x20000, 0x2A6D6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //6 CJK_IMPLICIT_TAG, /* 0x20000-0x2A6D6*/ {0x2F800, 0x2FA1D, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //7 CJK_IMPLICIT_TAG, /* 0x2F800-0x2FA1D*/ #endif - {0xAC00, 0xD7B0, UCOL_SPECIAL_FLAG | (HANGUL_SYLLABLE_TAG << 24) }, //0 HANGUL_SYLLABLE_TAG,/* AC00-D7AF*/ + {0xAC00, 0xD7B0, static_cast(UCOL_SPECIAL_FLAG | (HANGUL_SYLLABLE_TAG << 24)) }, //0 HANGUL_SYLLABLE_TAG,/* AC00-D7AF*/ //{0xD800, 0xDC00, UCOL_SPECIAL_FLAG | (LEAD_SURROGATE_TAG << 24) }, //1 LEAD_SURROGATE_TAG, /* D800-DBFF*/ - {0xDC00, 0xE000, UCOL_SPECIAL_FLAG | (TRAIL_SURROGATE_TAG << 24) }, //2 TRAIL_SURROGATE DC00-DFFF + {0xDC00, 0xE000, static_cast(UCOL_SPECIAL_FLAG | (TRAIL_SURROGATE_TAG << 24)) }, //2 TRAIL_SURROGATE DC00-DFFF // Now directly handled in the collation code by the swapCJK function. //{0x3400, 0x4DB6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //3 CJK_IMPLICIT_TAG, /* 0x3400-0x4DB5*/ //{0x4E00, 0x9FA6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24) }, //4 CJK_IMPLICIT_TAG, /* 0x4E00-0x9FA5*/