Some time ago (#7283) I sent a few patches, some of which have been applied.
Recently I wanted to cross build for mingw32 on a Linux box and encountered additional problems:
(1) there is an unfortunate interaction between ICU's configure and MinGW: unless ICU is configured with '--disable-strict' MinGW's gcc is invoked with '-ansi' and consequently many required functions, e.g., tzset are undeclared.
(2) There is a typo in data/Makefile.in (EXEEXT instead of TOOLEXEEXT). A small patch is attached.
(3) The current concept of using CURR_FULL_DIR and CURR_SRCCODE_FULL_DIR is completely broken. They must be derived from the configuration of the native and not the build system, somewhat similar to the handling of EXEEXT mentioned above. The attached small patch works for us but is certainly too simple minded.
(4) For our purpose (building XeTeX as part of TeX Live), we need static libraries with modifications for XeTeX. Since the icu-config script is completely useless for static libraries, we certainly don't want that library names for mingw be different than for other targets. A small patch is attached, but should certainly not attached as is.