diff -u firebird/builds/posix/make.defaults firebird/builds/posix/make.defaults
--- firebird/builds/posix/make.defaults	2013-07-03 16:23:44.804062000 +0100
+++ firebird/builds/posix/make.defaults	2013-07-05 12:30:01.607151400 +0100
@@ -49,7 +49,11 @@
 
 FIREBIRD=$(GEN_ROOT)/firebird
 INTERBASE=$(FIREBIRD)
+ifeq (@PLATFORM@,win32)
+FIREBIRD_LOCK=$(shell cygpath -w $(shell cd $(FIREBIRD); pwd) )
+else
 FIREBIRD_LOCK=$(shell cd $(FIREBIRD); pwd)
+endif
 
 export INTERBASE
 export FIREBIRD
@@ -135,7 +139,11 @@
 CD=			cd
 CAT=			cat
 AR=			ar @AR_OPTIONS@ crsu
+ifeq (@PLATFORM@,win32)
+LN=			cp
+else
 LN=			@LN_S@
+endif
 RANLIB=			@RANLIB@
 BTYACC=$(ROOT)/extern/btyacc/btyacc
 
@@ -152,16 +160,32 @@
 STATICEXE_LINK:= @CXX@ $(GLOB_OPTIONS) $(CXXFLAGS)
 
 LINK_LIBS = @LIBS@
+ifeq ($(PLATFORM),win32)
+ifeq ($(MSVC_USE_DEBUG_RUNTIME),TRUE)
+ICU_LIBS = -licuucd -licudtd -licuind
+else
+ICU_LIBS = -licuuc -licudt -licuin
+endif
+else
 ICU_LIBS = -licuuc -licudata -licui18n
+endif
 STATICLINK_LIBS = @LIBS@
 SO_LINK_LIBS = @LIBS@
 
 # Default extensions
 
+ifeq (@PLATFORM@,win32)
+ARCH_EXT=		.lib
+else
 ARCH_EXT=		.a
+endif
 EXEC_EXT=		@EXEEXT@
 SHRLIB_EXT=@SHRLIB_EXT@
+ifeq (@PLATFORM@,win32)
+LIB_PREFIX=		
+else
 LIB_PREFIX=		lib
+endif
 SHRLIB_FOREIGN_EXT=	$(SHRLIB_EXT)
 
 #_____________________________________________________________________________
@@ -179,6 +199,7 @@
 vpath %.so $(LIB)
 vpath %.a $(LIB)
 vpath %.dll $(LIB)
+vpath %.lib $(LIB)
 
 #_____________________________________________________________________________
 
@@ -193,9 +214,9 @@
 #     Scold me, but I don't want library names to be in configure.in
 # 
 
-SharedLibraryName=libfbembed.${SHRLIB_EXT}.${FirebirdVersion}
-SharedLibrarySoName=libfbembed.${SHRLIB_EXT}.${MajorVer}.${MinorVer}
-SharedLibraryBaseName=libfbembed.${SHRLIB_EXT}
+SharedLibraryName=ifbembed.${SHRLIB_EXT}
+SharedLibrarySoName=ifbembed.${SHRLIB_EXT}
+SharedLibraryBaseName=ifbembed.${SHRLIB_EXT}
 
 LIBFBEMBED_SO = $(LIB)/$(SharedLibraryName)
 LIBFBEMBED_SOBASENAME = $(LIB)/$(SharedLibrarySoName)
@@ -219,7 +240,11 @@
 
 LIBFBINTL_SO = $(FIREBIRD)/intl/$(LIB_PREFIX)fbintl.$(SHRLIB_EXT)
 
+ifeq ($(PLATFORM),win32)
+LIBFBSTATIC_A = $(LIB)/fbstatic.lib
+else
 LIBFBSTATIC_A = $(LIB)/libfbstatic.a
+endif
 
 ifeq ($(EDITLINE_FLG),Y)
   ifeq ($(STD_EDITLINE), true)
unchanged:
--- firebird.org/builds/posix/make.shared.variables	2013-06-26 10:05:19.351343000 +0100
+++ firebird/builds/posix/make.shared.variables	2013-07-04 08:12:24.432879700 +0100
@@ -291,7 +291,8 @@
 OS_SPECIFIC_Sources += $(ROOT)/extern/binreloc/binreloc.c
 endif
 OS_SPECIFIC_Objects = $(addprefix $(OBJ)/, $(addsuffix .o, $(basename $(OS_SPECIFIC_Sources))))
-
+#FBCOMMON_ClientFiles+=$(OS_SPECIFIC_Files)
+#FBCOMMON_Objects+=$(OS_SPECIFIC_Objects)
 
 #________________________________________________________________________
 #
unchanged:
--- firebird/builds/posix/Makefile.in.examples	2013-07-04 14:22:42.262676600 +0100
+++ firebird/builds/posix/Makefile.in.examples	2013-07-05 10:14:02.897675100 +0100
@@ -64,10 +64,13 @@
 EXAMPLES_DEST=	$(GEN_ROOT)/examples
 EXAMPLES_SRC=	$(ROOT)/examples
 
-
+ifeq ($(PLATFORM),win32)
+EMPBLD_Objects=	$(EXAMPLES_DEST)/empbuild.obj
+INTLBLD_Objects= $(EXAMPLES_DEST)/intlbld.obj
+else
 EMPBLD_Objects=	$(EXAMPLES_DEST)/empbuild.o
-
 INTLBLD_Objects= $(EXAMPLES_DEST)/intlbld.o
+endif
 
 INPUT_Files   =	empddl.sql empdml.sql indexoff.sql indexon.sql \
 		job.inp lang.inp proj.inp qtr.inp
@@ -168,0 +180,3 @@
+
+$(EXAMPLES_DEST)/%.obj: $(EXAMPLES_DEST)/%.c 
+	$(CC) -c $(firstword $<) -Fo$@ $(WCFLAGS)
\ No newline at end of file
unchanged:
--- firebird.org/builds/posix/Makefile.in.extlib	2013-06-26 10:05:19.366787100 +0100
+++ firebird/builds/posix/Makefile.in.extlib	2013-07-04 12:31:37.591067100 +0100
@@ -76,14 +76,20 @@
 lib_ib_udf: $(LIBIBUTIL_SO) $(UDF)/ib_udf.$(SHRLIB_EXT)
 
 $(UDF)/ib_udf.$(SHRLIB_EXT): $(UDF_Objects)
-	$(call LINK_UDF,ib_udf) -o $@ $^ $(LINK_UDF_LIBS)
+	@CXX@ $^ -o $@ -LD -L$(LIB) $(GLOB_OPTIONS) $(CXXFLAGS) -lib_util \
+	$(LINK_UDF_LIBS) $(LIB_LINK_OPTIONS) $(call LIB_LINK_SONAME,ib_udf.$(SHRLIB_EXT))\
+	$(call LIB_LINK_RPATH,lib) \
+	/link /dll
 
 # ib_util
 
 lib_ib_util: $(LIBIBUTIL_SO)
 
 $(LIBIBUTIL_SO): $(UTIL_Objects)
-	$(LINK_IB_UTIL) -o $@ $^ $(LINK_IB_UTIL_LIBS)
+	@CXX@ $^ -o $@ -LD \
+	$(call LIB_LINK_RPATH,lib)  $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_IBUTIL_SYMBOLS) \
+	$(LIB_LINK_OPTIONS) $(LINK_IB_UTIL_LIBS) $(call LIB_LINK_SONAME,$(IbUtilLibraryName)) \
+	/link /dll
 
 include $(ROOT)/gen/make.shared.targets
 
unchanged:
--- firebird.org/builds/posix/Makefile.in.firebird	2013-06-26 10:05:19.382231200 +0100
+++ firebird/builds/posix/Makefile.in.firebird	2013-07-04 18:36:17.079544900 +0100
@@ -145,7 +145,8 @@
 
 firebird : firebird_@FIREBIRD_ARCH_TYPE@ $(PLATFORM_POSTBUILD_TARGET)
 
-firebird_classic firebird_embedded: firebird_basic classic_targets fbtrace
+firebird_classic firebird_embedded: firebird_basic classic_targets
+#fbtrace
 firebird_super firebird_server: firebird_basic super_targets fbtrace
 
 
@@ -301,7 +301,7 @@
 .PHONY: ref_databases msgs msgs_intl generated_headers intl extlib includes
 
 basic_targets: ref_databases msgs msgs_intl generated_headers \
-               intl extlib includes examples_cp
+               intl extlib includes
 
 # hack to make code regeneration work
 generated_headers :
@@ -331,8 +336,9 @@
 .PHONY: libfbembed inet_server fb_smp_server embed_gfix embed_gbak embed_isql 
 .PHONY: embed_gpre embed_util
 
-classic_targets: $(PLAT_CLASSIC_PRE_TARGET) libfbembed inet_server fb_smp_server embed_gfix embed_gbak embed_isql \
-	embed_gpre libfbclient embed_util embed_gdef embed_qli embed_fbudf $(PLAT_CLASSIC_POST_TARGET)
+classic_targets: $(PLAT_CLASSIC_PRE_TARGET) libfbembed
+#inet_server fb_smp_server embed_gfix embed_gbak embed_isql \
+#	embed_gpre libfbclient embed_util embed_gdef embed_qli embed_fbudf $(PLAT_CLASSIC_POST_TARGET)
 
 libfbembed:
 	$(MAKE) $(CPU_OPTION) -f $(GEN_ROOT)/Makefile.libfbembed $@
@@ -446,7 +452,7 @@
 MAKE_HEADER_Bin = ./makeHeader
 
 $(INCLUDE_DEST)/ibase.h: $(SRC_IBASE_ExtraFiles)
-	$(STATICEXE_LINK) -o $(MAKE_HEADER_Bin) $(MAKE_HEADER_Src)
+	$(STATICEXE_LINK) -o $(MAKE_HEADER_Bin)$(EXEC_EXT) $(MAKE_HEADER_Src)
 	$(CP) $^ .
 	$(MAKE_HEADER_Bin) <ibase.h >$@
 	$(RM) -f ibase.h
--- firebird.org/builds/posix/Makefile.in.intl	2013-06-26 10:05:19.382231200 +0100
+++ firebird/builds/posix/Makefile.in.intl	2013-07-04 12:26:09.029586700 +0100
@@ -81,8 +81,13 @@
 libfbintl : $(LIBFBINTL_SO)
 
 $(LIBFBINTL_SO):	$(INTL_Objects) $(FBCOMMON_ClientObjects) $(FBCLASSES_ClientObjects)
+ifeq (@PLATFORM@,win32)
+	@CXX@ $^ -o $@  -LD $(GLOB_OPTIONS) $(CXXFLAGS) $(LINK_INTL_LIBS)\
+	$(LINK_FBINTL_SYMBOLS) $(LIB_LINK_OPTIONS) -lfbstatic $(call LIB_LINK_SONAME,libintl.$(SHRLIB_EXT).1)\
+	$(call LIB_LINK_RPATH,lib) /link /dll
+else
 	$(LINK_INTL) -o $@ $^ $(LINK_INTL_LIBS)
-
+endif
 
 include $(ROOT)/gen/make.shared.targets
 
diff -u firebird/builds/posix/Makefile.in.libfbembed firebird/builds/posix/Makefile.in.libfbembed
--- firebird/builds/posix/Makefile.in.libfbembed	2013-07-04 17:51:37.197367500 +0100
+++ firebird/builds/posix/Makefile.in.libfbembed	2013-07-05 12:55:58.287451400 +0100
@@ -62,13 +62,19 @@
 libfbembed : $(LIBIBUTIL_SO) $(LIBFBEMBED_SONAME)
 
 $(LIBFBEMBED_SO): $(LIBFBEMBED_Objects) $(SERVER_Objects) $(COMMON_Objects)
+ifeq ($(PLATFORM),win32)
+	@CXX@ $^ -o $@ $(LINK_EMBED_LIBS)  $(GLOB_OPTIONS) $(CXXFLAGS)\
+	$(LINK_FIREBIRD_EMBED_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_EMBED_LINK_OPTIONS)\
+	$(call LIB_LINK_SONAME,$(SharedLibrarySoName)) $(call LIB_LINK_RPATH,lib)
+else
 	$(LINK_EMBED) -o $@ $^ $(LINK_EMBED_LIBS)
+endif
 
 $(LIBFBEMBED_SOBASENAME): $(LIBFBEMBED_SO)
-	(cd $(LIB) && $(LN) -f $(SharedLibraryName) $(SharedLibrarySoName) )
+#	(cd $(LIB) && $(LN) -f $(SharedLibraryName) $(SharedLibrarySoName) )
 
 $(LIBFBEMBED_SONAME): $(LIBFBEMBED_SOBASENAME)
-	(cd $(LIB) && $(LN) -f $(SharedLibrarySoName) $(SharedLibraryBaseName) )
+#	(cd $(LIB) && $(LN) -f $(SharedLibrarySoName) $(SharedLibraryBaseName) )
 
 include $(ROOT)/gen/make.shared.targets
 
unchanged:
--- firebird.org/builds/posix/Makefile.in.libfbstatic	2013-06-26 10:05:19.382231200 +0100
+++ firebird/builds/posix/Makefile.in.libfbstatic	2013-07-03 16:23:14.103208000 +0100
@@ -57,9 +57,9 @@
 # will not be different from the above fbmem_boot.a library
 # compile time macros being the main (if there) difference
 
-libfbstatic: $(PARSE_Sources) $(LIB)/libfbstatic.a
+libfbstatic: $(PARSE_Sources) $(LIB)/$(LIB_PREFIX)fbstatic$(ARCH_EXT)
 
-$(LIB)/libfbstatic.a:	$(LIBFBSTATIC_Objects)
+$(LIB)/$(LIB_PREFIX)fbstatic$(ARCH_EXT):	$(LIBFBSTATIC_Objects)
 	-$(RM) $@
 	$(AR) $@ $^
 	-$(RANLIB) $@
unchanged:
--- firebird.org/builds/posix/prefix.mingw	2013-06-26 10:05:19.413119400 +0100
+++ firebird/builds/posix/prefix.mingw	2013-07-04 18:13:52.948234400 +0100
@@ -20,8 +20,8 @@
 # 
 
 # -Wno-unused-variable is used due to unused gpre generated variables
-PROD_FLAGS=-O2  -march=i586 -DMINGW -mno-cygwin -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads
-DEV_FLAGS=-ggdb -march=i586 -DMINGW -mno-cygwin -Wall -Wshadow -Wundef -Wno-long-long -Wno-unused-variable -Wno-sign-compare -Wno-parentheses -Wno-switch -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads
+PROD_FLAGS=-O2  -march=i586 -DMINGW -mno-cygwin -Wall -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads
+DEV_FLAGS=-ggdb -march=i586 -DMINGW -mno-cygwin -Wall -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads
 
 PLATFORM_PATH=os/win32
 
@@ -33,13 +33,15 @@
 LIB_LINK=$(LD)
 
 LIB_LINK_OPTIONS+=-Wl,--enable-stdcall-fixup
+LIB_PLATFORM_RPATH=
 
 # Strip symbols from release versions to decrease size
 ifeq ($(IsProdTypeBuild),Y)
 LINK_OPTS+=-Wl,-s
 LIB_LINK_OPTIONS+=-Wl,-s
 endif
-
+LIB_LINK_OPTIONS=
+LINK_OPTS=
 # Generation of fbclient_ms.lib
 LIB_LINK_IMPLIB:=-Wl,--out-implib,firebird/lib/fbclient_ms.lib
 LIB_GUI:= -mwindows -lcomctl32 -lgdi32
@@ -65,7 +67,7 @@
 ClientLibrarySoName := $(ClientLibraryName)
 
 # Looks like MinGW 3 does not support version scripts but support def-files
-LINK_FIREBIRD_SYMBOLS = $(BLD_ROOT)/win32/defs/fbclient_s.def $(BLD_ROOT)/win32/defs/fbclient.def
+LINK_FIREBIRD_SYMBOLS = /def:$(BLD_ROOT)/win32/defs/fbclient_s.def /def:$(BLD_ROOT)/win32/defs/fbclient.def
 
 # This is required for newly built executable to find newly built shared
 # libraries because on Win32 there is no such thing as LD_LIBRARY_PATH
unchanged:
--- firebird.org/configure	2013-06-26 10:05:19.675669100 +0100
+++ firebird/configure	2013-06-26 10:14:11.490867900 +0100
@@ -2796,7 +2796,7 @@
     SHRLIB_EXT=so
     ;;
 
-  *-*-mingw*)
+  *-*-mingw* | *-*-cygwin*)
     MAKEFILE_PREFIX=mingw
     PLATFORM=win32
 
@@ -8934,6 +8934,9 @@
 mingw*)
   opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
   ;;
+cygwin*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
 esac
 
 # If we're using GNU nm, then use its standard symbol codes.
@@ -9882,7 +9885,7 @@
        esac
        ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       lt_prog_compiler_pic='-DDLL_EXPORT'
@@ -14675,7 +14678,7 @@
     beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
       # PIC is the default for these OSes.
       ;;
-    mingw* | os2* | pw32*)
+    mingw* | cygwin* | os2* | pw32*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
@@ -16452,7 +16455,7 @@
       # PIC is the default for these OSes.
       ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       lt_prog_compiler_pic_F77='-DDLL_EXPORT'
@@ -16522,7 +16525,7 @@
        esac
        ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       lt_prog_compiler_pic_F77='-DDLL_EXPORT'
@@ -19067,7 +19070,7 @@
       # PIC is the default for these OSes.
       ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
@@ -19137,7 +19140,7 @@
        esac
        ;;
 
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
       lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
unchanged:
--- firebird.org/configure.in	2013-06-26 10:05:19.675669100 +0100
+++ firebird/configure.in	2013-06-26 14:16:35.816845700 +0100
@@ -1,30 +1,4 @@
-dnl ############################# INITIALISATION ###############################
-
-AC_PREREQ(2.56)
-AC_INIT(src)
-
-AC_CONFIG_AUX_DIR(builds/make.new/config)
-AC_CACHE_VAL(ac_cv_prog_make_set, [AC_PROG_MAKE_SET])
-AC_PREFIX_DEFAULT(/usr/local/firebird)
-
-m4_ifdef([AC_CONFIG_MACRO_DIR],
-         [],
-         [m4_define([AC_CONFIG_MACRO_DIR], [])])
-AC_CONFIG_MACRO_DIR(m4)
-
-AC_CONFIG_HEADER(src/include/gen/autoconfig.h:builds/make.new/config/config.h.in)
-
-dnl XE_APPEND(value, varname)
-define([XE_APPEND],[[$2]="$[$2] [$1]"])
-
-dnl XE_PREPEND(value, varname)
-define([XE_PREPEND],[[$2]="[$1] $[$2]"])
-
-dnl XE_CONF_DIR(param, help, variable, default)
-define([XE_CONF_DIR],[
-AC_ARG_WITH([$1], 
-	[AC_HELP_STRING([--with-$1], [$2])], 
-	[[$3]="$withval"
+NO
 	 AC_DEFINE_UNQUOTED([$3], "$[$3]", [$2])], 
 	[[$3]="[`if test ""x$prefix"" = ""xNONE"" ; then echo ""$ac_default_prefix""; else echo ""$prefix""; fi`][$4]"
 	 AC_DEFINE_UNQUOTED([$3], [""], [$2])]
@@ -37,8 +11,8 @@
 
 dnl ############################# ADD TESTS BELOW ##############################
 
-AC_CANONICAL_SYSTEM
-CPU_TYPE=$target_cpu
+AC_CANONICAL_HOST
+CPU_TYPE=$host_cpu
 AC_SUBST(CPU_TYPE)
 
 
@@ -61,7 +35,7 @@
 dnl Test for special ar options?
 AR_OPT_CHECK=false
 
-case "$target" in
+case "$host" in
   i*86-*-darwin*)
 dnl    MAKEFILE_PREFIX=darwin_i386
     MAKEFILE_PREFIX=darwin_x86_64
@@ -112,7 +86,7 @@
 
   amd64-*-freebsd* | x86_64*-*-freebsd* | x86_64*-*-k*bsd*-gnu)
     MAKEFILE_PREFIX=freebsd_amd64
-    case "$target" in
+    case "$host" in
         x86_64*-*-k*bsd-gnu)      # Debian/kFreeBSD
             PLATFORM=GENTOOFREEBSD
             INSTALL_PREFIX=linux
@@ -138,7 +112,7 @@
 
   *-*-freebsd* | *-*-k*bsd*-gnu)
     MAKEFILE_PREFIX=freebsd
-    case "$target" in
+    case "$host" in
         *-*-k*bsd-gnu)      # Debian/kFreeBSD
             PLATFORM=GENTOOFREEBSD
             INSTALL_PREFIX=linux
@@ -394,7 +368,7 @@
     SHRLIB_EXT=so
     ;;
 
-  *-*-mingw*)
+  *-*-mingw* | *-*-cygwin*)
     MAKEFILE_PREFIX=mingw
     PLATFORM=win32
     AC_DEFINE(WIN_NT, 1, [Define this if OS is Windows NT])
@@ -756,7 +730,25 @@
 AC_CHECK_FUNCS(swab _swab)
 AC_FUNC_MMAP
 AC_FUNC_FORK
-AC_FUNC_SETPGRP
+
+dnl AC_FUNC_SETPGRP does not work if cross compiling
+dnl Instead, assume we will have a prototype for setpgrp if cross compiling.
+if test "$cross_compiling" = no; then
+  AC_FUNC_SETPGRP
+else
+  AC_CACHE_CHECK([whether setpgrp takes no argument], ac_cv_func_setpgrp_void,
+    [AC_TRY_COMPILE([
+#include <unistd.h>
+], [
+  if (setpgrp(1,1) == -1)
+    exit (0);
+  else
+    exit (1);
+], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes)])
+if test $ac_cv_func_setpgrp_void = yes; then
+  AC_DEFINE(SETPGRP_VOID, 1)
+fi
+fi
 AC_CHECK_FUNCS(setpgid)
 AC_FUNC_GETPGRP
 AC_CHECK_FUNCS(flock)
@@ -822,7 +814,9 @@
 [AC_DEFINE(WORKING_SEM_INIT,1,[Define this if sem_init() works on the platform])
 AC_MSG_RESULT(yes)],
 [AC_MSG_RESULT(no)
-AC_SEARCH_LIBS(sem_open, rt)])
+AC_SEARCH_LIBS(sem_open, rt)],
+[AC_DEFINE(WORKING_SEM_INIT,1,[Define this if sem_init() works on the platform])
+AC_MSG_RESULT(cross-compiling, assuming yes)])
 fi
 fi
 
@@ -885,27 +879,13 @@
 
 dnl EKU: try to determine the alignment of long and double
 dnl      replaces FB_ALIGNMENT and FB_DOUBLE_ALIGN in src/jrd/common.h
-AC_MSG_CHECKING(alignment of long)
-AC_TRY_RUN([main () {
-  struct s {
-    char a;
-    long long b;
-  };
-  exit((int)&((struct s*)0)->b);
-}], ac_cv_c_alignment=$ac_status, ac_cv_c_alignment=$ac_status)
-AC_MSG_RESULT($ac_cv_c_alignment)
-AC_DEFINE_UNQUOTED(FB_ALIGNMENT, $ac_cv_c_alignment, [Alignment of long])
-
-AC_MSG_CHECKING(alignment of double)
-AC_TRY_RUN([main () {
-  struct s {
-    char a;
-    double b;
-  };
-  exit((int)&((struct s*)0)->b);
-}], ac_cv_c_double_align=$ac_status, ac_cv_c_double_align=$ac_status)
-AC_MSG_RESULT($ac_cv_c_double_align)
-AC_DEFINE_UNQUOTED(FB_DOUBLE_ALIGN, $ac_cv_c_double_align, [Alignment of double])
+AC_CHECK_ALIGNOF(long long)
+AC_MSG_RESULT($ac_cv_alignof_long_long)
+AC_DEFINE_UNQUOTED(FB_ALIGNMENT, $ac_cv_alignof_long_long, [Alignment of long])
+
+AC_CHECK_ALIGNOF(double)
+AC_MSG_RESULT($ac_cv_alignof_double)
+AC_DEFINE_UNQUOTED(FB_DOUBLE_ALIGN, $ac_cv_alignof_double, [Alignment of double])
 
 dnl EKU: don't know how to convert this into an autoconf test:
 dnl      #define FB_ALIGN(n,b) ...
@@ -980,7 +960,7 @@
 #define FB_PIPE_NAME "interbas"])
     AC_DEFINE_UNQUOTED(FB_PIPE_NAME,"$FB_PIPE_NAME")
     AC_SUBST(FB_PIPE_NAME)
-    XE_PREPEND( -mno-cygwin -mthreads -lmpr -lversion -lws2_32 -lole32,LIBS)
+    XE_PREPEND( -mthreads -lmpr -lversion -lws2_32 -lole32,LIBS)
     ;;
 
   *)
unchanged:
--- firebird.org/extern/btyacc/main.c	2013-06-26 10:05:19.907330600 +0100
+++ firebird/extern/btyacc/main.c	2013-06-26 10:25:20.065917200 +0100
@@ -2,7 +2,7 @@
 #include <signal.h>
 #include <stdio.h>
 
-#if defined(WIN32)
+#if defined(WIN32) || defined(_WIN32)
 #include <io.h>
 #else
 #include <unistd.h>
unchanged:
--- firebird.org/src/burp/mvol.cpp	2013-06-26 10:05:24.089577700 +0100
+++ firebird/src/burp/mvol.cpp	2013-07-03 15:29:42.818271200 +0100
@@ -47,7 +47,7 @@
 #include <fcntl.h>
 #include <sys/types.h>
 
-#ifdef HAVE_IO_H
+#if defined(HAVE_IO_H) || defined(WIN_NT)
 #include <io.h>  // isatty
 #endif
 
unchanged:
--- firebird.org/src/burp/restore.epp	2013-06-26 10:05:24.089577700 +0100
+++ firebird/src/burp/restore.epp	2013-07-03 15:25:34.792722000 +0100
@@ -54,6 +54,10 @@
 #include "../common/classes/SafeArg.h"
 #include "memory_routines.h"
 
+#ifdef WIN_NT
+#define snprintf _snprintf
+#endif
+
 using MsgFormat::SafeArg;
 
 
unchanged:
--- firebird.org/src/common/classes/BaseStream.cpp	2013-06-26 10:05:24.106566100 +0100
+++ firebird/src/common/classes/BaseStream.cpp	2013-06-27 19:12:19.694346700 +0100
@@ -28,6 +28,10 @@
 #include "BaseStream.h"
 #include <string.h>
 
+#if defined(WIN_NT)
+#include <io.h>
+#endif
+
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
unchanged:
--- firebird.org/src/common/classes/fb_string.cpp	2013-06-26 10:05:24.123554500 +0100
+++ firebird/src/common/classes/fb_string.cpp	2013-07-03 18:12:28.168333200 +0100
@@ -32,6 +32,10 @@
 #include <ctype.h>
 #include <stdarg.h>
 
+#ifdef WIN_NT
+#pragma comment(lib, "User32.lib")
+#endif
+
 #ifdef HAVE_STRCASECMP
 #define STRNCASECMP strncasecmp
 #else
unchanged:
--- firebird.org/src/common/classes/FpeControl.h	2013-06-26 10:05:24.123554500 +0100
+++ firebird/src/common/classes/FpeControl.h	2013-06-28 13:19:21.411841900 +0100
@@ -204,7 +204,7 @@
 #ifdef WIN_NT
 inline bool isinf(double x)
 {
-	return (!_finite (x) && !isnan(x));
+	return (!_finite (x) && !_isnan(x));
 }
 #else
 #ifndef isinf
unchanged:
--- firebird.org/src/isql/isql.epp	2013-06-26 10:05:24.718148500 +0100
+++ firebird/src/isql/isql.epp	2013-07-03 15:39:19.475181200 +0100
@@ -98,6 +98,7 @@
 #include "../jrd/common.h"
 #if defined(WIN_NT)
 #include <windows.h>
+#define isnan _isnan
 #endif
 #include "../jrd/ibase.h"
 #include "../isql/isql.h"
unchanged:
--- firebird.org/src/jrd/divorce.cpp	2013-06-26 10:05:24.786102100 +0100
+++ firebird/src/jrd/divorce.cpp	2013-06-29 11:37:36.553854700 +0100
@@ -54,7 +54,7 @@
 #include "../jrd/divorce.h"
 #include "../common/classes/semaphore.h"
 
-#ifdef HAVE_IO_H
+#if defined(HAVE_IO_H) || defined(WIN_NT)
 #include <io.h>
 #endif
 
unchanged:
--- firebird.org/src/jrd/fun.epp	2013-06-26 10:05:24.888032500 +0100
+++ firebird/src/jrd/fun.epp	2013-06-29 11:19:52.564078500 +0100
@@ -733,7 +733,7 @@
 				status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
 									Arg::Gds(isc_udf_fp_overflow) << Arg::Str(function->fun_name));
 			}
-			else if (isnan(value->vlu_misc.vlu_double))
+			else if (_isnan(value->vlu_misc.vlu_double))
 			{
 				status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
 									Arg::Gds(isc_udf_fp_nan) << Arg::Str(function->fun_name));
unchanged:
--- firebird.org/src/jrd/gds.cpp	2013-06-26 10:05:24.888032500 +0100
+++ firebird/src/jrd/gds.cpp	2013-06-29 10:38:05.140333200 +0100
@@ -71,6 +71,8 @@
 #include <stdarg.h>
 
 #if defined(WIN_NT)
+#pragma comment(lib, "advapi32")
+#pragma comment(lib, "Shell32")
 #include <io.h> // umask, close, lseek, read, open, _sopen
 #include <process.h>
 #include <sys/types.h>
@@ -121,7 +123,7 @@
 
 #ifdef WIN_NT
 #include <shlobj.h>
-#include <shfolder.h>
+//#include <shfolder.h>
 #define _WINSOCKAPI_
 #include <share.h>
 #include "err_proto.h"
unchanged:
--- firebird.org/src/jrd/isc.cpp	2013-06-26 10:05:24.922009300 +0100
+++ firebird/src/jrd/isc.cpp	2013-06-29 10:38:56.698423800 +0100
@@ -58,7 +58,7 @@
 /* Win32 specific stuff */
 
 #ifdef WIN_NT
-
+#pragma comment(lib, "User32")
 #include <windows.h>
 #include <aclapi.h>
 #include <lmcons.h>
unchanged:
--- firebird.org/src/jrd/isc_sync.cpp	2013-06-26 10:05:24.938997700 +0100
+++ firebird/src/jrd/isc_sync.cpp	2013-06-30 18:45:43.811961300 +0100
@@ -127,10 +127,10 @@
 #include <sys/param.h>
 #endif
 
-#ifndef HAVE_GETPAGESIZE
+#if !defined(HAVE_GETPAGESIZE) && !defined(WIN_NT)
 static size_t getpagesize()
 {
-	return PAGESIZE;
+	return _PAGESIZE;
 }
 #endif
 
@@ -4320,7 +4320,13 @@
  *
  **************************************/
 	char hostname[64];
-	const int rc = snprintf(buffer, bufsize, object_name, ISC_get_host(hostname, sizeof(hostname)));
+	const int rc = 
+	#ifdef WIN_NT
+		_snprintf(
+	#else
+		snprintf(
+	#endif
+		buffer, bufsize, object_name, ISC_get_host(hostname, sizeof(hostname)));
 	if (size_t(rc) == bufsize || rc <= 0)
 	{
 		SetLastError(ERROR_FILENAME_EXCED_RANGE);
unchanged:
--- firebird.org/src/jrd/os/win32/mod_loader.cpp	2013-06-26 10:05:25.006951300 +0100
+++ firebird/src/jrd/os/win32/mod_loader.cpp	2013-06-27 18:30:42.642374700 +0100
@@ -93,6 +93,10 @@
                     "msvcr80.dll",
 #elif _MSC_VER == 1500
                     "msvcr90.dll",
+#elif _MSC_VER == 1600
+					"mscvr100.dll",
+#elif _MSC_VER == 1700
+					"mscvr110.dll",
 #else
                     #error Specify CRT DLL name here !
 #endif
unchanged:
--- firebird.org/src/jrd/trace/TraceConfigStorage.cpp	2013-06-26 10:05:25.754440900 +0100
+++ firebird/src/jrd/trace/TraceConfigStorage.cpp	2013-07-02 12:32:31.799779900 +0100
@@ -42,9 +42,10 @@
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-#ifdef HAVE_IO_H
+#if defined(HAVE_IO_H) || defined(WIN_NT)
 #include <io.h>
 #endif
+
 #include <fcntl.h>
 #include <sys/types.h>
 #include <sys/stat.h>
unchanged:
--- firebird.org/src/jrd/trace/TraceLog.cpp	2013-06-26 10:05:25.958301700 +0100
+++ firebird/src/jrd/trace/TraceLog.cpp	2013-07-02 12:32:49.747208200 +0100
@@ -29,7 +29,7 @@
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-#ifdef HAVE_IO_H
+#if defined(HAVE_IO_H) || defined(WIN_NT)
 #include <io.h>
 #endif
 #include <fcntl.h>
unchanged:
--- firebird.org/src/misc/makeHeader.cpp	2013-06-26 10:05:26.230116100 +0100
+++ firebird/src/misc/makeHeader.cpp	2013-07-04 12:43:53.149081800 +0100
@@ -1,9 +1,9 @@
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
-//#ifdef HAVE_UNISTD_H
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
-//#endif
+#endif
 
 
 
unchanged:
--- firebird.org/extern/btyacc/Makefile	2013-07-05 07:58:12.591917200 +0100
+++ firebird/extern/btyacc/Makefile	2013-07-05 09:31:07.589691500 +0100
@@ -42,7 +42,10 @@
 all:		$(PROGRAM)
 
 $(PROGRAM):     $(OBJS) $(LIBS)
-		$(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS)
+		$(CC) -o $(PROGRAM).exe $(OBJS) $(LIBS) $(LDFLAGS)
+
+%.o: %.c
+	$(CC)  -c $< -Fo$@ $(CCFLAGS)
 
 clean:;		rm -f $(OBJS)
 
unchanged:
--- firebird.orig/builds/posix/make.rules	2013-08-04 19:06:02.208552600 +0900
+++ firebird/builds/posix/make.rules	2013-08-04 19:13:59.981368500 +0900
@@ -116,4 +116,4 @@
 # Rules for making resource files
 
 $(GEN_ROOT)/%.res: $(SRC_ROOT)/%.rc
-	windres --output-format=coff --include-dir=$(<D) $< $@
+	rc.exe $(SOLARINC) /fo $@ $<
only in patch2:
