summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config_host.mk.in3
-rw-r--r--configure.ac9
-rw-r--r--external/firebird/ExternalProject_firebird.mk72
-rw-r--r--external/firebird/UnpackedTarball_firebird.mk1
-rw-r--r--external/firebird/firebird-btyacc-add-explicit-rule.patch12
-rw-r--r--external/firebird/firebird-cygwin-msvc.patch26
-rw-r--r--external/firebird/firebird-macosx.patch.148
-rw-r--r--solenv/gcc-wrappers/wrapper.cxx15
8 files changed, 81 insertions, 105 deletions
diff --git a/config_host.mk.in b/config_host.mk.in
index b4310f77597d..432421f8623b 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -387,6 +387,8 @@ export LIBPNG_CFLAGS=$(gb_SPACE)@LIBPNG_CFLAGS@
export LIBPNG_LIBS=$(gb_SPACE)@LIBPNG_LIBS@
export LIBREPOSITORY_JAR=@LIBREPOSITORY_JAR@
export LIBSERIALIZER_JAR=@LIBSERIALIZER_JAR@
+export LIBTOMMATH_CFLAGS=@LIBTOMMATH_CFLAGS@
+export LIBTOMMATH_LIBS=@LIBTOMMATH_LIBS@
export LIBTOOL=@LIBTOOL@
export LIBXML_CFLAGS=$(gb_SPACE)@LIBXML_CFLAGS@
export LIBXML_JAR=@LIBXML_JAR@
@@ -578,6 +580,7 @@ export SYSTEM_LIBNUMBERTEXT=@SYSTEM_LIBNUMBERTEXT@
export SYSTEM_LIBNUMBERTEXT_DATA=@SYSTEM_LIBNUMBERTEXT_DATA@
export SYSTEM_LIBORCUS=@SYSTEM_LIBORCUS@
export SYSTEM_LIBPNG=@SYSTEM_LIBPNG@
+export SYSTEM_LIBTOMMATH=@SYSTEM_LIBTOMMATH@
export SYSTEM_LIBXML=@SYSTEM_LIBXML@
export SYSTEM_LIBXML_FOR_BUILD=@SYSTEM_LIBXML_FOR_BUILD@
export SYSTEM_LIBXSLT=@SYSTEM_LIBXSLT@
diff --git a/configure.ac b/configure.ac
index e5d573f63d4d..deb43f1b04be 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9481,7 +9481,7 @@ int fb_api_is_30(void) { return 0; }
dnl ===================================================================
dnl Check for system libatomic_ops
dnl ===================================================================
- libo_CHECK_SYSTEM_MODULE([libatomic_ops],[ATOMIC_OPS],[atomic_ops >= 0.7.2])
+ libo_CHECK_SYSTEM_MODULE([libatomic_ops],[LIBATOMIC_OPS],[atomic_ops >= 0.7.2])
if test "$with_system_libatomic_ops" = "yes"; then
SYSTEM_LIBATOMIC_OPS=TRUE
AC_CHECK_HEADERS(atomic_ops.h, [],
@@ -9504,7 +9504,7 @@ int fb_api_is_30(void) { return 0; }
dnl check for tommath presence
save_LIBS=$LIBS
AC_CHECK_HEADER(tommath.h,,AC_MSG_ERROR(Include file for tommath not found - please install development tommath package))
- AC_CHECK_LIB(tommath, mp_init, TOMMATH_LIBS=-ltommath, AC_MSG_ERROR(Library tommath not found - please install development tommath package))
+ AC_CHECK_LIB(tommath, mp_init, LIBTOMMATH_LIBS=-ltommath, AC_MSG_ERROR(Library tommath not found - please install development tommath package))
LIBS=$save_LIBS
else
SYSTEM_LIBTOMMATH=
@@ -9525,8 +9525,9 @@ AC_SUBST(LIBATOMIC_OPS_LIBS)
AC_SUBST(SYSTEM_FIREBIRD)
AC_SUBST(FIREBIRD_CFLAGS)
AC_SUBST(FIREBIRD_LIBS)
-AC_SUBST([TOMMATH_CFLAGS])
-AC_SUBST([TOMMATH_LIBS])
+AC_SUBST(SYSTEM_LIBTOMMATH)
+AC_SUBST(LIBTOMMATH_CFLAGS)
+AC_SUBST(LIBTOMMATH_LIBS)
dnl ===================================================================
dnl Check for system curl
diff --git a/external/firebird/ExternalProject_firebird.mk b/external/firebird/ExternalProject_firebird.mk
index ce99e909aee1..8f8a8230227f 100644
--- a/external/firebird/ExternalProject_firebird.mk
+++ b/external/firebird/ExternalProject_firebird.mk
@@ -22,34 +22,20 @@ $(eval $(call gb_ExternalProject_register_targets,firebird,\
build \
))
-ifneq ($(OS),WNT)
-INVOKE_FPA:="CPU=\$$(EMPTY) $${FB_CPU_ARG}"
-endif
-
-ifeq ($(COM_IS_CLANG),TRUE)
-firebird_NO_CXX11_NARROWING := -Wno-c++11-narrowing
-endif
-
-MAKE_PRE=LC_ALL=C
-
-MAKE_POST=$(if $(filter MACOSX,$(OS)),&& $(PERL) \
- $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl OOO \
- $(EXTERNAL_WORKDIR)/gen/$(if $(ENABLE_DEBUG),Debug,Release)/firebird/plugins/libEngine12.dylib \
- $(EXTERNAL_WORKDIR)/gen/$(if $(ENABLE_DEBUG),Debug,Release)/firebird/lib/libfbclient.dylib.3.0.0)
+firebird_BUILDDIR = $(EXTERNAL_WORKDIR)/gen/$(if $(ENABLE_DEBUG),Debug,Release)/firebird
+firebird_VERSION := 3.0.0
$(call gb_ExternalProject_get_state_target,firebird,build):
$(call gb_Trace_StartRange,firebird,EXTERNAL)
$(call gb_ExternalProject_run,build,\
- unset MAKEFLAGS \
- && FB_CPU_ARG='$(filter --jobserver-fds=%,$(MAKEFLAGS))' \
- && export PKG_CONFIG="" \
+ export PKG_CONFIG="" \
&& export CPPFLAGS=" \
+ $(BOOST_CPPFLAGS) \
$(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 $(SYSTEM_ICU),$(ICU_CPPFLAGS), \
-I$(call gb_UnpackedTarball_get_dir,icu)/source \
@@ -59,30 +45,26 @@ $(call gb_ExternalProject_get_state_target,firebird,build):
$(if $(filter GCC-INTEL,$(COM)-$(CPUNAME)),-Di386=1) \
" \
&& export CXXFLAGS=" \
+ $(BOOST_CXXFLAGS) \
$(if $(filter MSC,$(COM)),$(if $(MSVC_USE_DEBUG_RUNTIME),-DMSVC_USE_DEBUG_RUNTIME)) \
$(if $(HAVE_GCC_FNO_SIZED_DEALLOCATION),-fno-sized-deallocation -fno-delete-null-pointer-checks) \
- $(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 \
- ) \
- $(if $(SYSTEM_LIBTOMMATH),$(LIBTOMMATH_CFLAGS), \
- -L$(call gb_UnpackedTarball_get_dir,libtommath) \
- ) \
$(CXXFLAGS_CXX11) \
- $(firebird_NO_CXX11_NARROWING) \
+ $(if $(filter TRUE,$(COM_IS_CLANG)), -Wno-c++11-narrowing) \
$(if $(call gb_Module__symbols_enabled,firebird),$(gb_DEBUGINFO_FLAGS)) \
" \
&& export LDFLAGS=" \
+ $(if $(SYSTEM_LIBATOMIC_OPS),$(LIBATOMIC_OPS_LIBS), \
+ -L$(call gb_UnpackedTarball_get_dir,libatomic_ops)/src \
+ ) \
+ $(if $(SYSTEM_LIBTOMMATH),$(LIBTOMMATH_LIBS), \
+ -L$(call gb_UnpackedTarball_get_dir,libtommath) \
+ ) \
$(if $(SYSTEM_ICU),$(ICU_LIBS), \
-L$(call gb_UnpackedTarball_get_dir,icu)/source/lib \
) \
" \
&& export LIBREOFFICE_ICU_LIB="$(call gb_UnpackedTarball_get_dir,icu)/source/lib" \
+ && export MSVC_USE_INDIVIDUAL_PDBS=TRUE \
&& MAKE=$(MAKE) ./configure \
--without-editline \
--with-wire-compress=no \
@@ -97,19 +79,21 @@ $(call gb_ExternalProject_get_state_target,firebird,build):
$(shell expr '$(MAC_OS_X_VERSION_MIN_REQUIRED)' \
'<' 101200)), \
ac_cv_func_clock_gettime=no)) \
- && if [ -n "$${FB_CPU_ARG}" ]; then \
- $(MAKE_PRE) $(MAKE) \
- $(if $(filter LINUX,$(OS)),CXXFLAGS="$$CXXFLAGS -std=gnu++11") \
- $(if $(ENABLE_DEBUG),Debug) $(INVOKE_FPA) SHELL='$(SHELL)' \
- LIBO_TUNNEL_LIBRARY_PATH='$(subst ','\'',$(subst $$,$$$$,$(call gb_Helper_extend_ld_path,$(call gb_UnpackedTarball_get_dir,icu)/source/lib)))' \
- $(MAKE_POST); \
- else \
- $(MAKE_PRE) $(MAKE) \
- $(if $(filter LINUX,$(OS)),CXXFLAGS="$$CXXFLAGS -std=gnu++11") \
- $(if $(ENABLE_DEBUG),Debug) SHELL='$(SHELL)' \
- LIBO_TUNNEL_LIBRARY_PATH='$(subst ','\'',$(subst $$,$$$$,$(call gb_Helper_extend_ld_path,$(call gb_UnpackedTarball_get_dir,icu)/source/lib)))' \
- $(MAKE_POST); \
- fi \
+ && LC_ALL=C $(MAKE) \
+ $(if $(ENABLE_DEBUG),Debug) SHELL='$(SHELL)' $(if $(filter LINUX,$(OS)),CXXFLAGS="$$CXXFLAGS -std=gnu++11") \
+ MATHLIB="$(if $(SYSTEM_LIBTOMMATH),$(LIBTOMMATH_LIBS),-L$(call gb_UnpackedTarball_get_dir,libtommath) -ltommath)" \
+ LIBO_TUNNEL_LIBRARY_PATH='$(subst ','\'',$(subst $$,$$$$,$(call gb_Helper_extend_ld_path,$(call gb_UnpackedTarball_get_dir,icu)/source/lib)))' \
+ $(if $(filter MACOSX,$(OS)), \
+ && install_name_tool -id @__________________________________________________OOO/libfbclient.dylib.$(firebird_VERSION) \
+ $(firebird_BUILDDIR)/lib/libfbclient.dylib.$(firebird_VERSION) \
+ && install_name_tool -id @__________________________________________________OOO/libEngine12.dylib \
+ $(firebird_BUILDDIR)/plugins/libEngine12.dylib \
+ && install_name_tool -change $(firebird_BUILDDIR)/lib/libfbclient.dylib.$(firebird_VERSION) \
+ @loader_path/libfbclient.dylib.$(firebird_VERSION) $(firebird_BUILDDIR)/plugins/libEngine12.dylib \
+ && $(PERL) $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl OOO \
+ $(firebird_BUILDDIR)/lib/libfbclient.dylib.$(firebird_VERSION) \
+ $(firebird_BUILDDIR)/plugins/libEngine12.dylib \
+ ) \
)
$(call gb_Trace_EndRange,firebird,EXTERNAL)
diff --git a/external/firebird/UnpackedTarball_firebird.mk b/external/firebird/UnpackedTarball_firebird.mk
index c3860673b879..25b1640755a1 100644
--- a/external/firebird/UnpackedTarball_firebird.mk
+++ b/external/firebird/UnpackedTarball_firebird.mk
@@ -38,6 +38,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,firebird,\
external/firebird/0001-Make-comparison-operator-member-functions-const.patch.1 \
external/firebird/0001-Fix-warning-on-Win64-build-231.patch.1 \
external/firebird/macos-arm64.patch.0 \
+ external/firebird/firebird-btyacc-add-explicit-rule.patch \
))
ifeq ($(OS),WNT)
diff --git a/external/firebird/firebird-btyacc-add-explicit-rule.patch b/external/firebird/firebird-btyacc-add-explicit-rule.patch
new file mode 100644
index 000000000000..c4d88d911a40
--- /dev/null
+++ b/external/firebird/firebird-btyacc-add-explicit-rule.patch
@@ -0,0 +1,12 @@
+--- extern/btyacc/Makefile.orig 2020-11-13 18:57:44.831455058 +0100
++++ extern/btyacc/Makefile 2020-11-13 18:59:19.071078333 +0100
+@@ -44,6 +44,9 @@
+ $(PROGRAM): $(OBJS) $(LIBS)
+ $(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS)
+
++%.o: %.c
++ $(CC) $(CCFLAGS) -c $< -o $@
++
+ clean:; rm -f $(OBJS)
+
+ clobber:; rm -f $(OBJS) $(PROGRAM)
diff --git a/external/firebird/firebird-cygwin-msvc.patch b/external/firebird/firebird-cygwin-msvc.patch
index 317ea8026b5d..47fd322e514e 100644
--- a/external/firebird/firebird-cygwin-msvc.patch
+++ b/external/firebird/firebird-cygwin-msvc.patch
@@ -492,18 +492,15 @@ diff -ur extern/btyacc/main.c extern/btyacc/main.c
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 @@
+@@ -42,7 +42,7 @@
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)
-
++ $(CC) $(LDFLAGS) -o $(PROGRAM).exe $(OBJS) $(LIBS)
+
+ %.o: %.c
+ $(CC) $(CCFLAGS) -c $< -o $@
--- 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 @@
@@ -555,6 +552,17 @@ diff -ur extern/btyacc/Makefile extern/btyacc/Makefile
$(BIN_DIR)/test1-c$(SHRLIB_EXT) \
$(BIN_DIR)/test1-c$(EXE_EXT) \
$(BIN_DIR)/test1-cpp$(SHRLIB_EXT) \
+@@ -63,6 +63,10 @@
+
+ mkdirs: $(OBJ_DIRS) $(BIN_DIR) $(LIB_DIR)
+
++# These files have the same basename, so various conflicting intermediate files break the build
++$(BIN_DIR)/test1-c$(EXE_EXT): | $(BIN_DIR)/test1-c$(SHRLIB_EXT)
++$(BIN_DIR)/test1-cpp$(EXE_EXT): | $(BIN_DIR)/test1-cpp$(SHRLIB_EXT)
++
+ $(OBJ_DIRS) $(BIN_DIR) $(LIB_DIR):
+ @mkdir -p $@
+
@@ -74,7 +74,7 @@
-include $(addsuffix .d,$(basename $(OBJS_C)))
-include $(addsuffix .d,$(basename $(OBJS_CPP)))
diff --git a/external/firebird/firebird-macosx.patch.1 b/external/firebird/firebird-macosx.patch.1
index 35e631dece68..fdd544873be7 100644
--- a/external/firebird/firebird-macosx.patch.1
+++ b/external/firebird/firebird-macosx.patch.1
@@ -20,7 +20,7 @@
#DYLD_PRINT_ENV=1
#export DYLD_PRINT_ENV
-@@ -31,15 +31,15 @@
+@@ -31,8 +31,8 @@
MACOSX_DEPLOYMENT_TARGET=10.7
export MACOSX_DEPLOYMENT_TARGET
@@ -31,52 +31,6 @@
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
- cp ../gen/firebird/lib/libfbclient.dylib $(FB_FW)/Versions/A/Libraries/libfbclient.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
-@@ -68,8 +68,8 @@
- $(FB_FW)/Resources/English.lproj/var/intl/fbintl.conf
- chmod a+rx $(FB_FW)/Resources/English.lproj/var/intl/fbintl
- mkdir -p $(FB_FW)/Resources/English.lproj/var/plugins
-- cp ../gen/firebird/plugins/libfbtrace.dylib \
-- $(FB_FW)/Resources/English.lproj/var/plugins/libfbtrace.dylib
-+# cp ../gen/firebird/plugins/libfbtrace.dylib \
-+# $(FB_FW)/Resources/English.lproj/var/plugins/libfbtrace.dylib
- 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/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.3.0.0
-+ 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
-
-
- 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 @@
diff --git a/solenv/gcc-wrappers/wrapper.cxx b/solenv/gcc-wrappers/wrapper.cxx
index b156c89dc220..733eed65d606 100644
--- a/solenv/gcc-wrappers/wrapper.cxx
+++ b/solenv/gcc-wrappers/wrapper.cxx
@@ -100,6 +100,10 @@ string processccargs(vector<string> rawargs) {
// note: always use -debug so a PDB file is created
string linkargs(" -link -debug");
+ // instead of using synced PDB access (-FS), use inidividual PDB files based on output
+ const char *const pEnvIndividualPDBs(getenv("MSVC_USE_INDIVIDUAL_PDBS"));
+ const bool bIndividualPDBs = (pEnvIndividualPDBs && !strcmp(pEnvIndividualPDBs, "TRUE"));
+
for(vector<string>::iterator i = rawargs.begin(); i != rawargs.end(); ++i) {
args.append(" ");
if(*i == "-o") {
@@ -127,10 +131,19 @@ string processccargs(vector<string> rawargs) {
<< (*i) << "\"";
exit(1);
}
+
+ if (bIndividualPDBs)
+ {
+ if (dot == string::npos)
+ args.append(" -Fd" + *i + ".pdb");
+ else
+ args.append(" -Fd" + (*i).substr(0, dot) + ".pdb");
+ }
}
else if(*i == "-g" || !(*i).compare(0,5,"-ggdb")) {
args.append("-Zi");
- args.append(" -FS");
+ if (!bIndividualPDBs)
+ args.append(" -FS");
}
else if(!(*i).compare(0,2,"-D")) {
// need to re-escape strings for preprocessor