--- icu/source/common/putil.c	2009-01-15 08:45:58.000000000 +0100
+++ icu/source/common/putil.c	2009-04-30 15:09:55.000000000 +0200
@@ -70,6 +70,7 @@
 
 /* Include standard headers. */
 #include <stdio.h>
+#include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
 #include <math.h>
--- icu/source/common/ucnv.c	2009-01-15 08:45:56.000000000 +0100
+++ icu/source/common/ucnv.c	2009-04-30 15:10:23.000000000 +0200
@@ -37,6 +37,8 @@
 #include "ucnv_cnv.h"
 #include "ucnv_bld.h"
 
+#include <stdint.h>
+
 /* size of intermediate and preflighting buffers in ucnv_convert() */
 #define CHUNK_SIZE 1024
 
--- icu/source/common/unistr_cnv.cpp	2009-01-15 08:45:56.000000000 +0100
+++ icu/source/common/unistr_cnv.cpp	2009-04-30 15:11:27.000000000 +0200
@@ -30,6 +30,8 @@
 #include "ustr_cnv.h"
 #include "ustr_imp.h"
 
+#include <stdint.h>
+
 U_NAMESPACE_BEGIN
 
 //========================================
--- icu/source/config/mh-mingw	2009-01-15 08:46:10.000000000 +0100
+++ icu/source/config/mh-mingw	2009-04-30 15:08:37.000000000 +0200
@@ -1,10 +1,8 @@
 ## -*-makefile-*-
-## Cygwin/MinGW specific setup
-## Copyright (c) 2001-2007, International Business Machines Corporation and
+## Mingw-specific setup
+## Copyright (c) 2001-2008, International Business Machines Corporation and
 ## others. All Rights Reserved.
 
-# TODO: Finish the rest of this port. This platform port is incomplete.
-
 # We install sbin tools into the same bin directory because
 # pkgdata needs some of the tools in sbin, and we can't always depend on
 # icu-config working on Windows.
@@ -29,8 +27,7 @@
 SHAREDLIBCPPFLAGS = -DPIC
 
 ## Additional flags when building libraries and with threads
-THREADSCFLAGS = -mthreads
-THREADSCXXFLAGS = -mthreads
+THREADSCPPFLAGS = -D_REENTRANT
 LIBCPPFLAGS =
 
 # Commands to link. Link with C++ in case static libraries are used.
@@ -38,44 +35,32 @@
 #LINK.cc=      $(CXX) $(CXXFLAGS) $(LDFLAGS)
 
 ## Commands to make a shared library
-SHLIB.c=	$(CC) $(CFLAGS) $(LDFLAGS) -shared
-SHLIB.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared
+# $(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 -Wl,--enable-auto-import -Wl,--out-implib=$(subst $(SO_TARGET_VERSION_MAJOR),,$(subst $(ICUPREFIX),$(LIBPREFIX)$(ICUPREFIX),$@)).$(A)#M#
+SHLIB.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared -Wl,--enable-auto-import -Wl,--out-implib=$(subst $(SO_TARGET_VERSION_MAJOR),,$(subst $(ICUPREFIX),$(LIBPREFIX)$(ICUPREFIX),$@)).$(A)#M#
+
 
 ## Compiler switch to embed a runtime search path
 LD_RPATH=	
 LD_RPATH_PRE=	-Wl,-rpath,
 
 ## Compiler switch to embed a library name
-LD_SONAME = 
+LD_SONAME =
 
 ## Shared object suffix
 SO = dll
 ## Non-shared intermediate object suffix
 STATIC_O = ao
-SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR)
-
-# Static library prefix and file extension
-LIBSICU = $(STATIC_PREFIX)$(ICUPREFIX)
-A = lib
-
-## An import library is needed for z/OS and MSVC
-#IMPORT_LIB_EXT = .lib
-
-LIBPREFIX=
+LIBICU = $(ICUPREFIX)
+LIBSICU = $(LIBPREFIX)$(ICUPREFIX)
+## To have an import library is better on Windows
+IMPORT_LIB_EXT = .dll.a
 
 # Change the stubnames so that poorly working FAT disks and installation programs can work.
 # This is also for backwards compatibility.
 DATA_STUBNAME = dt
 I18N_STUBNAME = in
-LIBICU = $(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)
-
-# 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
-# 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
 
 ## Compilation rules
 %.$(STATIC_O): $(srcdir)/%.c
@@ -103,29 +88,57 @@
 ## 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)
+SHARED_OBJECT = $(FINAL_SO_TARGET)
+
+IMPORT_LIB = $(subst $(ICUPREFIX),$(LIBPREFIX)$(ICUPREFIX),$(basename $(SO_TARGET))).$(SO).$(A)#M#
+MIDDLE_IMPORT_LIB = $(IMPORT_LIB)#M#
+FINAL_IMPORT_LIB = $(IMPORT_LIB)#M#
 
-## Special pkgdata information that is needed
-PKGDATA_VERSIONING = -r $(SO_TARGET_VERSION_MAJOR)
-#ICUPKGDATA_INSTALL_DIR = $(shell cygpath -dma $(DESTDIR)$(ICUPKGDATA_DIR))#M#
-#ICUPKGDATA_INSTALL_LIBDIR = $(shell cygpath -dma $(DESTDIR)$(libdir))#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 $(ICUPREFIX),lib$(ICUPREFIX),$@).$(A) && ln -s $(LIBPREFIX)${<F}.$(A) $(subst $(ICUPREFIX),$(LIBPREFIX)$(ICUPREFIX),$@).$(A)
 	@echo -n
 
+## 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
+#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
 
-# These are needed to allow the pkgdata GNU make files to work
-PKGDATA_DEFS = -DU_MAKE=\"$(MAKE)\"
+#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 Cygwin/MinGW specific setup
+## End Mingw-specific setup
 
