Files
MSYS2-packages/icu/icu-51.2-msys2.patch
2014-02-03 13:59:50 +04:00

441 lines
16 KiB
Diff

diff -Naur icu-cygwin/source/aclocal.m4 icu/source/aclocal.m4
--- icu-cygwin/source/aclocal.m4 2014-02-03 10:14:51.960200000 +0400
+++ icu/source/aclocal.m4 2014-02-03 10:22:41.544600000 +0400
@@ -32,7 +32,9 @@
fi ;;
*-*-linux*|*-*-gnu|*-*-k*bsd*-gnu|*-*-kopensolaris*-gnu) icu_cv_host_frag=mh-linux ;;
i[[34567]]86-*-cygwin) icu_cv_host_frag=mh-cygwin ;;
+i[[34567]]86-*-msys) icu_cv_host_frag=mh-msys ;;
x86_64-*-cygwin) icu_cv_host_frag=mh-cygwin64 ;;
+x86_64-*-msys) icu_cv_host_frag=mh-msys64 ;;
*-*-mingw32|*-*-mingw64)
if test "$GCC" = yes; then
AC_TRY_COMPILE([
@@ -89,7 +91,7 @@
AC_DEFUN(ICU_PROG_LINK,
[
case "${host}" in
- *-*-cygwin*|*-*-mingw*)
+ *-*-cygwin*|*-*-msys*|*-*-mingw*)
if test "$GCC" != yes && test -n "`link --version 2>&1 | grep 'GNU coreutils'`"; then
AC_MSG_ERROR([link.exe is not a valid linker. Your PATH is incorrect.
Please follow the directions in ICU's readme.])
diff -Naur icu-cygwin/source/config/mh-msys icu/source/config/mh-msys
--- icu-cygwin/source/config/mh-msys 1970-01-01 03:00:00.000000000 +0300
+++ icu/source/config/mh-msys 2014-02-03 10:19:03.963000000 +0400
@@ -0,0 +1,141 @@
+## -*-makefile-*-
+## MSYS2-specific setup
+## Copyright (c) 2001-2010, International Business Machines Corporation and
+## others. All Rights Reserved.
+
+## Commands to generate dependency files
+GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS)
+GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS)
+
+## Flags to create/use a static library
+ifneq ($(ENABLE_SHARED),YES)
+## Make sure that the static libraries can be built and used
+CPPFLAGS += -DU_STATIC_IMPLEMENTATION
+else
+## Make sure that the static libraries can be built
+STATICCPPFLAGS = -DU_STATIC_IMPLEMENTATION
+endif
+
+## Flags for position independent code
+SHAREDLIBCFLAGS =
+SHAREDLIBCXXFLAGS =
+SHAREDLIBCPPFLAGS = -DPIC
+
+## Additional flags when building libraries and with threads
+THREADSCPPFLAGS = -D_REENTRANT
+LIBCPPFLAGS =
+
+# Commands to link. Link with C++ in case static libraries are used.
+LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS)
+#LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS)
+
+## Shared library options
+LD_SOOPTIONS= -Wl,-Bsymbolic
+
+## Commands to make a shared library
+# $(subst) won't work in shell script. #M# at the end omits these
+# lines from the shell script (Make only)
+SHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS) -Wl,--enable-auto-import -Wl,--out-implib=$(subst msys-,lib,$@).$(A)#M#
+SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS) -Wl,--enable-auto-import -Wl,--out-implib=$(subst msys-,lib,$@).$(A)#M#
+# the #SH# lines don't go through further postprocessing.
+# so, they must be valid shell script starting from column 4
+#SH#SHLIB_c="$(CC) $(CFLAGS) $(LDFLAGS) -shared "
+#SH#SHLIB_cc="$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared "
+
+
+## Compiler switch to embed a runtime search path
+LD_RPATH=
+LD_RPATH_PRE= -Wl,-rpath,
+
+## Compiler switch to embed a library name
+LD_SONAME =
+
+## Shared object suffix
+SO = dll
+## Non-shared intermediate object suffix
+STATIC_O = ao
+LIBICU = msys-$(ICUPREFIX)
+## To have an import library is better on MSYS2
+IMPORT_LIB_EXT = .dll.a
+
+## Compilation rules
+%.$(STATIC_O): $(srcdir)/%.c
+ $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
+%.o: $(srcdir)/%.c
+ $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
+
+%.$(STATIC_O): $(srcdir)/%.cpp
+ $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
+%.o: $(srcdir)/%.cpp
+ $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
+
+
+## Dependency rules
+%.d: $(srcdir)/%.c
+ @echo "generating dependency information for $<"
+ @echo -n "$@ " > $@
+ @$(GEN_DEPS.c) $< >> $@ || (rm -f $@ && FALSE)
+
+%.d: $(srcdir)/%.cpp
+ @echo "generating dependency information for $<"
+ @echo -n "$@ " > $@
+ @$(GEN_DEPS.cc) $< >> $@ || (rm -f $@ && FALSE)
+
+## Versioned target for a shared library.
+## Since symbolic links don't work the same way on Windows,
+## we only use the version major number.
+#FINAL_SO_TARGET=$(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO)
+FINAL_SO_TARGET=$(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO)
+MIDDLE_SO_TARGET=$(FINAL_SO_TARGET)
+
+IMPORT_LIB = $(subst msys-,lib,$(FINAL_SO_TARGET)).$(A)#M#
+MIDDLE_IMPORT_LIB = $(subst msys-,lib,$(basename $(SO_TARGET)))$(SO_TARGET_VERSION_MAJOR).$(SO).$(A)#M#
+FINAL_IMPORT_LIB = $(IMPORT_LIB)#M#
+
+# The following is for Makefile.inc's use.
+ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR)
+
+## Versioned libraries rules
+#%$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO)
+# $(RM) $@ && cp ${<F} $@
+%.$(SO): %$(SO_TARGET_VERSION_MAJOR).$(SO)
+ $(RM) $(subst msys-,lib,$@).$(A) && ln -s $(subst msys-,lib,${<F}).$(A) $(subst msys-,lib,$@).$(A)
+
+## Install libraries as executable
+INSTALL-L=$(INSTALL_PROGRAM)
+
+## Bind internal references
+
+# LDflags that pkgdata will use
+BIR_LDFLAGS= -Wl,-Bsymbolic
+
+# Dependencies [i.e. map files] for the final library
+BIR_DEPS=
+
+# Environment variable to set a runtime search path
+LDLIBRARYPATH_ENVVAR = PATH
+
+# The type of assembly to write for generating an object file
+GENCCODE_ASSEMBLY=-a gcc-cygwin
+
+# put this here again so it gets cyguc...
+
+#SH#ICULIBS_COMMON_LIB_NAME="${LIBICU}uc${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}.${SO}"
+
+# for icu-config
+
+#SH### copied from Makefile.inc
+#SH#ICULIBS_COMMON="-l${LIBICU}uc${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_DATA="-l${LIBICU}${DATA_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_I18N="-l${LIBICU}${I18N_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_TOOLUTIL="-l${LIBICU}tu${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_CTESTFW="-l${LIBICU}ctestfw${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_ICUIO="-l${LIBICU}io${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_OBSOLETE="-l${LIBICU}obsolete${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_LAYOUT="-l${LIBICU}le${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_LAYOUTEX="-l${LIBICU}lx${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_BASE="${LIBS} -L${libdir}"
+#SH#ICULIBS="${ICULIBS_BASE} ${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA}"
+
+## End MSYS2-specific setup
+
diff -Naur icu-cygwin/source/config/mh-msys64 icu/source/config/mh-msys64
--- icu-cygwin/source/config/mh-msys64 1970-01-01 03:00:00.000000000 +0300
+++ icu/source/config/mh-msys64 2014-02-03 10:18:49.330200000 +0400
@@ -0,0 +1,141 @@
+## -*-makefile-*-
+## MSYS2-specific setup
+## Copyright (c) 2001-2010, International Business Machines Corporation and
+## others. All Rights Reserved.
+
+## Commands to generate dependency files
+GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS)
+GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS)
+
+## Flags to create/use a static library
+ifneq ($(ENABLE_SHARED),YES)
+## Make sure that the static libraries can be built and used
+CPPFLAGS += -DU_STATIC_IMPLEMENTATION
+else
+## Make sure that the static libraries can be built
+STATICCPPFLAGS = -DU_STATIC_IMPLEMENTATION
+endif
+
+## Flags for position independent code
+SHAREDLIBCFLAGS =
+SHAREDLIBCXXFLAGS =
+SHAREDLIBCPPFLAGS = -DPIC
+
+## Additional flags when building libraries and with threads
+THREADSCPPFLAGS = -D_REENTRANT
+LIBCPPFLAGS =
+
+# Commands to link. Link with C++ in case static libraries are used.
+LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS)
+#LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS)
+
+## Shared library options
+LD_SOOPTIONS= -Wl,-Bsymbolic
+
+## Commands to make a shared library
+# $(subst) won't work in shell script. #M# at the end omits these
+# lines from the shell script (Make only)
+SHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS) -Wl,--enable-auto-import -Wl,--out-implib=$(subst msys-,lib,$@).$(A)#M#
+SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS) -Wl,--enable-auto-import -Wl,--out-implib=$(subst msys-,lib,$@).$(A)#M#
+# the #SH# lines don't go through further postprocessing.
+# so, they must be valid shell script starting from column 4
+#SH#SHLIB_c="$(CC) $(CFLAGS) $(LDFLAGS) -shared "
+#SH#SHLIB_cc="$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared "
+
+
+## Compiler switch to embed a runtime search path
+LD_RPATH=
+LD_RPATH_PRE=
+
+## Compiler switch to embed a library name
+LD_SONAME =
+
+## Shared object suffix
+SO = dll
+## Non-shared intermediate object suffix
+STATIC_O = ao
+LIBICU = msys-$(ICUPREFIX)
+## To have an import library is better on MSYS2
+IMPORT_LIB_EXT = .dll.a
+
+## Compilation rules
+%.$(STATIC_O): $(srcdir)/%.c
+ $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
+%.o: $(srcdir)/%.c
+ $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
+
+%.$(STATIC_O): $(srcdir)/%.cpp
+ $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
+%.o: $(srcdir)/%.cpp
+ $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
+
+
+## Dependency rules
+%.d: $(srcdir)/%.c
+ @echo "generating dependency information for $<"
+ @echo -n "$@ " > $@
+ @$(GEN_DEPS.c) $< >> $@ || (rm -f $@ && FALSE)
+
+%.d: $(srcdir)/%.cpp
+ @echo "generating dependency information for $<"
+ @echo -n "$@ " > $@
+ @$(GEN_DEPS.cc) $< >> $@ || (rm -f $@ && FALSE)
+
+## Versioned target for a shared library.
+## Since symbolic links don't work the same way on Windows,
+## we only use the version major number.
+#FINAL_SO_TARGET=$(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO)
+FINAL_SO_TARGET=$(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO)
+MIDDLE_SO_TARGET=$(FINAL_SO_TARGET)
+
+IMPORT_LIB = $(subst msys-,lib,$(FINAL_SO_TARGET)).$(A)#M#
+MIDDLE_IMPORT_LIB = $(subst msys-,lib,$(basename $(SO_TARGET)))$(SO_TARGET_VERSION_MAJOR).$(SO).$(A)#M#
+FINAL_IMPORT_LIB = $(IMPORT_LIB)#M#
+
+# The following is for Makefile.inc's use.
+ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR)
+
+## Versioned libraries rules
+#%$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO)
+# $(RM) $@ && cp ${<F} $@
+%.$(SO): %$(SO_TARGET_VERSION_MAJOR).$(SO)
+ $(RM) $(subst msys-,lib,$@).$(A) && ln -s $(subst msys-,lib,${<F}).$(A) $(subst msys-,lib,$@).$(A)
+
+## Install libraries as executable
+INSTALL-L=$(INSTALL_PROGRAM)
+
+## Bind internal references
+
+# LDflags that pkgdata will use
+BIR_LDFLAGS= -Wl,-Bsymbolic
+
+# Dependencies [i.e. map files] for the final library
+BIR_DEPS=
+
+# Environment variable to set a runtime search path
+LDLIBRARYPATH_ENVVAR = PATH
+
+# The type of assembly to write for generating an object file
+GENCCODE_ASSEMBLY=-a gcc-mingw64
+
+# put this here again so it gets cyguc...
+
+#SH#ICULIBS_COMMON_LIB_NAME="${LIBICU}uc${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}.${SO}"
+
+# for icu-config
+
+#SH### copied from Makefile.inc
+#SH#ICULIBS_COMMON="-l${LIBICU}uc${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_DATA="-l${LIBICU}${DATA_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_I18N="-l${LIBICU}${I18N_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_TOOLUTIL="-l${LIBICU}tu${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_CTESTFW="-l${LIBICU}ctestfw${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_ICUIO="-l${LIBICU}io${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_OBSOLETE="-l${LIBICU}obsolete${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_LAYOUT="-l${LIBICU}le${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_LAYOUTEX="-l${LIBICU}lx${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_BASE="${LIBS} -L${libdir}"
+#SH#ICULIBS="${ICULIBS_BASE} ${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA}"
+
+## End MSYS2-specific setup
+
diff -Naur icu-cygwin/source/config.guess icu/source/config.guess
--- icu-cygwin/source/config.guess 2013-05-24 00:06:32.000000000 +0400
+++ icu/source/config.guess 2014-02-03 10:23:05.303400000 +0400
@@ -844,6 +844,9 @@
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
+ amd64:MSYS*:*:* | x86_64:MSYS*:*:*)
+ echo x86_64-unknown-msys
+ exit ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
exit ;;
diff -Naur icu-cygwin/source/configure.in icu/source/configure.in
--- icu-cygwin/source/configure.in 2013-05-24 00:06:32.000000000 +0400
+++ icu/source/configure.in 2014-02-03 10:25:08.980200000 +0400
@@ -208,7 +208,7 @@
# files, which confuses the AC_EXEEXT macro.
AC_MSG_CHECKING(checking for executable suffix)
case "${host}" in
- *-*-cygwin*|*-*-mingw*) EXEEXT=.exe ;;
+ *-*-cygwin*|*-*-msys*|*-*-mingw*) EXEEXT=.exe ;;
*) EXEEXT="" ;;
esac
ac_exeext=$EXEEXT
@@ -509,7 +509,7 @@
fi
# Check to see if we are using CygWin with MSVC
case "${host}" in
- *-pc-cygwin*|*-pc-mingw*)
+ *-pc-cygwin*|*-pc-msys*|*-pc-mingw*)
# For gcc, the thread options are set by mh-mingw/mh-cygwin
# For msvc, the thread options are set by runConfigureICU
ICU_USE_THREADS=1
@@ -947,7 +947,7 @@
CHECK_UTF16_STRING_RESULT="available"
fi
;;
-*-*-cygwin)
+*-*-cygwin|*-*-msys*)
# wchar_t can be used
CHECK_UTF16_STRING_RESULT="available"
;;
@@ -1156,7 +1156,7 @@
*-*-aix*) platform=U_AIX ;;
*-*-hpux*) platform=U_HPUX ;;
*-apple-darwin*|*-apple-rhapsody*) platform=U_DARWIN ;;
- *-*-cygwin*) platform=U_CYGWIN ;;
+ *-*-cygwin*|*-*-msys*) platform=U_CYGWIN ;;
*-*-mingw*) platform=U_MINGW ;;
*-*ibm-openedition*|*-*-os390*) platform=OS390
if test "${ICU_ENABLE_ASCII_STRINGS}" != "1"; then
diff -Naur icu-cygwin/source/runConfigureICU icu/source/runConfigureICU
--- icu-cygwin/source/runConfigureICU 2013-05-24 00:06:32.000000000 +0400
+++ icu/source/runConfigureICU 2014-02-03 10:26:16.653000000 +0400
@@ -37,6 +37,7 @@
AIX Use the IBM Visual Age xlc_r/xlC_r compilers on AIX
AIX/GCC Use the GNU gcc/g++ compilers on AIX
Cygwin Use the GNU gcc/g++ compilers on Cygwin
+ MSYS Use the GNU gcc/g++ compilers on MSYS
Cygwin/MSVC Use the Microsoft Visual C++ compiler on Cygwin
Cygwin/MSVC2005 Use the Microsoft Visual C++ 2005 compiler on Cygwin
Cygwin/ICL Use the Intel C++ compiler on Cygwin
@@ -253,6 +254,12 @@
THE_COMP="the GNU C++"
RELEASE_CFLAGS='-O3'
RELEASE_CXXFLAGS='-O3'
+ ;;
+ MSYS)
+ THE_OS="MSYS"
+ THE_COMP="the GNU C++"
+ RELEASE_CFLAGS='-O3'
+ RELEASE_CXXFLAGS='-O3'
;;
Cygwin/MSVC)
THE_OS="Windows with Cygwin"
diff -Naur icu-cygwin/source/tools/pkgdata/pkgtypes.h icu/source/tools/pkgdata/pkgtypes.h
--- icu-cygwin/source/tools/pkgdata/pkgtypes.h 2013-05-24 00:06:32.000000000 +0400
+++ icu/source/tools/pkgdata/pkgtypes.h 2014-02-03 10:26:16.653000000 +0400
@@ -144,7 +144,11 @@
# define UDATA_LIB_SUFFIX ".lib"
#elif U_PLATFORM == U_PF_CYGWIN
+#ifdef __MSYS__
+# define LIB_PREFIX "msys-"
+#else
# define LIB_PREFIX "cyg"
+#endif
# define LIB_STATIC_PREFIX "lib"
# define OBJ_SUFFIX ".o"
# define UDATA_LIB_SUFFIX ".a"
diff -Naur icu-cygwin/source/tools/pkgdata/pkgdata.cpp icu/source/tools/pkgdata/pkgdata.cpp
--- icu-cygwin/source/tools/pkgdata/pkgdata.cpp 2013-05-24 00:06:32.000000000 +0400
+++ icu/source/tools/pkgdata/pkgdata.cpp 2014-02-03 10:26:16.653000000 +0400
@@ -878,10 +878,18 @@
#if U_PLATFORM == U_PF_MINGW
sprintf(libFileNames[LIB_FILE_MINGW], "%s%s.lib", pkgDataFlags[LIBPREFIX], libName);
#elif U_PLATFORM == U_PF_CYGWIN
+#ifdef __MSYS__
+ sprintf(libFileNames[LIB_FILE_CYGWIN], "msys-%s.%s",
+#else
sprintf(libFileNames[LIB_FILE_CYGWIN], "cyg%s.%s",
+#endif
libName,
pkgDataFlags[SO_EXT]);
+#ifdef __MSYS__
+ sprintf(libFileNames[LIB_FILE_CYGWIN_VERSION], "msys-%s%s.%s",
+#else
sprintf(libFileNames[LIB_FILE_CYGWIN_VERSION], "cyg%s%s.%s",
+#endif
libName,
version_major,
pkgDataFlags[SO_EXT]);
diff -Naur icu-cygwin/source/tools/toolutil/udbgutil.cpp icu/source/tools/toolutil/udbgutil.cpp
--- icu-cygwin/source/tools/toolutil/udbgutil.cpp 2013-05-24 00:06:32.000000000 +0400
+++ icu/source/tools/toolutil/udbgutil.cpp 2014-02-03 10:26:16.653000000 +0400
@@ -342,7 +342,11 @@
#if U_PLATFORM_USES_ONLY_WIN32_API
return "Windows";
#elif U_PLATFORM == U_PF_CYGWIN
+#ifdef __MSYS__
+ return "MSYS";
+#else
return "Cygwin";
+#endif
#elif U_PLATFORM == U_PF_UNKNOWN
return "unknown";
#elif U_PLATFORM == U_PF_DARWIN