1--- icu/source/common/putil.c	2009-01-15 08:45:58.000000000 +0100
2+++ icu/source/common/putil.c	2009-04-30 15:09:55.000000000 +0200
3@@ -70,6 +70,7 @@
4
5 /* Include standard headers. */
6 #include <stdio.h>
7+#include <stdint.h>
8 #include <stdlib.h>
9 #include <string.h>
10 #include <math.h>
11--- icu/source/common/ucnv.c	2009-01-15 08:45:56.000000000 +0100
12+++ icu/source/common/ucnv.c	2009-04-30 15:10:23.000000000 +0200
13@@ -37,6 +37,8 @@
14 #include "ucnv_cnv.h"
15 #include "ucnv_bld.h"
16
17+#include <stdint.h>
18+
19 /* size of intermediate and preflighting buffers in ucnv_convert() */
20 #define CHUNK_SIZE 1024
21
22--- icu/source/common/unistr_cnv.cpp	2009-01-15 08:45:56.000000000 +0100
23+++ icu/source/common/unistr_cnv.cpp	2009-04-30 15:11:27.000000000 +0200
24@@ -30,6 +30,8 @@
25 #include "ustr_cnv.h"
26 #include "ustr_imp.h"
27
28+#include <stdint.h>
29+
30 U_NAMESPACE_BEGIN
31
32 //========================================
33--- icu/source/config/mh-mingw	2009-01-15 08:46:10.000000000 +0100
34+++ icu/source/config/mh-mingw	2009-04-30 15:08:37.000000000 +0200
35@@ -1,10 +1,8 @@
36 ## -*-makefile-*-
37-## Cygwin/MinGW specific setup
38-## Copyright (c) 2001-2007, International Business Machines Corporation and
39+## Mingw-specific setup
40+## Copyright (c) 2001-2008, International Business Machines Corporation and
41 ## others. All Rights Reserved.
42
43-# TODO: Finish the rest of this port. This platform port is incomplete.
44-
45 # We install sbin tools into the same bin directory because
46 # pkgdata needs some of the tools in sbin, and we can't always depend on
47 # icu-config working on Windows.
48@@ -29,8 +27,7 @@
49 SHAREDLIBCPPFLAGS = -DPIC
50
51 ## Additional flags when building libraries and with threads
52-THREADSCFLAGS = -mthreads
53-THREADSCXXFLAGS = -mthreads
54+THREADSCPPFLAGS = -D_REENTRANT
55 LIBCPPFLAGS =
56
57 # Commands to link. Link with C++ in case static libraries are used.
58@@ -38,44 +35,32 @@
59 #LINK.cc=      $(CXX) $(CXXFLAGS) $(LDFLAGS)
60
61 ## Commands to make a shared library
62-SHLIB.c=	$(CC) $(CFLAGS) $(LDFLAGS) -shared
63-SHLIB.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared
64+# $(subst) won't work in shell script.  #M# at the end omits these
65+# lines from the shell script (Make only)
66+SHLIB.c=	$(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,--enable-auto-import -Wl,--out-implib=$(subst $(SO_TARGET_VERSION_MAJOR),,$(subst $(ICUPREFIX),$(LIBPREFIX)$(ICUPREFIX),$@)).$(A)#M#
67+SHLIB.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -Wl,--enable-auto-import -Wl,--out-implib=$(subst $(SO_TARGET_VERSION_MAJOR),,$(subst $(ICUPREFIX),$(LIBPREFIX)$(ICUPREFIX),$@)).$(A)#M#
68+
69
70 ## Compiler switch to embed a runtime search path
71 LD_RPATH=
72 LD_RPATH_PRE=	-Wl,-rpath,
73
74 ## Compiler switch to embed a library name
75-LD_SONAME =
76+LD_SONAME =
77
78 ## Shared object suffix
79 SO = dll
80 ## Non-shared intermediate object suffix
81 STATIC_O = ao
82-SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR)
83-
84-# Static library prefix and file extension
85-LIBSICU = $(STATIC_PREFIX)$(ICUPREFIX)
86-A = lib
87-
88-## An import library is needed for z/OS and MSVC
89-#IMPORT_LIB_EXT = .lib
90-
91-LIBPREFIX=
92+LIBICU = $(ICUPREFIX)
93+LIBSICU = $(LIBPREFIX)$(ICUPREFIX)
94+## To have an import library is better on Windows
95+IMPORT_LIB_EXT = .dll.a
96
97 # Change the stubnames so that poorly working FAT disks and installation programs can work.
98 # This is also for backwards compatibility.
99 DATA_STUBNAME = dt
100 I18N_STUBNAME = in
101-LIBICU = $(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)
102-
103-# The #M# is used to delete lines for icu-config
104-# Current full path directory.
105-#CURR_FULL_DIR=$(shell pwd -W)#M# for MSYS
106-CURR_FULL_DIR=$(subst \,/,$(shell cmd /c cd | tail --bytes=+3))#M# for Cygwin shell
107-# Current full path directory for use in source code in a -D compiler option.
108-#CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# for MSYS
109-CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd | tail --bytes=+3))#M# for Cygwin shell
110
111 ## Compilation rules
112 %.$(STATIC_O): $(srcdir)/%.c
113@@ -103,29 +88,57 @@
114 ## Versioned target for a shared library.
115 ## Since symbolic links don't work the same way on Windows,
116 ## we only use the version major number.
117-#FINAL_SO_TARGET=$(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO)
118 FINAL_SO_TARGET=$(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO)
119 MIDDLE_SO_TARGET=$(FINAL_SO_TARGET)
120+SHARED_OBJECT = $(FINAL_SO_TARGET)
121+
122+IMPORT_LIB = $(subst $(ICUPREFIX),$(LIBPREFIX)$(ICUPREFIX),$(basename $(SO_TARGET))).$(SO).$(A)#M#
123+MIDDLE_IMPORT_LIB = $(IMPORT_LIB)#M#
124+FINAL_IMPORT_LIB = $(IMPORT_LIB)#M#
125
126-## Special pkgdata information that is needed
127-PKGDATA_VERSIONING = -r $(SO_TARGET_VERSION_MAJOR)
128-#ICUPKGDATA_INSTALL_DIR = $(shell cygpath -dma $(DESTDIR)$(ICUPKGDATA_DIR))#M#
129-#ICUPKGDATA_INSTALL_LIBDIR = $(shell cygpath -dma $(DESTDIR)$(libdir))#M#
130+# The following is for Makefile.inc's use.
131+ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR)
132
133 ## Versioned libraries rules
134-#%$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO)
135-#	$(RM) $@ && cp ${<F} $@
136 %.$(SO): %$(SO_TARGET_VERSION_MAJOR).$(SO)
137+#	$(RM) $(subst $(ICUPREFIX),lib$(ICUPREFIX),$@).$(A) && ln -s $(LIBPREFIX)${<F}.$(A) $(subst $(ICUPREFIX),$(LIBPREFIX)$(ICUPREFIX),$@).$(A)
138 	@echo -n
139
140+## Install libraries as executable
141+INSTALL-L=$(INSTALL_PROGRAM)
142+
143+##  Bind internal references
144+
145+# LDflags that pkgdata will use
146+BIR_LDFLAGS= -Wl,-Bsymbolic
147+
148+# Dependencies [i.e. map files] for the final library
149+BIR_DEPS=
150+
151 # Environment variable to set a runtime search path
152 LDLIBRARYPATH_ENVVAR = PATH
153
154 # The type of assembly to write for generating an object file
155-GENCCODE_ASSEMBLY=-a gcc-cygwin
156+#GENCCODE_ASSEMBLY=-a gcc-cygwin
157+
158+# put this here again so it gets cyguc...
159+
160+#SH#ICULIBS_COMMON_LIB_NAME="${LIBICU}uc${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}.${SO}"
161+
162+# for icu-config
163
164-# These are needed to allow the pkgdata GNU make files to work
165-PKGDATA_DEFS = -DU_MAKE=\"$(MAKE)\"
166+#SH### copied from Makefile.inc
167+#SH#ICULIBS_COMMON="-l${LIBICU}uc${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
168+#SH#ICULIBS_DATA="-l${LIBICU}${DATA_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
169+#SH#ICULIBS_I18N="-l${LIBICU}${I18N_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
170+#SH#ICULIBS_TOOLUTIL="-l${LIBICU}tu${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
171+#SH#ICULIBS_CTESTFW="-l${LIBICU}ctestfw${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
172+#SH#ICULIBS_ICUIO="-l${LIBICU}io${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
173+#SH#ICULIBS_OBSOLETE="-l${LIBICU}obsolete${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
174+#SH#ICULIBS_LAYOUT="-l${LIBICU}le${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
175+#SH#ICULIBS_LAYOUTEX="-l${LIBICU}lx${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
176+#SH#ICULIBS_BASE="${LIBS} -L${libdir}"
177+#SH#ICULIBS="${ICULIBS_BASE} ${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA}"
178
179-## End Cygwin/MinGW specific setup
180+## End Mingw-specific setup
181
182