diff options
author | Wastack <btomi96@gmail.com> | 2016-07-28 17:16:19 +0200 |
---|---|---|
committer | Lionel Elie Mamane <lionel@mamane.lu> | 2016-08-17 13:05:40 +0000 |
commit | 45f42681f4d1260c42140a313560534e605f81a4 (patch) | |
tree | 1c51f2ba29261c38a3e771dc04968f2e9cb5957f /external/firebird | |
parent | 0cb7d76bc5552245642ba423a87831cd9e0b2b92 (diff) |
GSoC Upgrade firebird to 3.0
Embedded firebird is now version 3.0.
Supports MSVC 14.0.
Instead of fbembed, there are now two libraries: fbclient and
Engine12. fbclient is linked as fbembed before, Engine12 is loaded
at runtime from fbclient.
fb now needs system libtommath, which is supplied
as a new ExternalProject of LO.
Change-Id: I132939bdee745795b22f675e4265e9590079c45f
Reviewed-on: https://gerrit.libreoffice.org/27642
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Lionel Elie Mamane <lionel@mamane.lu>
Diffstat (limited to 'external/firebird')
-rw-r--r-- | external/firebird/ExternalPackage_firebird.mk | 11 | ||||
-rw-r--r-- | external/firebird/ExternalProject_firebird.mk | 45 | ||||
-rw-r--r-- | external/firebird/UnpackedTarball_firebird.mk | 11 | ||||
-rw-r--r-- | external/firebird/firebird-Engine12.patch | 16 | ||||
-rw-r--r-- | external/firebird/firebird-c++11.patch.1 | 27 | ||||
-rw-r--r-- | external/firebird/firebird-c++14.patch | 30 | ||||
-rw-r--r-- | external/firebird/firebird-configure-x86-64-macosx.patch.1 | 12 | ||||
-rw-r--r-- | external/firebird/firebird-cygwin-msvc.patch | 687 | ||||
-rw-r--r-- | external/firebird/firebird-cygwin-msvc.patch.1 | 484 | ||||
-rw-r--r-- | external/firebird/firebird-macosx.patch.1 | 185 | ||||
-rw-r--r-- | external/firebird/firebird-rpath.patch.0 | 16 | ||||
-rw-r--r-- | external/firebird/firebird.disable-ib-util-not-found.patch.1 | 8 |
12 files changed, 879 insertions, 653 deletions
diff --git a/external/firebird/ExternalPackage_firebird.mk b/external/firebird/ExternalPackage_firebird.mk index 6e757d8d9744..eb9438d267ea 100644 --- a/external/firebird/ExternalPackage_firebird.mk +++ b/external/firebird/ExternalPackage_firebird.mk @@ -12,13 +12,16 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,firebird,firebird)) $(eval $(call gb_ExternalPackage_use_external_project,firebird,firebird)) ifeq ($(OS)-$(COM),WNT-MSC) -$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_LIB_FOLDER)/ifbembed.dll,gen/firebird/bin/ifbembed.dll)) +$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_LIB_FOLDER)/ifbclient.dll,gen/Release/firebird/bin/ifbclient.dll)) +$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_LIB_FOLDER)/Engine12.dll,gen/Release/firebird/plugins/Engine12.dll)) else ifeq ($(OS),MACOSX) -$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_LIB_FOLDER)/libfbembed.dylib,gen/firebird/lib/libfbembed.dylib.2.5.5)) +$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_LIB_FOLDER)/libfbclient.dylib.3.0.0,gen/Release/firebird/lib/libfbclient.dylib.3.0.0)) +$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_LIB_FOLDER)/libEngine12.dylib,gen/Release/firebird/plugins/libEngine12.dylib)) else ifeq ($(DISABLE_DYNLOADING),) -$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_LIB_FOLDER)/libfbembed.so.2.5,gen/firebird/lib/libfbembed.so.2.5.5)) +$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_LIB_FOLDER)/libfbclient.so.2,gen/Release/firebird/lib/libfbclient.so.3.0.0)) +$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_LIB_FOLDER)/libEngine12.so,gen/Release/firebird/plugins/libEngine12.so)) endif -$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_SHARE_FOLDER)/firebird/firebird.msg,gen/firebird/firebird.msg)) +$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_SHARE_FOLDER)/firebird/firebird.msg,gen/Release/firebird/firebird.msg)) # vim: set noet sw=4 ts=4: diff --git a/external/firebird/ExternalProject_firebird.mk b/external/firebird/ExternalProject_firebird.mk index 11817eed2224..82de2d3443a9 100644 --- a/external/firebird/ExternalProject_firebird.mk +++ b/external/firebird/ExternalProject_firebird.mk @@ -15,15 +15,13 @@ $(eval $(call gb_ExternalProject_use_externals,firebird,\ boost_headers \ icu \ libatomic_ops \ + libtommath \ )) $(eval $(call gb_ExternalProject_register_targets,firebird,\ build \ )) -# note: this can intentionally only build against internal atomic_op -# note: this can intentionally only build against internal tommath - ifneq ($(OS),WNT) INVOKE_FPA:="CPU=\$$(EMPTY) $${FB_CPU_ARG}" endif @@ -34,7 +32,8 @@ MAKE_PRE=$(if $(filter WNT,$(OS)),\ MAKE_POST=$(if $(filter MACOSX,$(OS)),&& $(PERL) \ $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl OOO \ - $(gb_Package_SOURCEDIR_firebird)/gen/firebird/lib/libfbembed.dylib.2.5.5) + $(gb_Package_SOURCEDIR_firebird)/gen/Release/firebird/plugins/libEngine12.dylib \ + $(gb_Package_SOURCEDIR_firebird)/gen/Release/firebird/lib/libfbclient.dylib.3.0.0) # do not set LDFLAGS - it is mysteriously not used by firebird on MacOSX $(call gb_ExternalProject_get_state_target,firebird,build): @@ -46,23 +45,41 @@ $(call gb_ExternalProject_get_state_target,firebird,build): $(if $(SYSTEM_LIBATOMIC_OPS),$(LIBATOMIC_OPS_CFLAGS), \ -I$(call gb_UnpackedTarball_get_dir,libatomic_ops)/src \ ) \ + $(if $(SYSTEM_LIBTOMMATH),$(LIBTOMMATH_CFLAGS), \ + -I$(call gb_UnpackedTarball_get_dir,libtommath) \ + -L$(call gb_UnpackedTarball_get_dir,libtommath) \ + ) \ + $(if $(filter WNT MACOSX,$(OS)), \ + $(if $(SYSTEM_ICU),$(ICU_CPPFLAGS), \ + -I$(call gb_UnpackedTarball_get_dir,icu)/source \ + -I$(call gb_UnpackedTarball_get_dir,icu)/source/i18n \ + -I$(call gb_UnpackedTarball_get_dir,icu)/source/common \ + -L$(call gb_UnpackedTarball_get_dir,icu)/source/lib \ + )) \ " \ && export CXXFLAGS=" \ $(if $(SYSTEM_BOOST),$(BOOST_CPPFLAGS), \ $(BOOST_CPPFLAGS) \ -L$(call gb_UnpackedTarball_get_dir,boost)/source/lib \ ) \ - $(if $(SYSTEM_ICU),$(ICU_CPPFLAGS), \ - -I$(call gb_UnpackedTarball_get_dir,icu)/source \ - -I$(call gb_UnpackedTarball_get_dir,icu)/source/i18n \ - -I$(call gb_UnpackedTarball_get_dir,icu)/source/common \ - -L$(call gb_UnpackedTarball_get_dir,icu)/source/lib \ + $(if $(filter-out WNT MACOSX,$(OS)), \ + $(if $(SYSTEM_ICU),$(ICU_CPPFLAGS), \ + -I$(call gb_UnpackedTarball_get_dir,icu)/source \ + -I$(call gb_UnpackedTarball_get_dir,icu)/source/i18n \ + -I$(call gb_UnpackedTarball_get_dir,icu)/source/common \ + -L$(call gb_UnpackedTarball_get_dir,icu)/source/lib \ + )) \ + $(if $(SYSTEM_LIBTOMMATH),$(LIBTOMMATH_CFLAGS), \ + -L$(call gb_UnpackedTarball_get_dir,libtommath) \ ) \ - " \ + " \ + $(if $(filter MACOSX,$(OS)), \ + && export DYLD_LIBRARY_PATH="$(call gb_UnpackedTarball_get_dir,icu)/source/lib" \ + )\ && MAKE=$(MAKE) ./configure \ --without-editline \ - --disable-superserver \ - --with-system-icu --without-fbsample --without-fbsample-db \ + --without-fbsample --without-fbsample-db \ + --with-wire-compress=no \ $(if $(filter-out MSC,$(COM)),$(if $(ENABLE_DEBUG),--enable-debug)) \ $(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \ $(if $(DISABLE_DYNLOADING), \ @@ -71,9 +88,9 @@ $(call gb_ExternalProject_get_state_target,firebird,build): --enable-shared --disable-static \ ) \ && if [ -n "$${FB_CPU_ARG}" ]; then \ - $(MAKE_PRE) $(MAKE) $(INVOKE_FPA) SHELL='$(SHELL)' firebird_embedded $(MAKE_POST); \ + $(MAKE_PRE) $(MAKE) $(INVOKE_FPA) SHELL='$(SHELL)' $(MAKE_POST); \ else \ - $(MAKE_PRE) $(MAKE) SHELL='$(SHELL)' firebird_embedded $(MAKE_POST); \ + $(MAKE_PRE) $(MAKE) SHELL='$(SHELL)' $(MAKE_POST); \ fi \ ) # vim: set noet sw=4 ts=4: diff --git a/external/firebird/UnpackedTarball_firebird.mk b/external/firebird/UnpackedTarball_firebird.mk index d04a350a66c2..eebe4d0c999c 100644 --- a/external/firebird/UnpackedTarball_firebird.mk +++ b/external/firebird/UnpackedTarball_firebird.mk @@ -14,23 +14,22 @@ $(eval $(call gb_UnpackedTarball_set_tarball,firebird,$(FIREBIRD_TARBALL))) $(eval $(call gb_UnpackedTarball_set_patchlevel,firebird,0)) $(eval $(call gb_UnpackedTarball_add_patches,firebird,\ - external/firebird/firebird-rpath.patch.0 \ - external/firebird/firebird-c++11.patch.1 \ external/firebird/firebird.disable-ib-util-not-found.patch.1 \ - external/firebird/firebird-c++14.patch \ + external/firebird/firebird-Engine12.patch \ + external/firebird/firebird-rpath.patch.0 \ )) ifeq ($(OS)-$(COM),WNT-MSC) $(eval $(call gb_UnpackedTarball_add_patches,firebird,\ - external/firebird/firebird-cygwin-msvc.patch.1 \ + external/firebird/firebird-cygwin-msvc.patch \ )) endif ifeq ($(OS),MACOSX) $(eval $(call gb_UnpackedTarball_add_patches,firebird,\ - external/firebird/firebird-macosx.patch.1 \ external/firebird/firebird-configure-x86-64-macosx.patch.1 \ - external/firebird/macosx-elcapitan-dyld.patch \ + external/firebird/firebird-macosx.patch.1 \ )) endif + # vim: set noet sw=4 ts=4: diff --git a/external/firebird/firebird-Engine12.patch b/external/firebird/firebird-Engine12.patch new file mode 100644 index 000000000000..f6590b300fb6 --- /dev/null +++ b/external/firebird/firebird-Engine12.patch @@ -0,0 +1,16 @@ +--- src/common/utils.cpp ++++ src/common/utils.cpp +@@ -1026,6 +1026,13 @@ + PathUtils::concatPath(s, configDir[prefType], name); + return s; + } ++ ++ // Set relative path to Engine12 dynamic library ++ if(prefType == Firebird::IConfigManager::DIR_PLUGINS) ++ { ++ s = name; ++ return s; ++ } + } + + switch(prefType) diff --git a/external/firebird/firebird-c++11.patch.1 b/external/firebird/firebird-c++11.patch.1 deleted file mode 100644 index 8f22616862e0..000000000000 --- a/external/firebird/firebird-c++11.patch.1 +++ /dev/null @@ -1,27 +0,0 @@ -# -*- Mode: Diff -*- ---- firebird/src/dudley/exe.epp -+++ firebird/src/dudley/exe.epp -@@ -2884,9 +2884,9 @@ - blr_parameter, 0, 0, 0, - blr_parameter, 0, 1, 0, - blr_parameter, 1, 0, 0, -- blr_end, -- blr_end, -- blr_end, -+ SCHAR(blr_end), -+ SCHAR(blr_end), -+ SCHAR(blr_end), - blr_eoc - }; - static FB_API_HANDLE req_handle; ---- firebird/src/gpre/sqe.cpp -+++ firebird/src/gpre/sqe.cpp -@@ -2529,7 +2529,7 @@ - return par_stat(request); - - if (MSC_match(KW_MINUS)) -- return MSC_unary(nod_negate, par_primitive_value(request, false, paren_count, false)); -+ return MSC_unary(nod_negate, par_primitive_value(request, false, paren_count, NULL)); - - MSC_match(KW_PLUS); - diff --git a/external/firebird/firebird-c++14.patch b/external/firebird/firebird-c++14.patch deleted file mode 100644 index d978cef23b86..000000000000 --- a/external/firebird/firebird-c++14.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- src/common/classes/alloc.cpp -+++ src/common/classes/alloc.cpp -@@ -2121,3 +2121,11 @@ - { - Firebird::MemoryPool::globalFree(mem); - } -+void operator delete(void* mem, size_t) throw() -+{ -+ Firebird::MemoryPool::globalFree(mem); -+} -+void operator delete[](void* mem, size_t) throw() -+{ -+ Firebird::MemoryPool::globalFree(mem); -+} ---- src/common/classes/alloc.h -+++ src/common/classes/alloc.h -@@ -491,13 +491,6 @@ - - inline static MemoryPool* getDefaultMemoryPool() { return Firebird::MemoryPool::processMemoryPool; } - --// Global versions of operators new and delete --void* operator new(size_t s) THROW_BAD_ALLOC; --void* operator new[](size_t s) THROW_BAD_ALLOC; -- --void operator delete(void* mem) throw(); --void operator delete[](void* mem) throw(); -- - #ifdef DEBUG_GDS_ALLOC - inline void* operator new(size_t s, Firebird::MemoryPool& pool, const char* file, int line) - { diff --git a/external/firebird/firebird-configure-x86-64-macosx.patch.1 b/external/firebird/firebird-configure-x86-64-macosx.patch.1 index eddd0fa6e600..99a7d2db89f1 100644 --- a/external/firebird/firebird-configure-x86-64-macosx.patch.1 +++ b/external/firebird/firebird-configure-x86-64-macosx.patch.1 @@ -1,20 +1,20 @@ --- firebird.org/configure 2015-03-27 16:00:42.000000000 +0200 -+++ firebird/configure 2015-06-09 15:33:26.000000000 +0300 -@@ -2373,7 +2373,7 @@ ++++ firebird/configure 2015-06-09 15:33:26.000000000 +0300 +@@ -2903,7 +2903,7 @@ ;; - i*86-*-darwin* | i*86_*-darwin*) + i*86-*-darwin*) - MAKEFILE_PREFIX=darwin_i386 + MAKEFILE_PREFIX=darwin_x86_64 MAKEFILE_POSTFIX=darwin PLATFORM=DARWIN INSTALL_PREFIX=darwin -@@ -2386,7 +2386,7 @@ +@@ -2913,7 +2913,7 @@ + LIBS="$LIBS -framework CoreFoundation" EDITLINE_FLG=Y SHRLIB_EXT=dylib - ICU_PLATFORM=MacOSX - CPU_TYPE=i386 + CPU_TYPE=x86_64 + EXPORT_SYMBOLS_STYLE=darwin ;; - powerpc-*-darwin*) diff --git a/external/firebird/firebird-cygwin-msvc.patch b/external/firebird/firebird-cygwin-msvc.patch new file mode 100644 index 000000000000..10c1dfeeaa1f --- /dev/null +++ b/external/firebird/firebird-cygwin-msvc.patch @@ -0,0 +1,687 @@ +--- src/include/firebird.h 2016-07-15 11:31:27.151443500 +0200 ++++ src/include/firebird.h 2016-07-17 14:50:04.043792400 +0200 +@@ -32,11 +32,7 @@ + #ifndef INCLUDE_Firebird_H + #define INCLUDE_Firebird_H + +-#ifdef _MSC_VER +-#include "gen/autoconfig_msvc.h" +-#else + #include "gen/autoconfig.h" +-#endif + + // Using our debugging code is pointless when we may use Valgrind features + #if defined(DEV_BUILD) && !defined(USE_VALGRIND) +--- src/misc/writeBuildNum.sh 2016-07-07 15:57:04.538983200 +0200 ++++ src/misc/writeBuildNum.sh 2016-07-13 11:31:18.132820200 +0200 +@@ -95,9 +95,9 @@ + createMakeVersion() { + + OdsH="${Root}/src/jrd/ods.h" +-Mini="/tmp/miniods.h" +-TestCpp="/tmp/test.cpp" +-AOut="/tmp/a.out" ++Mini=$(cygpath -m "/tmp/miniods.h") ++TestCpp=$(cygpath -m "/tmp/test.cpp") ++AOut=$(cygpath -m "/tmp/a.out") + + grep ODS_VERSION $OdsH | grep -v ENCODE_ODS >$Mini + +--- builds/make.new/config/config.h.in 2016-07-07 15:55:55.693112800 +0200 ++++ builds/make.new/config/config.h.in 2016-07-08 13:38:49.994986400 +0200 +@@ -396,7 +396,7 @@ + #undef HAVE_SIGSET + + /* Define to 1 if you have the `snprintf' function. */ +-#undef HAVE_SNPRINTF ++#define HAVE_SNPRINTF + + /* Define to 1 if you have the <socket.h> header file. */ + #undef HAVE_SOCKET_H +@@ -551,7 +551,7 @@ + #undef HAVE_VFORK_H + + /* Define to 1 if you have the `vsnprintf' function. */ +-#undef HAVE_VSNPRINTF ++#define HAVE_VSNPRINTF + + /* Define to 1 if you have the <winsock2.h> header file. */ + #undef HAVE_WINSOCK2_H +@@ -646,7 +646,7 @@ + #undef TIME_WITH_SYS_TIME + + /* Define this if OS is Windows NT */ +-#undef WIN_NT ++#define WIN_NT + + /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +@@ -703,3 +703,40 @@ + #ifndef HAVE_SOCKLEN_T + typedef int socklen_t; + #endif ++ ++/* taken from src/include/gen/autoconfig_msvc.h */ ++#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers ++/* target architecture */ ++#if defined(_M_IX86) ++/* sizeof(void *) */ ++#define SIZEOF_VOID_P 4 ++/* sizeof(size_t) */ ++#define SIZEOF_SIZE_T 4 ++/* alignment of long */ ++#define FB_ALIGNMENT 4 ++#elif defined(_M_AMD64) ++#define AMD64 ++/* sizeof(void *) */ ++#define SIZEOF_VOID_P 8 ++/* sizeof(size_t) */ ++#define SIZEOF_SIZE_T 8 ++/* alignment of long */ ++#define FB_ALIGNMENT 8 ++#else ++#error unknown target platform ++#endif ++ ++#define HAVE_IO_H ++ ++#define HAVE_GETPAGESIZE ++ ++#if defined _MSC_VER ++#if _MSC_VER < 1500 ++#define vsnprintf _vsnprintf ++#endif ++#define isnan _isnan ++#endif ++ ++#if _MSC_VER < 1900 ++#define snprintf _snprintf ++#endif +--- src/common/common.h 2016-07-15 11:31:26.366735500 +0200 ++++ src/common/common.h 2016-07-17 16:18:39.121579400 +0200 +@@ -551,15 +551,6 @@ + #endif /* WIN_NT */ + + +-#ifndef FB_CPU +-#error Define FB_CPU for your platform +-#endif +-#ifndef FB_OS +-#error Define FB_OS for your platform +-#endif +-#ifndef FB_CC +-#error Define FB_CC for your platform +-#endif + + + /***************************************************** +diff -ur builds/posix/make.defaults builds/posix/make.defaults +--- builds/posix/make.defaults 2016-07-07 13:56:13.036235166 +0200 ++++ builds/posix/make.defaults 2016-07-07 14:29:52.368289242 +0200 +@@ -55,7 +55,11 @@ + else + FIREBIRD=$(FB_BUILD) + endif +-FIREBIRD_LOCK=$(FIREBIRD) ++ifeq (@PLATFORM@,win32) ++ FIREBIRD_LOCK=$(shell cygpath -w $(FIREBIRD) ) ++else ++ FIREBIRD_LOCK=$(FIREBIRD) ++endif + + export FIREBIRD + export FIREBIRD_LOCK +@@ -152,7 +156,11 @@ + CD= cd + CAT= cat + AR= ar @AR_OPTIONS@ +-LN= @LN_S@ ++ifeq (@PLATFORM@,win32) ++ LN= cp ++else ++ LN= @LN_S@ ++endif + RANLIB= @RANLIB@ + BTYACC=$(ROOT)/extern/btyacc/btyacc + CLOOP=$(GEN_ROOT)/$(TARGET)/cloop/release/bin/cloop +@@ -174,10 +182,10 @@ + + # Default extensions + +-ARCH_EXT= .a ++ARCH_EXT= .lib + EXEC_EXT= @EXEEXT@ + SHRLIB_EXT=@SHRLIB_EXT@ +-LIB_PREFIX= lib ++LIB_PREFIX= + SHRLIB_FOREIGN_EXT= $(SHRLIB_EXT) + + #_____________________________________________________________________________ +@@ -203,6 +211,7 @@ + vpath %.so $(LIB) + vpath %.a $(LIB) + vpath %.dll $(LIB) ++vpath %.lib $(LIB) + + #_____________________________________________________________________________ + +@@ -216,9 +225,9 @@ + # + + #LibraryFileName=libfbclient +-LibraryFileName=libfbclient +-LibraryFullName=$(LibraryFileName).${SHRLIB_EXT}.${FirebirdVersion} +-LibrarySoName=$(LibraryFileName).${SHRLIB_EXT}.2 ++LibraryFileName=ifbclient ++LibraryFullName=$(LibraryFileName).${SHRLIB_EXT} ++LibrarySoName=$(LibraryFileName).${SHRLIB_EXT} + LibraryBaseName=$(LibraryFileName).${SHRLIB_EXT} + + LIBFIREBIRD_FULLNAME = $(LIB)/$(LibraryFullName) +@@ -227,7 +236,7 @@ + + # The firebird engine library name + +-EngineFileName=libEngine${OdsVersion} ++EngineFileName=Engine12 + EngineSoName=$(EngineFileName).${SHRLIB_EXT} + ENGINE_SONAME = $(PLUGINS)/$(EngineSoName) + +@@ -241,7 +250,7 @@ + ifeq ($(STD_EDITLINE), true) + LIBEDITLINE := -l$(READLINE) + else +- LIBEDITLINE := $(LIB)/libedit.a ++ LIBEDITLINE := $(LIB)/edit.lib + endif + endif + +@@ -289,7 +298,7 @@ + LIB_PATH_OPTS = $(call LIB_LINK_RPATH,lib) $(call LIB_LINK_RPATH,intl) + LIB_LINK_SONAME= -Wl,-soname,$(1) + LIB_LINK_MAPFILE= -Wl,--version-script,$(1) +-FIREBIRD_LIBRARY_LINK= -L$(LIB) -lfbclient $(MATHLIB) ++FIREBIRD_LIBRARY_LINK= -L$(LIB) -lifbclient $(MATHLIB) + + EXE_LINK_OPTIONS= $(LDFLAGS) $(THR_FLAGS) $(UNDEF_FLAGS) $(LIB_PATH_OPTS) $(LINK_EMPTY_SYMBOLS) + LIB_LINK_OPTIONS= $(LDFLAGS) $(THR_FLAGS) -shared +@@ -329,7 +338,8 @@ + + # Pay attention - we place common library into obj, not lib dir + # It's just a set of object files, prepared to be used by ld, not an output library +-COMMON_LIB = $(OBJ)/common.a ++ ++COMMON_LIB = $(OBJ)/common.lib + + # From utilities + CREATE_DB = $(RBIN)/create_db$(EXEC_EXT) +--- builds/posix/Makefile.in 2016-07-07 15:56:06.459221300 +0200 ++++ builds/posix/Makefile.in 2016-07-13 12:44:57.134217200 +0200 +@@ -33,7 +33,8 @@ + # Alex Peshkoff - created single makefile based on Mark's files + # + +-ROOT=$(shell cd ..; pwd) ++#ROOT=$(shell cd ..; pwd) ++ROOT=$(shell cygpath -m '$(shell cd ..; pwd)') + + include make.defaults + ifeq ($(CROSS_OUT), Y) +@@ -163,7 +164,7 @@ + .PHONY: cross1 cross2 boot yvalve engine fbintl gpre utilities plugins rest codes ids examples cross_rest + + master_process: +- ln -sf $(SRC_ROOT)/include/gen/autoconfig.auto $(SRC_ROOT)/include/gen/autoconfig.h ++ cp -f $(SRC_ROOT)/include/gen/autoconfig.auto $(SRC_ROOT)/include/gen/autoconfig.h + $(MAKE) updateBuildNum + $(MAKE) export_lists + $(MAKE) extern +@@ -186,10 +187,10 @@ + (cd $(BIN); $(LN) $(notdir $(GPRE)) $(notdir $(GPRE_CURRENT))) + ifeq ($(IsDeveloper), Y) + # In developer mode we must regenerate various files in include/gen +- $(MAKE) codes ++# $(MAKE) codes + endif +- $(MAKE) plugins +- $(MAKE) examples ++# $(MAKE) plugins ++ $(MAKE) include_generic + $(MAKE) rest + + +@@ -198,7 +199,7 @@ + $(MAKE) CROSS_OUT=Y cross2 + + cross1: +- ln -sf $(SRC_ROOT)/include/gen/autoconfig.auto $(SRC_ROOT)/include/gen/autoconfig.h ++ cp -f $(SRC_ROOT)/include/gen/autoconfig.auto $(SRC_ROOT)/include/gen/autoconfig.h + $(MAKE) updateBuildNum + $(MAKE) export_lists + $(MAKE) extern +@@ -223,7 +224,7 @@ + $(MAKE) -f Makefile.examples -C $(GEN_ROOT)/examples/ + + cross2: +- ln -sf $(SRC_ROOT)/include/cross/$(CROSS_CONFIG) $(SRC_ROOT)/include/gen/autoconfig.h ++ cp -f $(SRC_ROOT)/include/cross/$(CROSS_CONFIG) $(SRC_ROOT)/include/gen/autoconfig.h + $(MAKE) prerequisites + $(MAKE) tommath + $(MAKE) yvalve +@@ -275,7 +275,8 @@ + + # remote redirector is statically linked in main FB library + $(LIBFIREBIRD_FULLNAME): $(YValve_Objects) $(Remote_Client_Objects) $(COMMON_LIB) +- $(LINK_FIREBIRD) -o $@ $^ $(LINK_FIREBIRD_LIBS) ++ @echo 'compile: $(LINK_FIREBIRD) $(CPPFLAGS) -o $@ $^ $(LINK_FIREBIRD_LIBS)' ++ $(LINK_FIREBIRD) $(CPPFLAGS) -o $@ $^ $(LINK_FIREBIRD_LIBS) + + + #___________________________________________________________________________ +@@ -284,7 +286,8 @@ + engine: $(ENGINE_SONAME) + + $(ENGINE_SONAME): $(Engine_Objects) $(SVC_Objects) $(COMMON_LIB) +- $(LINK_ENGINE) -o $@ $^ $(LINK_ENGINE_LIBS) ++ @echo 'compile engine: $(LINK_ENGINE) $(CPPFLAGS) -o $@ $^ $(LINK_ENGINE_LIBS)' ++ $(LINK_ENGINE) $(CPPFLAGS) -o $@ $^ $(YValve_Objects) $(Remote_Client_Objects) $(LINK_ENGINE_LIBS) + + + #___________________________________________________________________________ +@@ -294,7 +297,7 @@ + fbintl: $(LIBFBINTL_SO) + + $(LIBFBINTL_SO): $(INTL_Objects) $(COMMON_LIB) +- $(LINK_INTL) -o $@ $^ $(LINK_INTL_LIBS) ++ $(LINK_INTL) $(CPPFLAGS) -o $@ $^ $(YValve_Objects) $(Remote_Client_Objects) $(LINK_INTL_LIBS) + + + #___________________________________________________________________________ +@@ -393,7 +396,7 @@ + + .PHONY: firebird_server fb_lock_print fbguard fbsvcmgr fbtracemgr gbak gfix gsec gsplit gstat isql nbackup + +-utilities: firebird_server fb_lock_print fbguard fbsvcmgr fbtracemgr gbak gfix gsec gsplit gstat isql nbackup udfsupport ++utilities: gbak gfix isql + + firebird_server: $(FB_DAEMON) + +@@ -540,7 +543,7 @@ + GBAK_FILES := $(FDB_FILES:.fdb=.gbak) $(FIREBIRD)/msg.gbak + GBAK_FILES := $(subst Native,$(TARGET),$(GBAK_FILES)) + +-rest: qli message_file ++rest: message_file + + cross_rest: qli gbak_files + $(MAKE) $(BUILD_FILE) +@@ -593,7 +595,7 @@ + IBASE_ExtraFiles = include/types_pub.h include/consts_pub.h dsql/sqlda_pub.h common/dsc_pub.h jrd/ibase.h jrd/inf_pub.h jrd/blr.h include/gen/iberror.h + SRC_IBASE_ExtraFiles = $(addprefix $(SRC_ROOT)/, $(IBASE_ExtraFiles)) + MAKE_HEADER_Src = $(addprefix $(SRC_ROOT)/, misc/makeHeader.cpp) +-MAKE_HEADER_Bin = ./makeHeader ++MAKE_HEADER_Bin = ./makeHeader.exe + + $(INCLUDE_DEST)/ibase.h: $(SRC_IBASE_ExtraFiles) + $(STATICEXE_LINK) -o $(MAKE_HEADER_Bin) $(MAKE_HEADER_Src) +diff -ur builds/posix/Makefile.in.examples builds/posix/Makefile.in.examples +--- builds/posix/Makefile.in.examples 2016-07-07 13:56:13.048235166 +0200 ++++ builds/posix/Makefile.in.examples 2016-07-07 14:37:36.904301682 +0200 +@@ -65,10 +65,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 +@@ -172,3 +175,5 @@ + + $(EXAMPLES_DEST)/%.h: $(EXAMPLES_SRC)/common/%.h + $(CP) $^ $@ ++$(EXAMPLES_DEST)/%.obj: $(EXAMPLES_DEST)/%.c ++ $(CC) -c $(firstword $<) -Fo$@ $(WCFLAGS) +diff -ur builds/posix/make.rules builds/posix/make.rules +--- builds/posix/make.rules 2016-07-07 13:56:13.036235166 +0200 ++++ builds/posix/make.rules 2016-07-07 14:31:16.116291485 +0200 +@@ -88,22 +88,20 @@ + + $(OBJ)/%.o: $(SRC_ROOT)/%.c + $(CC) $(WCFLAGS) -c $(firstword $<) -o $@ +- @sed $(INLINE_EDIT_SED) -e "1,2s/:/: \$$(wildcard/" -e "\$$s/\(.*\)/\\1)/" $(patsubst %.o,%.d,$@) + + $(OBJ)/%.o: $(OBJ)/%.cpp + $(CXX) $(WCXXFLAGS) -c $(firstword $<) -o $@ +- @sed $(INLINE_EDIT_SED) -e "1,2s/:/: \$$(wildcard/" -e "\$$s/\(.*\)/\\1)/" $(patsubst %.o,%.d,$@) + + $(OBJ)/%.o: $(SRC_ROOT)/%.cpp + $(CXX) $(WCXXFLAGS) -c $(firstword $<) -o $@ +- @sed $(INLINE_EDIT_SED) -e "1,2s/:/: \$$(wildcard/" -e "\$$s/\(.*\)/\\1)/" $(patsubst %.o,%.d,$@) + + .SUFFIXES: .epp .e + + # Rules for making resource files + + $(GEN_ROOT)/%.res: $(SRC_ROOT)/%.rc +- windres --output-format=coff --include-dir=$(<D) $< $@ ++ mkdir -p $(@D) ++ rc.exe $(SOLARINC) /fo $@ $< + + # Rule for making gbak files when cross-compiling + +--- src/common/utils.cpp 2016-07-15 11:31:26.746871100 +0200 ++++ src/common/utils.cpp 2016-07-19 19:14:45.370689300 +0200 +@@ -880,15 +880,15 @@ + FILETIME utime, stime, dummy; + if (GetProcessTimes(GetCurrentProcess(), &dummy, &dummy, &stime, &utime)) + { +- LARGE_INTEGER lint; ++ LARGE_INTEGER myLargeInt; + +- lint.HighPart = stime.dwHighDateTime; +- lint.LowPart = stime.dwLowDateTime; +- sysTime = lint.QuadPart / 10000; +- +- lint.HighPart = utime.dwHighDateTime; +- lint.LowPart = utime.dwLowDateTime; +- userTime = lint.QuadPart / 10000; ++ myLargeInt.HighPart = stime.dwHighDateTime; ++ myLargeInt.LowPart = stime.dwLowDateTime; ++ sysTime = myLargeInt.QuadPart / 10000; ++ ++ myLargeInt.HighPart = utime.dwHighDateTime; ++ myLargeInt.LowPart = utime.dwLowDateTime; ++ userTime = myLargeInt.QuadPart / 10000; + } + else + { +diff -ur builds/posix/prefix.mingw builds/posix/prefix.mingw +--- builds/posix/prefix.mingw 2016-07-07 13:56:13.048235166 +0200 ++++ builds/posix/prefix.mingw 2016-07-07 14:50:54.704323046 +0200 +@@ -20,8 +20,8 @@ + # + + # -Wno-unused-variable is used due to unused gpre generated variables +-PROD_FLAGS=-O2 -DMINGW -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 -Wno-non-virtual-dtor +-DEV_FLAGS=-ggdb -DMINGW -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 -Wno-non-virtual-dtor ++PROD_FLAGS=-O2 -DMINGW -Dlint -DWIN32_LEAN_AND_MEAN ++DEV_FLAGS=-ggdb -DMINGW -Dlint -DWIN32_LEAN_AND_MEAN + + PLATFORM_PATH=os/win32 + +@@ -29,6 +29,7 @@ + LIB_LINK=$(LD) + + LIB_LINK_OPTIONS+=-Wl,--enable-stdcall-fixup ++LIB_PLATFORM_RPATH= + + # Strip symbols from release versions to decrease size + ifeq ($(IsProdTypeBuild),Y) +@@ -36,6 +37,9 @@ + 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 +@@ -55,7 +59,8 @@ + 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/firebird.def ++LINK_PLUGIN_SYMBOLS = /def:$(BLD_ROOT)/win32/defs/plugin.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 +--- builds/posix/make.shared.variables 2016-07-22 17:07:46.650672300 +0200 ++++ builds/posix/make.shared.variables 2016-07-23 10:44:41.311454600 +0200 +@@ -56,6 +56,7 @@ + Remote_Server:= $(call dirObjects,remote/server) $(call dirObjects,auth/SecureRemotePassword/server) + Remote_Client:= $(call dirObjects,remote/client) $(call dirObjects,auth/SecureRemotePassword/client) \ + $(call makeObjects,auth/SecurityDatabase,LegacyClient.cpp) \ ++ $(call dirObjects,auth/trusted) \ + $(call dirObjects,plugins/crypt/arc4) + Remote_Server_Objects:= $(Remote_Common) $(Remote_Server) + Remote_Client_Objects:= $(Remote_Common) $(Remote_Client) +diff -ur configure configure +--- configure 2016-07-07 13:55:54.976234682 +0200 ++++ configure 2016-07-07 14:54:30.012328812 +0200 +@@ -3337,6 +3337,14 @@ + SHRLIB_EXT=dll + ;; + ++ *-*-cygwin*) ++ MAKEFILE_PREFIX=mingw ++ PLATFORM=win32 ++ EDITLINE_FLG=N ++ RAW_DEVICES_FLG=N ++ SHRLIB_EXT=dll ++ ;; ++ + *) + as_fn_error $? "unsupported platform ${build}" "$LINENO" 5 + ;; +@@ -8432,6 +8432,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 + + # Try without a prefix underscore, then with it. +diff -ur extern/btyacc/main.c extern/btyacc/main.c +--- extern/btyacc/main.c 2016-07-07 13:55:55.448234695 +0200 ++++ extern/btyacc/main.c 2016-07-07 14:56:03.560331317 +0200 +@@ -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> +diff -ur extern/btyacc/Makefile extern/btyacc/Makefile +--- extern/btyacc/Makefile 2016-07-07 13:55:55.448234695 +0200 ++++ extern/btyacc/Makefile 2016-07-07 14:57:42.284333961 +0200 +@@ -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) + +--- extern/cloop/src/tests/test1/CppTest.cpp 2016-07-07 15:56:27.948015300 +0200 ++++ extern/cloop/src/tests/test1/CppTest.cpp 2016-07-13 18:58:48.529822600 +0200 +@@ -24,6 +24,7 @@ + #include <stdio.h> + #include <assert.h> + ++#define WIN32 + #ifdef WIN32 + #include <windows.h> + #define DLL_EXPORT __declspec(dllexport) +--- extern/cloop/src/tests/test1/CTest.c 2016-07-07 15:56:27.611791300 +0200 ++++ extern/cloop/src/tests/test1/CTest.c 2016-07-13 17:04:22.805090300 +0200 +@@ -23,6 +23,7 @@ + #include <malloc.h> + #include <stdio.h> + ++#define WIN32 + #ifdef WIN32 + #include <windows.h> + #define DLL_EXPORT __declspec(dllexport) +--- extern/cloop/Makefile 2016-07-07 15:56:28.279136300 +0200 ++++ extern/cloop/Makefile 2016-07-13 16:22:38.493479800 +0200 +@@ -4,15 +4,15 @@ + + TARGET := release + +-CC := gcc +-CXX := g++ +-LD := $(CXX) ++#CC := gcc ++#CXX := g++ ++#LD := $(CXX) + + SRC_DIR := src + BUILD_DIR := build + OUT_DIR := output +-SHRLIB_EXT := .so +-EXE_EXT := ++SHRLIB_EXT := .dll ++EXE_EXT := .exe + + OBJ_DIR := $(BUILD_DIR)/$(TARGET) + BIN_DIR := $(OUT_DIR)/$(TARGET)/bin +@@ -27,17 +27,17 @@ + OBJS_C := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS_C)) + OBJS_CPP := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRCS_CPP)) + +-C_FLAGS := -ggdb -fPIC -MMD -MP -W -Wall -Wno-unused-parameter ++C_FLAGS := -fPIC + CXX_FLAGS := $(C_FLAGS) + FPC_FLAGS := -Mdelphi + +-ifeq ($(TARGET),release) +- CXX_FLAGS += -O3 +-endif +- +-ifeq ($(TARGET),debug) +- FPC_FLAGS += -g +-endif ++#ifeq ($(TARGET),release) ++# CXX_FLAGS += -O3 ++#endif ++ ++#ifeq ($(TARGET),debug) ++# FPC_FLAGS += -g ++#endif + + vpath %.c $(SRC_DIRS) + vpath %.cpp $(SRC_DIRS) +@@ -53,7 +53,7 @@ + .PHONY: all mkdirs clean + + all: mkdirs \ +- $(BIN_DIR)/cloop \ ++ $(BIN_DIR)/cloop$(EXE_EXT) \ + $(BIN_DIR)/test1-c$(SHRLIB_EXT) \ + $(BIN_DIR)/test1-c$(EXE_EXT) \ + $(BIN_DIR)/test1-cpp$(SHRLIB_EXT) \ +@@ -74,7 +74,7 @@ + -include $(addsuffix .d,$(basename $(OBJS_C))) + -include $(addsuffix .d,$(basename $(OBJS_CPP))) + +-$(BIN_DIR)/cloop: \ ++$(BIN_DIR)/cloop$(EXE_EXT): \ + $(OBJ_DIR)/cloop/Expr.o \ + $(OBJ_DIR)/cloop/Generator.o \ + $(OBJ_DIR)/cloop/Lexer.o \ +@@ -83,20 +83,20 @@ + + $(LD) $^ -o $@ + +-$(SRC_DIR)/tests/test1/CalcCApi.h: $(BIN_DIR)/cloop $(SRC_DIR)/tests/test1/Interface.idl +- $(BIN_DIR)/cloop $(SRC_DIR)/tests/test1/Interface.idl c-header $@ CALC_C_API_H CALC_I ++$(SRC_DIR)/tests/test1/CalcCApi.h: $(BIN_DIR)/cloop$(EXE_EXT) $(SRC_DIR)/tests/test1/Interface.idl ++ $(BIN_DIR)/cloop$(EXE_EXT) $(SRC_DIR)/tests/test1/Interface.idl c-header $@ CALC_C_API_H CALC_I + +-$(SRC_DIR)/tests/test1/CalcCApi.c: $(BIN_DIR)/cloop $(SRC_DIR)/tests/test1/Interface.idl $(SRC_DIR)/tests/test1/CalcCApi.h +- $(BIN_DIR)/cloop $(SRC_DIR)/tests/test1/Interface.idl c-impl $@ CalcCApi.h CALC_I ++$(SRC_DIR)/tests/test1/CalcCApi.c: $(BIN_DIR)/cloop$(EXE_EXT) $(SRC_DIR)/tests/test1/Interface.idl $(SRC_DIR)/tests/test1/CalcCApi.h ++ $(BIN_DIR)/cloop$(EXE_EXT) $(SRC_DIR)/tests/test1/Interface.idl c-impl $@ CalcCApi.h CALC_I + +-$(SRC_DIR)/tests/test1/CalcCppApi.h: $(BIN_DIR)/cloop $(SRC_DIR)/tests/test1/Interface.idl +- $(BIN_DIR)/cloop $(SRC_DIR)/tests/test1/Interface.idl c++ $@ CALC_CPP_API_H calc I ++$(SRC_DIR)/tests/test1/CalcCppApi.h: $(BIN_DIR)/cloop$(EXE_EXT) $(SRC_DIR)/tests/test1/Interface.idl ++ $(BIN_DIR)/cloop$(EXE_EXT) $(SRC_DIR)/tests/test1/Interface.idl c++ $@ CALC_CPP_API_H calc I + +-$(SRC_DIR)/tests/test1/CalcPascalApi.pas: $(BIN_DIR)/cloop \ ++$(SRC_DIR)/tests/test1/CalcPascalApi.pas: $(BIN_DIR)/cloop$(EXE_EXT) \ + $(SRC_DIR)/tests/test1/Interface.idl \ + $(SRC_DIR)/tests/test1/CalcPascalApi.interface.pas \ + $(SRC_DIR)/tests/test1/CalcPascalApi.implementation.pas +- $(BIN_DIR)/cloop $(SRC_DIR)/tests/test1/Interface.idl pascal $@ CalcPascalApi \ ++ $(BIN_DIR)/cloop$(EXE_EXT) $(SRC_DIR)/tests/test1/Interface.idl pascal $@ CalcPascalApi \ + --uses "SysUtils" \ + --interfaceFile $(SRC_DIR)/tests/test1/CalcPascalApi.interface.pas \ + --implementationFile $(SRC_DIR)/tests/test1/CalcPascalApi.implementation.pas \ +@@ -108,23 +108,23 @@ + $(OBJ_DIR)/tests/test1/CalcCApi.o \ + $(OBJ_DIR)/tests/test1/CTest.o \ + +- $(LD) $^ -shared -ldl -o $@ ++ $(LD) $^ -o $@ + + $(BIN_DIR)/test1-c$(EXE_EXT): \ + $(OBJ_DIR)/tests/test1/CalcCApi.o \ + $(OBJ_DIR)/tests/test1/CTest.o \ + +- $(LD) $^ -ldl -o $@ ++ $(LD) $^ -o $@ + + $(BIN_DIR)/test1-cpp$(SHRLIB_EXT): \ + $(OBJ_DIR)/tests/test1/CppTest.o \ + +- $(LD) $^ -shared -ldl -o $@ ++ $(LD) $^ -o $@ + + $(BIN_DIR)/test1-cpp$(EXE_EXT): \ + $(OBJ_DIR)/tests/test1/CppTest.o \ + +- $(LD) $^ -ldl -o $@ ++ $(LD) $^ -o $@ + + $(BIN_DIR)/test1-pascal$(SHRLIB_EXT): \ + $(SRC_DIR)/tests/test1/PascalClasses.pas \ +diff -ur src/common/classes/fb_string.cpp src/common/classes/fb_string.cpp +--- src/common/classes/fb_string.cpp 2016-07-07 13:55:56.064234711 +0200 ++++ src/common/classes/fb_string.cpp 2016-07-07 14:59:01.516336083 +0200 +@@ -32,6 +32,12 @@ + #include <ctype.h> + #include <stdarg.h> + ++#ifdef WIN_NT ++#pragma comment(lib, "User32.lib") ++#pragma comment(lib, "advapi32") ++#pragma comment(lib, "shell32.lib") ++#endif ++ + #ifdef HAVE_STRCASECMP + #define STRNCASECMP strncasecmp + #else +diff -ur src/misc/makeHeader.cpp src/misc/makeHeader.cpp +--- src/misc/makeHeader.cpp 2016-07-07 13:56:00.100234819 +0200 ++++ src/misc/makeHeader.cpp 2016-07-07 15:00:14.780338045 +0200 +@@ -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 + + + diff --git a/external/firebird/firebird-cygwin-msvc.patch.1 b/external/firebird/firebird-cygwin-msvc.patch.1 deleted file mode 100644 index 565e178a156f..000000000000 --- a/external/firebird/firebird-cygwin-msvc.patch.1 +++ /dev/null @@ -1,484 +0,0 @@ -diff -ur firebird.org/builds/make.new/config/config.h.in firebird/builds/make.new/config/config.h.in ---- firebird.org/builds/make.new/config/config.h.in 2015-07-30 18:57:00.826593100 +0200 -+++ firebird/builds/make.new/config/config.h.in 2015-07-30 19:27:52.139226300 +0200 -@@ -668,3 +668,37 @@ - #ifndef HAVE_SOCKLEN_T - typedef int socklen_t; - #endif -+ -+/* taken from src/include/gen/autoconfig_msvc.h */ -+#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -+/* target architecture */ -+#if defined(_M_IX86) -+/* sizeof(void *) */ -+#define SIZEOF_VOID_P 4 -+/* sizeof(size_t) */ -+#define SIZEOF_SIZE_T 4 -+/* alignment of long */ -+#define FB_ALIGNMENT 4 -+#elif defined(_M_AMD64) -+#define AMD64 -+/* sizeof(void *) */ -+#define SIZEOF_VOID_P 8 -+/* sizeof(size_t) */ -+#define SIZEOF_SIZE_T 8 -+/* alignment of long */ -+#define FB_ALIGNMENT 8 -+#else -+#error unknown target platform -+#endif -+ -+#define HAVE_IO_H -+ -+#define HAVE_GETPAGESIZE -+ -+#if defined _MSC_VER -+#if _MSC_VER < 1500 -+#define vsnprintf _vsnprintf -+#endif -+#define isnan _isnan -+#endif -+#define snprintf _snprintf -diff -ur firebird.org/builds/posix/make.defaults firebird/builds/posix/make.defaults ---- firebird.org/builds/posix/make.defaults 2015-07-30 18:56:58.936120900 +0200 -+++ firebird/builds/posix/make.defaults 2015-07-30 19:29:23.420338600 +0200 -@@ -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 +203,7 @@ - vpath %.so $(LIB) - vpath %.a $(LIB) - vpath %.dll $(LIB) -+vpath %.lib $(LIB) - - #_____________________________________________________________________________ - -@@ -193,9 +218,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 +244,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) -diff -ur firebird.org/builds/posix/make.rules firebird/builds/posix/make.rules ---- firebird.org/builds/posix/make.rules 2015-07-30 18:56:58.404726100 +0200 -+++ firebird/builds/posix/make.rules 2015-07-30 19:29:24.404796300 +0200 -@@ -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 $@ $< -diff -ur firebird.org/builds/posix/Makefile.in.examples firebird/builds/posix/Makefile.in.examples ---- firebird.org/builds/posix/Makefile.in.examples 2015-07-30 18:56:58.982902900 +0200 -+++ firebird/builds/posix/Makefile.in.examples 2015-07-30 19:29:23.436010500 +0200 -@@ -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 -@@ -166,3 +169,6 @@ - - $(EXAMPLES_DEST)/%.h: $(EXAMPLES_SRC)/common/%.h - $(CP) $^ $@ -+ -+$(EXAMPLES_DEST)/%.obj: $(EXAMPLES_DEST)/%.c -+ $(CC) -c $(firstword $<) -Fo$@ $(WCFLAGS) -\ No newline at end of file -diff -ur firebird.org/builds/posix/Makefile.in.extlib firebird/builds/posix/Makefile.in.extlib ---- firebird.org/builds/posix/Makefile.in.extlib 2015-07-30 18:56:58.936120900 +0200 -+++ firebird/builds/posix/Makefile.in.extlib 2015-07-30 19:29:23.483041600 +0200 -@@ -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 - -diff -ur firebird.org/builds/posix/Makefile.in.firebird firebird/builds/posix/Makefile.in.firebird ---- firebird.org/builds/posix/Makefile.in.firebird 2015-07-30 18:56:58.357870500 +0200 -+++ firebird/builds/posix/Makefile.in.firebird 2015-07-30 19:29:23.514113100 +0200 -@@ -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 - - -@@ -300,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 +332,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 +448,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 -diff -ur firebird.org/builds/posix/Makefile.in.intl firebird/builds/posix/Makefile.in.intl ---- firebird.org/builds/posix/Makefile.in.intl 2015-07-30 18:56:58.936120900 +0200 -+++ firebird/builds/posix/Makefile.in.intl 2015-07-30 19:29:23.576732800 +0200 -@@ -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 -ur firebird.org/builds/posix/Makefile.in.libfbembed firebird/builds/posix/Makefile.in.libfbembed ---- firebird.org/builds/posix/Makefile.in.libfbembed 2015-07-30 18:56:58.826768300 +0200 -+++ firebird/builds/posix/Makefile.in.libfbembed 2015-07-30 19:29:23.670532500 +0200 -@@ -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 - -diff -ur firebird.org/builds/posix/Makefile.in.libfbstatic firebird/builds/posix/Makefile.in.libfbstatic ---- firebird.org/builds/posix/Makefile.in.libfbstatic 2015-07-30 18:56:58.826768300 +0200 -+++ firebird/builds/posix/Makefile.in.libfbstatic 2015-07-30 19:29:23.717391000 +0200 -@@ -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) $@ -diff -ur firebird.org/builds/posix/prefix.mingw firebird/builds/posix/prefix.mingw ---- firebird.org/builds/posix/prefix.mingw 2015-07-30 18:56:59.029762200 +0200 -+++ firebird/builds/posix/prefix.mingw 2015-07-30 19:29:23.779759400 +0200 -@@ -20,8 +20,8 @@ - # - - # -Wno-unused-variable is used due to unused gpre generated variables --PROD_FLAGS=-O2 -march=i586 -DMINGW -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 -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 -Wall -fmessage-length=0 -Dlint -DWIN32_LEAN_AND_MEAN -MMD -mthreads -+DEV_FLAGS=-ggdb -march=i586 -DMINGW -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 -diff -ur firebird.org/configure firebird/configure ---- firebird.org/configure 2015-07-30 18:57:33.826760500 +0200 -+++ firebird/configure 2015-07-30 19:29:23.873496600 +0200 -@@ -9016,6 +9016,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. -@@ -9964,7 +9967,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' -@@ -14757,7 +14760,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' -@@ -16534,7 +16537,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' -@@ -16604,7 +16607,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' -@@ -19149,7 +19152,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' -@@ -19219,7 +19222,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' -diff -ur firebird.org/extern/btyacc/main.c firebird/extern/btyacc/main.c ---- firebird.org/extern/btyacc/main.c 2015-07-30 18:57:01.029880800 +0200 -+++ firebird/extern/btyacc/main.c 2015-07-30 19:29:23.920389000 +0200 -@@ -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> -diff -ur firebird.org/extern/btyacc/Makefile firebird/extern/btyacc/Makefile ---- firebird.org/extern/btyacc/Makefile 2015-07-30 18:57:01.201632400 +0200 -+++ firebird/extern/btyacc/Makefile 2015-07-30 19:29:24.326742400 +0200 -@@ -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) - -diff -ur firebird.org/src/common/classes/fb_string.cpp firebird/src/common/classes/fb_string.cpp ---- firebird.org/src/common/classes/fb_string.cpp 2015-07-30 18:57:31.357886800 +0200 -+++ firebird/src/common/classes/fb_string.cpp 2015-07-30 19:29:24.045626200 +0200 -@@ -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 -diff -ur firebird.org/src/jrd/gds.cpp firebird/src/jrd/gds.cpp ---- firebird.org/src/jrd/gds.cpp 2015-07-30 18:57:25.045586000 +0200 -+++ firebird/src/jrd/gds.cpp 2015-07-30 19:29:24.092207700 +0200 -@@ -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> -diff -ur firebird.org/src/jrd/isc.cpp firebird/src/jrd/isc.cpp ---- firebird.org/src/jrd/isc.cpp 2015-07-30 18:57:24.186115300 +0200 -+++ firebird/src/jrd/isc.cpp 2015-07-30 19:29:24.123769900 +0200 -@@ -60,7 +60,7 @@ - /* Win32 specific stuff */ - - #ifdef WIN_NT -- -+#pragma comment(lib, "User32") - #include <windows.h> - #include <aclapi.h> - #include <lmcons.h> -diff -ur firebird.org/src/misc/makeHeader.cpp firebird/src/misc/makeHeader.cpp ---- firebird.org/src/misc/makeHeader.cpp 2015-07-30 18:57:26.498503700 +0200 -+++ firebird/src/misc/makeHeader.cpp 2015-07-30 19:29:24.279812900 +0200 -@@ -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 - - - diff --git a/external/firebird/firebird-macosx.patch.1 b/external/firebird/firebird-macosx.patch.1 index b9473734a6f6..75f86e238bc0 100644 --- a/external/firebird/firebird-macosx.patch.1 +++ b/external/firebird/firebird-macosx.patch.1 @@ -1,35 +1,46 @@ -# -*- Mode: Diff -*- ---- firebird.org/builds/posix/darwin.defaults -+++ firebird/builds/posix/darwin.defaults -@@ -32,17 +32,17 @@ - LINK_EMPTY_SYMBOLS=$(LIB_LINK_MAPFILE)$(ROOT)/builds/posix/empty.darwin.vers - LINK_FIREBIRD_SYMBOLS=$(LIB_LINK_MAPFILE)$(ROOT)/builds/posix/firebird.darwin.vers - --LIB_LINK_RPATH:=-install_name /Library/Frameworks/Firebird.framework/Versions/A/Libraries/ --LIB_EMBED_LINK_OPTIONS:=-install_name /Library/Frameworks/Firebird.framework/Versions/A/Firebird --LIB_CLIENT_LINK_OPTIONS:=-install_name /Library/Frameworks/Firebird.framework/Versions/A/Firebird --FBEMBED_LINK:=-F../gen/firebird -framework Firebird -L$(LIB) -lfbembed $(ICU_LIBS) -+LIB_LINK_RPATH:= -+LIB_EMBED_LINK_OPTIONS:=-install_name @__________________________________________________OOO/libfbembed.dylib -+LIB_CLIENT_LINK_OPTIONS:= -+FBEMBED_LINK:=-L$(LIB) -lfbembed $(ICU_LIBS) - PLATFORM_FALLBACK=os/posix - --PLAT_CLASSIC_PRE_TARGET=darwin_setup_framework --PLAT_CLASSIC_POST_TARGET=darwin_finish_cs_framework -+PLAT_CLASSIC_PRE_TARGET= -+PLAT_CLASSIC_POST_TARGET= - --PLAT_SUPER_PRE_TARGET=darwin_setup_framework --PLAT_SUPER_POST_TARGET=darwin_finish_ss_framework -+PLAT_SUPER_PRE_TARGET= -+PLAT_SUPER_POST_TRAGET= - - PLATFORM_POSTBUILD_TARGET=darwin_postbuild_target - -diff -ur firebird.org/builds/posix/postfix.darwin firebird/builds/posix/postfix.darwin ---- firebird.org/builds/posix/postfix.darwin 2013-07-12 20:55:46.000000000 +0200 -+++ firebird/builds/posix/postfix.darwin 2013-07-15 12:07:36.000000000 +0200 +--- firebird.org/extern/cloop/src/tests/test1/CTest.c 2016-08-01 22:55:35.000000000 +0200 ++++ firebird/extern/cloop/src/tests/test1/CTest.c 2016-08-02 21:11:31.000000000 +0200 +@@ -20,7 +20,7 @@ + */ + + #include "CalcCApi.h" +-#include <malloc.h> ++#include <stdlib.h> + #include <stdio.h> + + #ifdef WIN32 +--- firebird.org/builds/posix/prefix.darwin_x86_64 2016-08-01 20:02:48.000000000 +0200 ++++ firebird/builds/posix/prefix.darwin_x86_64 2016-08-01 21:42:45.000000000 +0200 +@@ -19,7 +19,7 @@ + # + # Default build from 10.7 using Clang + +-DYLD_LIBRARY_PATH=$(HOME)/icu54/icu/source/lib ++DYLD_LIBRARY_PATH:=$(HOME)/icu54/icu/source/lib:$(DYLD_LIBRARY_PATH) + export DYLD_LIBRARY_PATH + + #DYLD_PRINT_ENV=1 +@@ -31,15 +31,15 @@ + MACOSX_DEPLOYMENT_TARGET=10.7 + export MACOSX_DEPLOYMENT_TARGET + +-PROD_FLAGS=-O1 -DDARWIN -pipe -MMD -fPIC -fno-common -mmacosx-version-min=10.7 +-DEV_FLAGS=-ggdb -DDARWIN -pipe -MMD -fPIC -fno-omit-frame-pointer -fno-common -Wall -fno-optimize-sibling-calls -mmacosx-version-min=10.7 -Wno-non-virtual-dtor ++PROD_FLAGS=-O1 -DDARWIN -pipe -MMD -fPIC -fno-common ++DEV_FLAGS=-ggdb -DDARWIN -pipe -MMD -fPIC -fno-omit-frame-pointer -fno-common -Wall -fno-optimize-sibling-calls -Wno-non-virtual-dtor + CXXFLAGS:=$(CXXFLAGS) -fvisibility-inlines-hidden -fvisibility=hidden + + EXE_LINK_OPTIONS:= + UNDEF_PLATFORM= + + LINK_LIBS+=-liconv +-MATHLIB=/opt/local/lib/libtommath.a ++MATHLIB=-ltommath + SO_LINK_LIBS+=-liconv + + include $(ROOT)/gen/darwin.defaults +--- firebird.org/builds/posix/postfix.darwin 2016-08-01 20:02:48.000000000 +0200 ++++ firebird/builds/posix/postfix.darwin 2016-08-01 22:17:49.000000000 +0200 @@ -54,9 +54,9 @@ cp -r ../gen/firebird/include $(FB_FW)/Versions/A/Headers cp ../gen/firebird/lib/libfbembed.dylib $(FB_FW)/Versions/A/Firebird @@ -37,9 +48,9 @@ diff -ur firebird.org/builds/posix/postfix.darwin firebird/builds/posix/postfix. - cp ../gen/firebird/lib/libicudata.dylib $(FB_FW)/Versions/A/Libraries/libicudata.dylib - cp ../gen/firebird/lib/libicui18n.dylib $(FB_FW)/Versions/A/Libraries/libicui18n.dylib - cp ../gen/firebird/lib/libicuuc.dylib $(FB_FW)/Versions/A/Libraries/libicuuc.dylib -+ #cp ../gen/firebird/lib/libicudata.dylib $(FB_FW)/Versions/A/Libraries/libicudata.dylib -+ #cp ../gen/firebird/lib/libicui18n.dylib $(FB_FW)/Versions/A/Libraries/libicui18n.dylib -+ #cp ../gen/firebird/lib/libicuuc.dylib $(FB_FW)/Versions/A/Libraries/libicuuc.dylib ++# cp ../gen/firebird/lib/libicudata.dylib $(FB_FW)/Versions/A/Libraries/libicudata.dylib ++# cp ../gen/firebird/lib/libicui18n.dylib $(FB_FW)/Versions/A/Libraries/libicui18n.dylib ++# cp ../gen/firebird/lib/libicuuc.dylib $(FB_FW)/Versions/A/Libraries/libicuuc.dylib cp ../gen/firebird/lib/libib_util.dylib $(FB_FW)/Versions/A/Libraries/libib_util.dylib cp ../gen/firebird/firebird.msg \ $(FB_FW)/Resources/English.lproj/var/firebird.msg @@ -54,48 +65,84 @@ diff -ur firebird.org/builds/posix/postfix.darwin firebird/builds/posix/postfix. cp -r ../gen/firebird/help $(FB_FW)/Resources/English.lproj/var/help cp ../gen/firebird/security2.fdb $(FB_FW)/Resources/English.lproj/var mkdir -p $(FB_FW)/Resources/doc ---- firebird.org/builds/posix/prefix.darwin_i386 -+++ firebird/builds/posix/prefix.darwin_i386 -@@ -24,7 +24,7 @@ +--- firebird.org/builds/posix/prefix.darwin_i386 2016-08-01 22:55:34.000000000 +0200 ++++ firebird/builds/posix/prefix.darwin_i386 2016-08-01 23:02:46.000000000 +0200 +@@ -26,14 +26,14 @@ # 4. for CFLAGS, CXXFLAGS, LDFLAGS export '-m32 -arch i386' - # 5. export MACOSX_DEPLOYMENT_TARGET=10.7 + # 5. export MACOSX_DEPLOYMENT_TARGET=10.7 -DYLD_LIBRARY_PATH=$(FIREBIRD)/lib +DYLD_LIBRARY_PATH:=$(FIREBIRD)/lib:$(DYLD_LIBRARY_PATH) export DYLD_LIBRARY_PATH MACOSX_DEPLOYMENT_TARGET=10.7 -@@ -34,8 +34,8 @@ - - OS_ServerFiles=inet_server.cpp - --PROD_FLAGS=-O1 -DDARWIN -pipe -p -MMD -fPIC -fno-common -arch i386 -mmacosx-version-min=10.7 --DEV_FLAGS=-ggdb -DDARWIN -pipe -p -MMD -fPIC -fno-common -Wall -arch i386 -mmacosx-version-min=10.7 -+PROD_FLAGS=-O1 -DDARWIN -pipe -p -MMD -fPIC -fno-common -arch i386 -+DEV_FLAGS=-ggdb -DDARWIN -pipe -p -MMD -fPIC -fno-common -Wall -arch i386 - CXXFLAGS:=$(CXXFLAGS) -fvisibility-inlines-hidden -fvisibility=hidden - EMBED_UTIL_TARGETS=gstat gsec fbguard nbackup fb_lock_print fbsvcmgr fbtracemgr - CLIENT_UTIL_TARGETS=gstat gsec fbguard fbmgr_bin nbackup fb_lock_print fbsvcmgr fbtracemgr ---- firebird.org/builds/posix/prefix.darwin_x86_64 -+++ firebird/builds/posix/prefix.darwin_x86_64 -@@ -19,7 +19,7 @@ - # - # Default build from 10.7 using Clang + export MACOSX_DEPLOYMENT_TARGET --DYLD_LIBRARY_PATH=$(FIREBIRD)/lib -+DYLD_LIBRARY_PATH:=$(FIREBIRD)/lib:$(DYLD_LIBRARY_PATH) - export DYLD_LIBRARY_PATH +-PROD_FLAGS=-O1 -DDARWIN -pipe -MMD -fPIC -fno-common -arch i386 -mmacosx-version-min=10.7 +-DEV_FLAGS=-ggdb -DDARWIN -pipe -MMD -fPIC -fno-common -Wall -arch i386 -mmacosx-version-min=10.7 -Wno-non-virtual-dtor ++PROD_FLAGS=-O1 -DDARWIN -pipe -MMD -fPIC -fno-common -arch i386 ++DEV_FLAGS=-ggdb -DDARWIN -pipe -MMD -fPIC -fno-common -Wall -arch i386 -Wno-non-virtual-dtor + CXXFLAGS:=$(CXXFLAGS) -fvisibility-inlines-hidden -fvisibility=hidden -fno-weak - MACOSX_DEPLOYMENT_TARGET=10.7 -@@ -27,8 +27,8 @@ + EXE_LINK_OPTIONS:=-m32 +--- firebird.org/builds/posix/Makefile.in 2016-08-08 17:58:20.000000000 +0200 ++++ firebird/builds/posix/Makefile.in 2016-08-08 17:57:17.000000000 +0200 +@@ -191,6 +191,9 @@ + $(MAKE) plugins + $(MAKE) examples + $(MAKE) rest ++ install_name_tool -id @__________________________________________________OOO/libfbclient.dylib.3.0.0 $(LIB)/libfbclient.dylib ++ install_name_tool -id @__________________________________________________OOO/libEngine12.dylib $(PLUGINS)/libEngine12.dylib ++ install_name_tool -change $(LIB)/libfbclient.dylib.3.0.0 @loader_path/libfbclient.dylib.3.0.0 $(PLUGINS)/libEngine12.dylib - OS_ServerFiles=inet_server.cpp --PROD_FLAGS=-O1 -DDARWIN -pipe -MMD -fPIC -fno-common -mmacosx-version-min=10.7 --DEV_FLAGS=-ggdb -DDARWIN -pipe -MMD -fPIC -fno-common -Wall -mmacosx-version-min=10.7 -+PROD_FLAGS=-O1 -DDARWIN -pipe -MMD -fPIC -fno-common -+DEV_FLAGS=-ggdb -DDARWIN -pipe -MMD -fPIC -fno-common -Wall - CXXFLAGS:=$(CXXFLAGS) -fvisibility-inlines-hidden -fvisibility=hidden - EMBED_UTIL_TARGETS=gstat gsec fbguard nbackup fb_lock_print fbsvcmgr fbtracemgr - CLIENT_UTIL_TARGETS=gstat gsec fbguard fbmgr_bin nbackup fb_lock_print fbsvcmgr fbtracemgr - + cross_process: +--- firebird.org/src/common/unicode_util.cpp 2016-07-07 13:55:55.992234709 +0200 ++++ firebird/src/common/unicode_util.cpp 2016-08-10 11:25:46.422331020 +0200 +@@ -63,8 +63,8 @@ + #elif defined(DARWIN) + //const char* const inTemplate = "/Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib"; + //const char* const ucTemplate = "/Library/Frameworks/Firebird.framework/versions/A/Libraries/libicuuc.dylib"; +-const char* const inTemplate = "libicui18n.dylib"; +-const char* const ucTemplate = "libicuuc.dylib"; ++const char* const inTemplate = "libicui18n.dylib.%s"; ++const char* const ucTemplate = "libicuuc.dylib.%s"; + #elif defined(HPUX) + const char* const inTemplate = "libicui18n.sl.%s"; + const char* const ucTemplate = "libicuuc.sl.%s"; +@@ -353,6 +353,12 @@ + s.printf("%d%d", majorVersion, minorVersion); + + filename.printf(templateName, s.c_str()); ++ const char * const envpath = getenv("LIBREOFFICE_FIREBIRD_LIB"); ++ if(envpath != nullptr) ++ { ++ s = filename.c_str(); ++ PathUtils::concatPath(filename, envpath, s.c_str()); ++ } + } + + +--- firebird.org/src/common/utils.cpp 2016-08-16 10:11:10.000000000 +0200 ++++ firebird/src/common/utils.cpp 2016-08-16 11:27:09.000000000 +0200 +@@ -1027,10 +1027,18 @@ + return s; + } + +- // Set relative path to Engine12 dynamic library ++ // Set path to Engine12 dynamic library. + if(prefType == Firebird::IConfigManager::DIR_PLUGINS) + { +- s = name; ++ const char * const envpath = getenv("LIBREOFFICE_FIREBIRD_LIB"); ++ if(envpath != nullptr) ++ { ++ PathUtils::concatPath(s, envpath, name); ++ } ++ else ++ { ++ s = name; ++ } + return s; + } + } diff --git a/external/firebird/firebird-rpath.patch.0 b/external/firebird/firebird-rpath.patch.0 index a92f0064b20f..a730e72a84b1 100644 --- a/external/firebird/firebird-rpath.patch.0 +++ b/external/firebird/firebird-rpath.patch.0 @@ -1,11 +1,11 @@ --- builds/posix/make.defaults +++ builds/posix/make.defaults -@@ -255,7 +255,7 @@ +@@ -279,7 +279,7 @@ - LIB_PLATFORM_RPATH = -Wl,-rpath,$(1) - ifeq ($(strip @BINRELOC_CFLAGS@),) --LIB_LINK_RPATH = $(call LIB_PLATFORM_RPATH,$(if $(subst intl,,$(1)),@FB_LIBDIR@,@FB_INTLDIR@)) -+LIB_LINK_RPATH = $(call LIB_PLATFORM_RPATH,'$$ORIGIN') - else - LIB_LINK_RPATH = $(call LIB_PLATFORM_RPATH,'$$$$ORIGIN/../$(1)') - endif + ifeq (@USE_RPATH@,1) + ifeq ($(strip @BINRELOC_CFLAGS@),) +- LIB_LINK_RPATH = $(call LIB_PLATFORM_RPATH,$(if $(subst intl,,$(1)),@FB_LIBDIR@,@FB_INTLDIR@)) ++ LIB_LINK_RPATH = $(call LIB_PLATFORM_RPATH,'$$ORIGIN') + else + LIB_LINK_RPATH = $(call LIB_PLATFORM_RPATH,'$$ORIGIN/../$(1)') + endif diff --git a/external/firebird/firebird.disable-ib-util-not-found.patch.1 b/external/firebird/firebird.disable-ib-util-not-found.patch.1 index c0c4bb6587b6..86dedd0dd2ec 100644 --- a/external/firebird/firebird.disable-ib-util-not-found.patch.1 +++ b/external/firebird/firebird.disable-ib-util-not-found.patch.1 @@ -1,19 +1,17 @@ --- firebird.org/src/jrd/fun.epp 2015-01-23 22:11:26.751475044 +0100 +++ firebird/src/jrd/fun.epp 2015-01-23 22:16:42.507322568 +0100 -@@ -160,10 +160,14 @@ +@@ -164,10 +164,14 @@ if (tryLibrary(LIBNAME, message[3])) return; + /* fdo#72543: quote from https://bugs.freedesktop.org/show_bug.cgi?id=72543#c8 + "we don't need UDF support for embedded firebird, -+ hence the lack of ib_util isn't an issue and can safely be ignored" ++ hence the lack of ib_util isn't an issue and can safely be ignored" // all failed - log error gds__log("ib_util init failed, UDFs can't be used - looks like firebird misconfigured\n" "\t%s\n\t%s\n\t%s\n\t%s", message[0].c_str(), message[1].c_str(), message[2].c_str(), message[3].c_str()); + */ - #endif // !BOOT_BUILD } -Seulement dans firebird/src/misc: codes.cpp -Seulement dans firebird: temp + void* IbUtil::alloc(long size) |