summaryrefslogtreecommitdiffstats
path: root/external/firebird
Commit message (Collapse)AuthorAgeFilesLines
* external/firebird: Make comparison operator member functions constStephan Bergmann2019-10-212-0/+53
| | | | | | | | | | | see commit message of external/firebird/0001-Make-comparison-operator-member-functions-const.patch.1 for details Change-Id: I559e4b6ef2dbf3800ff5013dcde078d69296d2fb Reviewed-on: https://gerrit.libreoffice.org/81261 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Resolves: tdf#125284 config entries not substituted under Turkish localeCaolán McNamara2019-08-232-0/+28
| | | | | | | | | | cause i is not the lowercase of I Change-Id: I616d642df54ce19e68d484c43250a79ecae344ee Reviewed-on: https://gerrit.libreoffice.org/78025 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
* Fix remaining uses of gb_SYMBOLStephan Bergmann2019-05-051-1/+1
| | | | | | | | | | ...after eeeec33ada5923f1f534334b22c15d6e2c6f1d35 "merge --enable-selective-debuginfo into --enable-symbols" had removed it Change-Id: I83aed6e21c4b983d8645707daa65bd85ec16ff6b Reviewed-on: https://gerrit.libreoffice.org/71798 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
* firebird: fix CXXFLAGSMichael Stahl2019-02-031-2/+10
| | | | | | | | | | | | | | | | | | | | | In 3.0.4, the horrible makefiles override the CXXFLAGS variable: firebird/builds/posix/prefix.linux_generic:CXXFLAGS=-std=gnu++03 Work around that by passing LO's customised CXXFLAGS as a command-line parameter to make, which in turn overrides the definition in the makefile. Other platforms, in particular Darwin, apparently extend CXXFLAGS instead of overwriting. To nobody's surprise, gnu++03 doesn't even build with clang because ICU headers use C++11 features (although strangely gcc doesn't complain). Change-Id: If3b26482a4f4bf284057e261677cd7182656154f Reviewed-on: https://gerrit.libreoffice.org/67255 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
* Ensure configuration that defines math_errhandling in <cmath>Stephan Bergmann2019-01-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | ...as demanded by the C++17 standard, and required in sc/source/core/tool/math.cxx. At least when building an --arch=i386 Flatpak (where CFLAGS/CXXFLAGS are passed in containing, among others, -O2), that failed when using -std=gnu++2a (instead of -std=c++2a) due to what looks like an error in glibc (cf. <https://flathub.org/builds/#/builders/22/builds/797>). ...and fix fallout in external/firebird for Linux x86 32-bit build: While GCC defines both __i386 and __i386__ (both as 1) regardless of -std=gnu++* vs. -std=c++*, it defines i386 (as 1) only for -std=gnu++*. But various places in the external/firebird sources check for i386 (among them src/common/common.h, which fails with #error Define FB_CPU for your platform if i386 is not defined). Change-Id: I7dce1961c79aeaccc82b1e2bdc350e02730d46af Reviewed-on: https://gerrit.libreoffice.org/67105 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Allow all _MSC_VER up to (excluding) 2000 (Firebird)Mike Kaganski2018-08-151-3/+2
| | | | | | | | | (see https://blogs.msdn.microsoft.com/vcblog/2016/10/05/visual-c-compiler-version/) Change-Id: I69133a3742f72c20daa0ad94e093e4fffbd5d8c2 Reviewed-on: https://gerrit.libreoffice.org/59097 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
* firebird: adapt asan.patch to GCC, which lacks __has_featureMichael Stahl2018-06-032-3/+20
| | | | | | | | | | | | | Also apply sanitizer.patch, because why not. Also tweak configure to check for dlsym() instead of dlopen(); the situation described in commit 037584cfe5e58bf6807fb0188d245042baa8c1c0 still holds on Fedora 27. Change-Id: I446fa3e991aec06452f135ab8365702a397c441a Reviewed-on: https://gerrit.libreoffice.org/55247 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
* We don't build for i386 on macOS anywayTor Lillqvist2018-04-171-20/+0
| | | | | | | | | No no need to patch the Firebird build settings for i386. Change-Id: Ic187ff462325511a9a498e312f54350be7542366 Reviewed-on: https://gerrit.libreoffice.org/53054 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tor Lillqvist <tml@collabora.com>
* external/firebird: Better workaround for Clang alignment expectationsStephan Bergmann2018-04-172-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8ea07101c1613d213fd7cea17f094a947b14cd00 "external/firebird: Work around operator new alignment violations" had misused DEBUG_GDS_ALLOC to work around the problem that recent Clang on Linux x86-64 assumes some storage allocated via Firebird's global operator new replacement to be 16-byte aligned, while Firebird only provides 8-byte alignment. This problem now also appears on macOS x86-64, at least with Apple's Clang version "Apple LLVM version 9.1.0 (clang-902.0.39.1)" from Xcode 9.3 (as well as with recent plain Clang trunk, towards Clang 7), when building --enable- optimized. However, while the DEBUG_GDS_ALLOC hack would still cause ICU_convert_init (workdir/UnpackedTarball/firebird/temp/Release/intl/cv_icu.o) to not use movaps on erroneously assumed to be 16-byte aligned memory, it would cause strange failures on macOS (pos being out of bounds in traRpbList::PopRpb, workdir/UnpackedTarball/firebird/src/jrd/rpb_chain.cpp, in the invocation of isql during the build of external/firebird) that I haven't tracked down further. As it happens, the recently added 14955ed91b282ccbb395cb47c6d76e3b42b34748 "external/firebird: Support Clang ASan" provides a different workaround for the underlying problem that appears to work well on both Linux and macOS x86-64, reusing USE_ASAN also in these cases to shut down most of Firebird's own memory management. I assume that affected Clang are plain Clang >= 4 (as I'd mentioned in my <https://sourceforge.net/p/firebird/mailman/message/35671804/> "Re: [Firebird- devel] alloc.h global operator new replacement violating alignment requirements") and Apple Clang >= 9 (for which __apple_build_version__ is defined). Because DEBUG_GDS_ALLOC is no longer passed in from the outside, its setting in external/firebird/asan.patch can be simplified (cf. commit message of 14955ed91b282ccbb395cb47c6d76e3b42b34748). (The given scenario in ICU_convert_init involves an allocation of 24 bytes, where Clang may or may not be allowed to assume 16-byte alignment, see <http://lists.llvm.org/pipermail/cfe-dev/2018-April/057669.html> "Re: [cfe-dev] operator new alignment assumptions". However, as reported at <https://sourceforge.net/p/firebird/mailman/message/35671750/> "Re: [Firebird- devel] alloc.h global operator new replacement violating alignment requirements", Firebird only supports 8-byte alignment, which would definitely be wrong in a similar scenario where the requested allocation was a multiple of 16 bytes.) Change-Id: I48884f9d008eaeaea369850e24f05b8806f9b676 Reviewed-on: https://gerrit.libreoffice.org/52956 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Pass gb_SYMBOL into external/firebirdStephan Bergmann2018-04-161-0/+1
| | | | | | | Change-Id: I91e68dfe770aaa906abac107c3e56bc5e4782512 Reviewed-on: https://gerrit.libreoffice.org/52937 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* external/firebird: Even more LIBO_TUNNEL_LIBRARY_PATHStephan Bergmann2018-04-131-2/+4
| | | | | | ...as needed by some builders, apparently. Change-Id: I94f3059121d21d55fc7f87d5554bf192f6858e06
* external/firebird: Even more LIBO_TUNNEL_LIBRARY_PATHStephan Bergmann2018-04-131-0/+9
| | | | | | ...as needed by some builders, apparently. Change-Id: I0b7c063ef2c712a6b32aa107ab733a3723b38f99
* external/firebird: More LIBO_TUNNEL_LIBRARY_PATHStephan Bergmann2018-04-121-0/+20
| | | | | | | | | | | | | ...after 14955ed91b282ccbb395cb47c6d76e3b42b34748 "external/firebird: Support Clang ASan", which was oddly enough only necessary on one machine, <https://ci.libreoffice.org/job/lo_tb_master_linux/26757/console>, but not on others. Maybe the best fix overall would be to just not build examples at all, as is already done in external/firebird/firebird-cygwin-msvc.patch. Change-Id: I7dd37c93ea5a55cb26a167e52d22a6f50c05494e Reviewed-on: https://gerrit.libreoffice.org/52779 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* external/firebird: Support Clang ASanStephan Bergmann2018-04-124-5/+212
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First of all, LD_LIBRARY_PATH must not affect the make executable called for the firebird build. That would cause problems when that make executable depends on system versions of dynamic libraries that also happen to be available as LO- built versions on LD_LIBRARY_PATH: > make: symbol lookup error: /data/sbergman/lo-san/core/instdir/program/libfreebl3.so: undefined symbol: __asan_option_detect_stack_use_after_return > make: *** [/data/sbergman/lo-san/core/external/firebird/ExternalProject_firebird.mk:41: /data/sbergman/lo-san/core/workdir/ExternalProject/firebird/build] Error 127 For that, gb_Helper_extend_ld_path is now tunneled to the relevant places in the firebird build, where executables are called that use firebird's UnicodeUtil::getConversionICU (workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp) to dynamically load icu libraries. (Similar to 3a2818280ad65c3d0aa9e720f62fec571713b2e7 "external/liblangtag: Tunnel LD_LIBRARY_PATH to where it's actually needed".) Then, what appears to work is to disable firebird's global operators new/delete (so that ASan's versions kick in). MemPool::{alloc,release}Raw would still be called at start-up through Firebird::GlobalPtr<Firebird::Mutex, (Firebird::InstanceControl::DtorPriority)3> ::GlobalPtr() calling Firebird::GlobalStorage::operator new(unsigned long), but there is already provision to avoid those functions' heavy machinery for the USE_VALGRIND case. DEBUG_GDS_ALLOC (which would enable other inopportune overloads of global operator new/delete) needs to be disabled in a somewhat contorted way, because 8ea07101c1613d213fd7cea17f094a947b14cd00 "external/firebird: Work around operator new alignment violations" might explicitly set it from the outside, which we need to undo for ASan builds. `make check screenshot` encountered one alloc-dealloc-mismatch (already during building firebird itself) that needs a patch to src/jrd/SimilarToMatcher.h. Change-Id: I6bb68604095908189259be14440f72d3b23cbd4e Reviewed-on: https://gerrit.libreoffice.org/52706 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* external/firebird: Avoid -fsanitize=nonnull-attributeStephan Bergmann2018-04-111-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...that hits at least during the build of firebird with also ASan enabled (support for which will be committed shortly): > [...]/workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql -q -i [...]/workdir/UnpackedTarball/firebird/src/dbs/metadata.sql > workdir/UnpackedTarball/firebird/src/jrd/btr.cpp:5394:19: runtime error: null pointer passed as argument 2, which is declared to never be null > /usr/include/string.h:43:28: note: nonnull attribute specified here > #0 in insert_node(Jrd::thread_db*, Jrd::win*, Jrd::index_insertion*, Jrd::temporary_key*, RecordNumber*, unsigned int*, unsigned int*) at workdir/UnpackedTarball/firebird/src/jrd/btr.cpp:5394:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1ae2914) > #1 in add_node(Jrd::thread_db*, Jrd::win*, Jrd::index_insertion*, Jrd::temporary_key*, RecordNumber*, unsigned int*, unsigned int*) at workdir/UnpackedTarball/firebird/src/jrd/btr.cpp:2279:24 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1ac5a92) > #2 in BTR_insert(Jrd::thread_db*, Jrd::win*, Jrd::index_insertion*) at workdir/UnpackedTarball/firebird/src/jrd/btr.cpp:1008:21 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1ac29b5) > #3 in insert_key(Jrd::thread_db*, Jrd::jrd_rel*, Jrd::Record*, Jrd::jrd_tra*, Jrd::win*, Jrd::index_insertion*, Jrd::IndexErrorContext&) at workdir/UnpackedTarball/firebird/src/jrd/idx.cpp:1475:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1c62e01) > #4 in IDX_store(Jrd::thread_db*, Jrd::record_param*, Jrd::jrd_tra*) at workdir/UnpackedTarball/firebird/src/jrd/idx.cpp:1018:22 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1c661a2) > #5 in Jrd::StoreNode::store(Jrd::thread_db*, Jrd::jrd_req*, Jrd::StmtNode::WhichTrigger) const at workdir/UnpackedTarball/firebird/src/dsql/StmtNodes.cpp:7005:5 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x21c0c96) > #6 in Jrd::StoreNode::execute(Jrd::thread_db*, Jrd::jrd_req*, Jrd::StmtNode::ExeState*) const at workdir/UnpackedTarball/firebird/src/dsql/StmtNodes.cpp:6942:13 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x21bf955) > #7 in EXE_looper(Jrd::thread_db*, Jrd::jrd_req*, Jrd::StmtNode const*) at workdir/UnpackedTarball/firebird/src/jrd/exe.cpp:1292:17 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x157f798) > #8 in looper_seh(Jrd::thread_db*, Jrd::jrd_req*, Jrd::StmtNode const*) at workdir/UnpackedTarball/firebird/src/jrd/exe.cpp:1426:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x15834fc) > #9 in execute_looper(Jrd::thread_db*, Jrd::jrd_req*, Jrd::jrd_tra*, Jrd::StmtNode const*, Jrd::jrd_req::req_s) at workdir/UnpackedTarball/firebird/src/jrd/exe.cpp:1023:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x15740c3) > #10 in EXE_send(Jrd::thread_db*, Jrd::jrd_req*, unsigned short, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/jrd/exe.cpp:833:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1579392) > #11 in add_index_set(Jrd::thread_db*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/ini.cpp:2251:3 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1efb0c2) > #12 in INI_format(char const*, char const*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/ini.cpp:1563:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1eef3bd) > #13 in Jrd::JProvider::createDatabase(Firebird::CheckStatusWrapper*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/jrd/jrd.cpp:2691:4 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1864267) > #14 in Firebird::IProviderBaseImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::IPluginBaseImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IReferenceCountedImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IVersionedImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IProvider> > > > > > >::cloopcreateDatabaseDispatcher(Firebird::IProvider*, Firebird::IStatus*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:9010:44 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x16eefb6) > #15 in Firebird::IAttachment* Firebird::IProvider::createDatabase<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:2034:23 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x49cc5d) > #16 in Why::Dispatcher::attachOrCreateDatabase(Firebird::CheckStatusWrapper*, bool, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/yvalve/why.cpp:5681:15 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x44d0ad) > #17 in Why::Dispatcher::createDatabase(Firebird::CheckStatusWrapper*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/yvalve/why.cpp:5606:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x44e4d4) > #18 in PREPARSE_execute(Firebird::CheckStatusWrapper*, Why::YAttachment**, unsigned short, char const*, bool*, unsigned short) at workdir/UnpackedTarball/firebird/src/yvalve/preparse.cpp:288:26 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x56e738) > #19 in Why::UtilInterface::executeCreateDatabase(Firebird::CheckStatusWrapper*, unsigned int, char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/yvalve/utl.cpp:587:8 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x5ee78f) > #20 in Firebird::IUtilBaseImpl<Why::UtilInterface, Firebird::CheckStatusWrapper, Firebird::IVersionedImpl<Why::UtilInterface, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IUtil> > >::cloopexecuteCreateDatabaseDispatcher(Firebird::IUtil*, Firebird::IStatus*, unsigned int, char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:12375:44 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x60ed0b) > #21 in Firebird::IAttachment* Firebird::IUtil::executeCreateDatabase<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper*, unsigned int, char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:3504:23 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x603d95) > #22 in create_db(char const*, char*) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:5314:38 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x5aee53) > #23 in frontend(char const*) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:6152:10 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x59b585) > #24 in get_statement(char*, unsigned long, char const*) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:7019:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x596084) > #25 in do_isql() at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:5481:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x57ba26) > #26 in ISQL_main(int, char**) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:1693:3 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x575ecc) > #27 in main at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:1599:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x575149) > #28 in __libc_start_main at /usr/src/debug/glibc-2.26-146-gd300041c53/csu/../csu/libc-start.c:308 (/lib64/libc.so.6 +0x20f29) > #29 in _start at <null> (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x423219) Change-Id: Iebff0484a792b711769f46c4823f806e9f9b2935 Reviewed-on: https://gerrit.libreoffice.org/52704 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* external/firebird: ICU_UCHAR_TYPE breaks -fsanitize=functionStephan Bergmann2018-04-091-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...while building external/firebird, and should not be necessary in a C++ project anyway (cf. 4c404950225e07ec7ee5275657a3192a5af79a04 "ICU_UCHAR_TYPE is not needed for C++11 projects"). I started to get this failure around the time I switched the machine from Fedora 27 to Fedora 28 beta, but not sure whether the issue is related to that, nor why it only started to happen now: > workdir/UnpackedTarball/firebird/src/intl/cs_icu.cpp:67:30: runtime error: call to function ucnv_fromUChars_60 through pointer to incorrect function type 'int (*)(UConverter *, char *, int, const unsigned short *, int, UErrorCode *)' > workdir/UnpackedTarball/icu/source/common/ucnv.cpp:1720: note: ucnv_fromUChars_60 defined here > #0 in CSICU_charset_init(charset*, char const*) at workdir/UnpackedTarball/firebird/src/intl/cs_icu.cpp:67:30 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/intl/libfbintl.so +0xb5a9c) > #1 in LD_lookup_charset at workdir/UnpackedTarball/firebird/src/intl/ld.cpp:484:10 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/intl/libfbintl.so +0xb34e4) > #2 in LCICU_setup_attributes(char const*, char const*, char const*, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator>&) at workdir/UnpackedTarball/firebird/src/intl/lc_icu.cpp:128:8 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/intl/libfbintl.so +0xaf3e2) > #3 in LD_setup_attributes at workdir/UnpackedTarball/firebird/src/intl/ld.cpp:568:7 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/intl/libfbintl.so +0xb47ff) > #4 in Jrd::IntlManager::setupCollationAttributes(Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator>&) at workdir/UnpackedTarball/firebird/src/jrd/IntlManager.cpp:689:16 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x16ecd8b) > #5 in setupSpecificCollationAttributes(Jrd::thread_db*, Jrd::jrd_tra*, unsigned short, char const*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/dfw.cpp:7483:7 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1918f67) > #6 in create_collation(Jrd::thread_db*, short, Jrd::DeferredWork*, Jrd::jrd_tra*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/dfw.cpp:7542:3 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1936e2e) > #7 in DFW_perform_work(Jrd::thread_db*, Jrd::jrd_tra*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/dfw.cpp:4513:11 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1912e49) > #8 in DFW_perform_system_work(Jrd::thread_db*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/dfw.cpp:4457:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x191259d) > #9 in INI_format(char const*, char const*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/ini.cpp:1808:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x18df473) > #10 in Jrd::JProvider::createDatabase(Firebird::CheckStatusWrapper*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/jrd/jrd.cpp:2691:4 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x172d05f) > #11 in Firebird::IProviderBaseImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::IPluginBaseImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IReferenceCountedImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IVersionedImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IProvider> > > > > > >::cloopcreateDatabaseDispatcher(Firebird::IProvider*, Firebird::IStatus*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:9010:44 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x10d511f) > #12 in Firebird::IAttachment* Firebird::IProvider::createDatabase<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:2034:23 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x3937f4) > #13 in Why::Dispatcher::attachOrCreateDatabase(Firebird::CheckStatusWrapper*, bool, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/yvalve/why.cpp:5681:15 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x35adb7) > #14 in Why::Dispatcher::createDatabase(Firebird::CheckStatusWrapper*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/yvalve/why.cpp:5606:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x35baa4) > #15 in PREPARSE_execute(Firebird::CheckStatusWrapper*, Why::YAttachment**, unsigned short, char const*, bool*, unsigned short) at workdir/UnpackedTarball/firebird/src/yvalve/preparse.cpp:288:26 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x427888) > #16 in Why::UtilInterface::executeCreateDatabase(Firebird::CheckStatusWrapper*, unsigned int, char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/yvalve/utl.cpp:587:8 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x481209) > #17 in Firebird::IUtilBaseImpl<Why::UtilInterface, Firebird::CheckStatusWrapper, Firebird::IVersionedImpl<Why::UtilInterface, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IUtil> > >::cloopexecuteCreateDatabaseDispatcher(Firebird::IUtil*, Firebird::IStatus*, unsigned int, char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:12375:44 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x495a09) > #18 in Firebird::IAttachment* Firebird::IUtil::executeCreateDatabase<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper*, unsigned int, char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:3504:23 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x4c41df) > #19 in create_db(char const*, char*) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:5314:38 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x48606b) > #20 in frontend(char const*) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:6152:10 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x477e4e) > #21 in get_statement(char*, unsigned long, char const*) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:7019:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x4740e6) > #22 in do_isql() at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:5481:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x461d48) > #23 in ISQL_main(int, char**) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:1693:3 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x45d8cf) > #24 in main at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:1599:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x45cf09) > #25 in __libc_start_main at <null> (/lib64/libc.so.6 +0x231ba) > #26 in _start at <null> (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x40bd89) Change-Id: I7b31e2e6dd745e50d02c68369c7a1e8072ae9534 Reviewed-on: https://gerrit.libreoffice.org/52622 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* external/firebird: Fix -fsanitize=functionStephan Bergmann2018-04-091-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...while building external/firebird. I started to get this failure around the time I switched the machine from Fedora 27 to Fedora 28 beta, but not sure whether the issue is related to that, nor why it only started to happen now: > workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:1206:2: runtime error: call to function u_versionToString_60 through pointer to incorrect function type 'void (*)(unsigned char *, char *)' > workdir/UnpackedTarball/icu/source/common/putil.cpp:2280: note: u_versionToString_60 defined here > #0 in Jrd::UnicodeUtil::getCollVersion(Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator>&) at workdir/UnpackedTarball/firebird/src/common/unicode_util.cpp:1206:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x22ff24d) > #1 in Firebird::IntlUtil::setupIcuAttributes(charset*, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator>&) at workdir/UnpackedTarball/firebird/src/common/IntlUtil.cpp:629:7 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x2277bbd) > #2 in INTL_builtin_setup_attributes(char const*, char const*, char const*, unsigned int, unsigned char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/jrd/intl_builtin.cpp:1731:7 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x16b712c) > #3 in Jrd::IntlManager::setupCollationAttributes(Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator> const&, Firebird::StringBase<Firebird::StringComparator>&) at workdir/UnpackedTarball/firebird/src/jrd/IntlManager.cpp:689:16 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x16ecd8b) > #4 in setupSpecificCollationAttributes(Jrd::thread_db*, Jrd::jrd_tra*, unsigned short, char const*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/dfw.cpp:7483:7 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1918f67) > #5 in create_collation(Jrd::thread_db*, short, Jrd::DeferredWork*, Jrd::jrd_tra*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/dfw.cpp:7542:3 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1936e2e) > #6 in DFW_perform_work(Jrd::thread_db*, Jrd::jrd_tra*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/dfw.cpp:4513:11 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x1912e49) > #7 in DFW_perform_system_work(Jrd::thread_db*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/dfw.cpp:4457:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x191259d) > #8 in INI_format(char const*, char const*) at workdir/UnpackedTarball/firebird/temp/Debug/jrd/ini.cpp:1808:2 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x18df473) > #9 in Jrd::JProvider::createDatabase(Firebird::CheckStatusWrapper*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/jrd/jrd.cpp:2691:4 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x172d05f) > #10 in Firebird::IProviderBaseImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::IPluginBaseImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IReferenceCountedImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IVersionedImpl<Jrd::JProvider, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IProvider> > > > > > >::cloopcreateDatabaseDispatcher(Firebird::IProvider*, Firebird::IStatus*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:9010:44 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.so +0x10d511f) > #11 in Firebird::IAttachment* Firebird::IProvider::createDatabase<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:2034:23 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x3937f4) > #12 in Why::Dispatcher::attachOrCreateDatabase(Firebird::CheckStatusWrapper*, bool, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/yvalve/why.cpp:5681:15 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x35adb7) > #13 in Why::Dispatcher::createDatabase(Firebird::CheckStatusWrapper*, char const*, unsigned int, unsigned char const*) at workdir/UnpackedTarball/firebird/src/yvalve/why.cpp:5606:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x35baa4) > #14 in PREPARSE_execute(Firebird::CheckStatusWrapper*, Why::YAttachment**, unsigned short, char const*, bool*, unsigned short) at workdir/UnpackedTarball/firebird/src/yvalve/preparse.cpp:288:26 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x427888) > #15 in Why::UtilInterface::executeCreateDatabase(Firebird::CheckStatusWrapper*, unsigned int, char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/yvalve/utl.cpp:587:8 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x481209) > #16 in Firebird::IUtilBaseImpl<Why::UtilInterface, Firebird::CheckStatusWrapper, Firebird::IVersionedImpl<Why::UtilInterface, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IUtil> > >::cloopexecuteCreateDatabaseDispatcher(Firebird::IUtil*, Firebird::IStatus*, unsigned int, char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:12375:44 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.so.2 +0x495a09) > #17 in Firebird::IAttachment* Firebird::IUtil::executeCreateDatabase<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper*, unsigned int, char const*, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:3504:23 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x4c41df) > #18 in create_db(char const*, char*) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:5314:38 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x48606b) > #19 in frontend(char const*) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:6152:10 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x477e4e) > #20 in get_statement(char*, unsigned long, char const*) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:7019:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x4740e6) > #21 in do_isql() at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:5481:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x461d48) > #22 in ISQL_main(int, char**) at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:1693:3 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x45d8cf) > #23 in main at workdir/UnpackedTarball/firebird/temp/Debug/isql/isql.cpp:1599:9 (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x45cf09) > #24 in __libc_start_main at <null> (/lib64/libc.so.6 +0x231ba) > #25 in _start at <null> (workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql +0x40bd89) Change-Id: I03ccded73840865f104ccf6d434f425f7c7e6907 Reviewed-on: https://gerrit.libreoffice.org/52620 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* external/firebird: Avoid -fsanitize=nonnull-attributeStephan Bergmann2018-04-081-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...during JunitTest_dbaccess_complex: > workdir/UnpackedTarball/firebird/src/jrd/../dsql/../jrd/extds/../../common/classes/fb_string.h:677:26: runtime error: null pointer passed as argument 2, which is declared to never be null > /usr/include/string.h:43:28: note: nonnull attribute specified here > #0 in Firebird::StringBase<Firebird::StringComparator>::assign(void const*, unsigned int) at workdir/UnpackedTarball/firebird/src/jrd/../dsql/../jrd/extds/../../common/classes/fb_string.h:677:4 (instdir/program/../program/libEngine12.so +0x10d8acb) > #1 in Jrd::ExecStatementNode::getString(Jrd::thread_db*, Jrd::jrd_req*, Jrd::ValueExprNode const*, Firebird::StringBase<Firebird::StringComparator>&, bool) const at workdir/UnpackedTarball/firebird/src/dsql/StmtNodes.cpp:3506:6 (instdir/program/../program/libEngine12.so +0x1a4cb95) > #2 in Jrd::ExecStatementNode::execute(Jrd::thread_db*, Jrd::jrd_req*, Jrd::StmtNode::ExeState*) const at workdir/UnpackedTarball/firebird/src/dsql/StmtNodes.cpp:3426:3 (instdir/program/../program/libEngine12.so +0x1a4b21f) > #3 in EXE_looper(Jrd::thread_db*, Jrd::jrd_req*, Jrd::StmtNode const*) at workdir/UnpackedTarball/firebird/src/jrd/exe.cpp:1292:17 (instdir/program/../program/libEngine12.so +0x129fe0f) > #4 in looper_seh(Jrd::thread_db*, Jrd::jrd_req*, Jrd::StmtNode const*) at workdir/UnpackedTarball/firebird/src/jrd/exe.cpp:1426:2 (instdir/program/../program/libEngine12.so +0x12a295c) > #5 in execute_looper(Jrd::thread_db*, Jrd::jrd_req*, Jrd::jrd_tra*, Jrd::StmtNode const*, Jrd::jrd_req::req_s) at workdir/UnpackedTarball/firebird/src/jrd/exe.cpp:1023:2 (instdir/program/../program/libEngine12.so +0x1298007) > #6 in EXE_receive(Jrd::thread_db*, Jrd::jrd_req*, unsigned short, unsigned int, unsigned char*, bool) at workdir/UnpackedTarball/firebird/src/jrd/exe.cpp:631:3 (instdir/program/../program/libEngine12.so +0x1295ffa) > #7 in JRD_receive(Jrd::thread_db*, Jrd::jrd_req*, unsigned short, unsigned int, unsigned char*) at workdir/UnpackedTarball/firebird/src/jrd/jrd.cpp:7597:2 (instdir/program/../program/libEngine12.so +0x173b736) > #8 in Jrd::DsqlDmlRequest::execute(Jrd::thread_db*, Jrd::jrd_tra**, Firebird::IMessageMetadata*, unsigned char const*, Firebird::IMessageMetadata*, unsigned char*, bool) at workdir/UnpackedTarball/firebird/src/dsql/dsql.cpp:723:3 (instdir/program/../program/libEngine12.so +0x1b61a71) > #9 in DSQL_execute(Jrd::thread_db*, Jrd::jrd_tra**, Jrd::dsql_req*, Firebird::IMessageMetadata*, unsigned char const*, Firebird::IMessageMetadata*, unsigned char*) at workdir/UnpackedTarball/firebird/src/dsql/dsql.cpp:179:11 (instdir/program/../program/libEngine12.so +0x1b53abd) > #10 in Jrd::JStatement::execute(Firebird::CheckStatusWrapper*, Firebird::ITransaction*, Firebird::IMessageMetadata*, void*, Firebird::IMessageMetadata*, void*) at workdir/UnpackedTarball/firebird/src/jrd/jrd.cpp:4446:4 (instdir/program/../program/libEngine12.so +0x1743f17) > #11 in Firebird::IStatementBaseImpl<Jrd::JStatement, Firebird::CheckStatusWrapper, Firebird::IReferenceCountedImpl<Jrd::JStatement, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IVersionedImpl<Jrd::JStatement, Firebird::CheckStatusWrapper, Firebird::Inherit<Firebird::IStatement> > > > >::cloopexecuteDispatcher(Firebird::IStatement*, Firebird::IStatus*, Firebird::ITransaction*, Firebird::IMessageMetadata*, void*, Firebird::IMessageMetadata*, void*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:8120:44 (instdir/program/../program/libEngine12.so +0x177cb46) > #12 in Firebird::ITransaction* Firebird::IStatement::execute<Firebird::CheckStatusWrapper>(Firebird::CheckStatusWrapper*, Firebird::ITransaction*, Firebird::IMessageMetadata*, void*, Firebird::IMessageMetadata*, void*) at workdir/UnpackedTarball/firebird/src/include/firebird/IdlFbInterfaces.h:1636:24 (instdir/program/../program/libfbclient.so.2 +0x386562) > #13 in Why::YStatement::execute(Firebird::CheckStatusWrapper*, Firebird::ITransaction*, Firebird::IMessageMetadata*, void*, Firebird::IMessageMetadata*, void*) at workdir/UnpackedTarball/firebird/src/yvalve/why.cpp:4345:42 (instdir/program/../program/libfbclient.so.2 +0x34ecfa) > #14 in (anonymous namespace)::IscStatement::execute(Firebird::CheckStatusWrapper*, unsigned int*, Firebird::IMessageMetadata*, unsigned char*, Firebird::IMessageMetadata*, unsigned char*) at workdir/UnpackedTarball/firebird/src/yvalve/why.cpp:1372:39 (instdir/program/../program/libfbclient.so.2 +0x337d51) > #15 in isc_dsql_execute2 at workdir/UnpackedTarball/firebird/src/yvalve/why.cpp:2279:15 (instdir/program/../program/libfbclient.so.2 +0x337096) > #16 in isc_dsql_execute at workdir/UnpackedTarball/firebird/src/yvalve/why.cpp:2235:9 (instdir/program/../program/libfbclient.so.2 +0x336707) > #17 in connectivity::firebird::OStatement::executeQuery(rtl::OUString const&) at connectivity/source/drivers/firebird/Statement.cxx:115:12 (instdir/program/../program/libfirebird_sdbclo.so +0x23e8cc) > #18 in connectivity::firebird::OStatement::execute(rtl::OUString const&) at connectivity/source/drivers/firebird/Statement.cxx:148:45 (instdir/program/../program/libfirebird_sdbclo.so +0x23ff90) > #19 in OStatement::execute(rtl::OUString const&) at dbaccess/source/core/api/statement.cxx:489:35 (instdir/program/../program/libdbalo.so +0xf5811f) > #20 in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, double*) at bridges/source/cpp_uno/gcc3_linux_x86-64/callvirtualmethod.cxx:77:5 (instdir/program/libgcc3_uno.so +0xba96d) > #21 in cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:233:13 (instdir/program/libgcc3_uno.so +0xb6855) > #22 in unoInterfaceProxyDispatch at bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:420:13 (instdir/program/libgcc3_uno.so +0xb4663) > #23 in binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::__debug::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny> >*) const at binaryurp/source/incomingrequest.cxx:236:13 (instdir/program/libbinaryurplo.so +0x209ede) > #24 in binaryurp::IncomingRequest::execute() const at binaryurp/source/incomingrequest.cxx:79:26 (instdir/program/libbinaryurplo.so +0x205f10) > #25 in request at binaryurp/source/reader.cxx:85:9 (instdir/program/libbinaryurplo.so +0x2966d3) > #26 in cppu_threadpool::JobQueue::enter(long, bool) at cppu/source/threadpool/jobqueue.cxx:107:17 (instdir/program/libuno_cppu.so.3 +0x17e863) > #27 in cppu_threadpool::ORequestThread::run() at cppu/source/threadpool/thread.cxx:165:31 (instdir/program/libuno_cppu.so.3 +0x1977bb) > #28 in threadFunc at include/osl/thread.hxx:185:15 (instdir/program/libuno_cppu.so.3 +0x1a0347) Change-Id: I2378378caca42270edfbb432096ce6ceca042a3f Reviewed-on: https://gerrit.libreoffice.org/52582 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Suppport _MSC_VER 1913 and 1914(Firebird)himajin1000002018-03-311-4/+4
| | | | | | | Change-Id: Ifeab9119fcc1037365251cd49dd7714cc37b3012 Reviewed-on: https://gerrit.libreoffice.org/52164 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* firebird: recognise MSVC 2017.5 (which defines _MSC_VER=1912)Michael Stahl2018-01-191-4/+2
| | | | Change-Id: Ic526bc3babfd342fd2ebb10003639d600a668ae5
* Full UBSan in external/firebirdStephan Bergmann2017-12-283-0/+284
| | | | | | | | | | | | | | | | | | | ...after 6a312a4a3d642f0f9769df54c0ec25471c9916bd "Prepare external/firebird for sanitizers". Doing `make check screenshot` on Linux with Clang -fsanitize=undefined -fsanitize=local-bounds -fsanitize=nullability works now. Patches that might be unwanted in non-UBSan builds are added to sanitizer.patch while unproblematic ones are added to always-included ubsan.patch. CppunitTest_dbaccess_firebird_test, e.g., shows that comphelper::AsyncEventNotifierAutoJoin::onTerminated called base-class osl::Thread::onTerminated (which does nothing, anyway) of an already destroyed object, so just drop that. Change-Id: If50f442ee6dbe590db843c38681d1c1cade8fa6a Reviewed-on: https://gerrit.libreoffice.org/47122 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Prepare external/firebird for sanitizersStephan Bergmann2017-12-222-0/+60
| | | | | | | | | | | | | ...so at least Clang -fsanitize=function on Linux works now. The patch needs to stop errors about undefined sanitizer symbols in DSOs (UNDEF_PLATFORM, EXE_LINK_OPTIONS), and make resolution of RTTI symbols consistent in a process, by exporting them from the various version map files and adding RTLD_GLOBAL to dlopen. Change-Id: I75779e55529b62a96a8943e3dee9119647aa91a7 Reviewed-on: https://gerrit.libreoffice.org/46947 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Build as C++17 when GCC/Clang supports itStephan Bergmann2017-11-262-0/+302
| | | | | | | | | | | | | | | | | | | | | | | | ...and the gperf being used no longer emits "register" in C++ code. Unlike Clang with -Wdynamic-exception-spec ignored, at least GCC 7.2 -std=gnu++17 always makes dynamic exception specs hard errors, which would cause errors both when building StaticLibrary_libcmis and when including libcmis/libcmis.hxx in ucb/source/ucp/cmis/. So patch away all dynamic exception specifications from all external/libcmis include files indirectly included via libcmis/libcmis.hxx, and (to silence the remaining dynamic exception specifications in the innards of external/libcmis, which I did not feel like also patching away) build StaticLibrary_libcmis as C++03 if necessary, and wait for upstream libcmis to eventually be ported to C++17. And external/firebird needs to be built with CXXFLAGS_CXX11 (which amounts to C++17 with this patch) since 9206a08ada00e8762c4a634f242bd566028964bb "Upgrade to ICU 60.1", so the relevant dynamic exception specifications had to be patched away from its innards. Change-Id: I3a0c9ec83c7c1d413559459631970f69ab977f31 Reviewed-on: https://gerrit.libreoffice.org/43851 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Upgrade to ICU 60.1Eike Rathke2017-11-201-0/+6
| | | | | | | Change-Id: I6d90f51ee88c4e1005edbaa93d23cfb94cb2acfb Reviewed-on: https://gerrit.libreoffice.org/44871 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
* use predefined workdir pathDavid Tardon2017-10-281-2/+2
| | | | | | | Change-Id: Ia14aaba92e5d36064bc6a77dbc63463a833d8745 Reviewed-on: https://gerrit.libreoffice.org/43969 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>
* use the new gbuild way to update config.*David Tardon2017-10-042-1970/+5
| | | | | | | Change-Id: I43805ac8c3d5c1b65519da02c3cc50fdb9729ea6 Reviewed-on: https://gerrit.libreoffice.org/42941 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Tardon <dtardon@redhat.com>
* external/firebird: Update config.{guess,sub}Stephan Bergmann2017-09-262-0/+1970
| | | | | | | | | ...with versions of those files from the latest <http://ftp.gnu.org/gnu/automake/automake-1.15.tar.xz>. The current versions would fail for Flathub aarch64 builds. Change-Id: Id53754e989244134bdc533eb7f37e08c598b03e0
* Fix firebird build with MSVC update 15.3Szymon Kłos2017-09-071-1/+3
| | | | | | | Change-Id: I236f182fd99e19e4ea171ad1bae6c03f1a258c7e Reviewed-on: https://gerrit.libreoffice.org/42060 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
* Upgrade to ICU 59.1Eike Rathke2017-04-261-0/+1
| | | | | | | | | | | | | | Also regenerated all patches using make icu.genpatch (hence the .1 suffix that indicates the path level) as some hunks did not apply anyway and all now have the correct offset. Using genpatch may have the future benefit to yield smaller diffs between different versions of patches. Also prefixed all patch names with icu4c- for a cleaner listing. New patches introduced are prefixed with icu4c-59-... Change-Id: Ia83754b0823839887fce1a1d4ed04f8375b113c2 Reviewed-on: https://gerrit.libreoffice.org/36809 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Eike Rathke <erack@redhat.com>
* Fix building external/firebird with arbitrary localesStephan Bergmann2017-03-221-1/+1
| | | | | | | | | | | | | | | | | | | At least on Linux, building it with LANG=tr_TR.UTF-8 failed for me with ... > make[5]: Entering directory '.../workdir/UnpackedTarball/firebird/gen' > rm -f metadata.fdb > .../workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/isql -q -i .../workdir/UnpackedTarball/firebird/src/dbs/metadata.sql > .../workdir/UnpackedTarball/firebird/gen/Debug/firebird/bin/gfix -mode read_only metadata.fdb > .../workdir/UnpackedTarball/firebird/gen/Debug/firebird/databases.conf: illegal line <employee.fdb = $(dir_sampleDb)/employee.fdb> > Makefile:325: recipe for target 'metadata.fdb' failed > make[5]: *** [metadata.fdb] Segmentation fault > make[5]: *** Deleting file 'metadata.fdb' > make[5]: Leaving directory '.../workdir/UnpackedTarball/firebird/gen' > Makefile:166: recipe for target 'master_process' failed ... Change-Id: I1784aaa790e527d382e8449f8007b0ae2dc14698
* drop various _MSC_VER < 1900 conditionalsCaolán McNamara2017-03-061-7/+1
| | | | | | | | Change-Id: I68d93b260db1f542bb3b44858b61b2d30ae93530 Reviewed-on: https://gerrit.libreoffice.org/34856 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
* remove unused patchCaolán McNamara2017-03-031-11/+0
| | | | | | | | | | | | unused since... commit 8dfe1a177eb437e751def99eea8bee08a7e49acc Author: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> Date: Thu Jul 30 21:57:11 2015 +0200 fix firebird build on Win64 Change-Id: I8041e39bde3f03da71a5cd8b2edf4af3f887a6d5
* external/firebird: Work around operator new alignment violationsStephan Bergmann2017-02-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...causing problems at least when building with recent Clang trunk on x86_64-unknown-linux-gnu: > make[5]: Entering directory 'workdir/UnpackedTarball/firebird/gen' > rm -f metadata.fdb > core/workdir/UnpackedTarball/firebird/gen/Release/firebird/bin/isql -q -i workdir/UnpackedTarball/firebird/src/dbs/metadata.sql > Makefile:325: recipe for target 'metadata.fdb' failed > make[5]: *** [metadata.fdb] Segmentation fault (core dumped) See the mail thread starting at <https://sourceforge.net/p/firebird/mailman/firebird-devel/thread/ec7c3bb1-3fef-e9b8-5b23-0d07fc412f95%40redhat.com/#msg35669676> "[Firebird-devel] alloc.h global operator new replacement violating alignment requirements". With DEBUG_GDS_ALLOC defined, the allocation functions defined in src/common/classes/alloc.h are no longer replacements of standard allocation functions, so Clang happens to not make aggressive alignment assumptions, see the mail thread starting at <http://lists.llvm.org/pipermail/cfe-dev/2017-February/052676.html> "[cfe-dev] operator new alignment assumptions". (Instead of always defining DEBUG_GDS_ALLOC, I first tried to comment out the definitions of global operator new/delete replacement functions in alloc.h, falling back to the compiler-provided versions. But many places in Firebird allocate via Firebird-specific operator new placement overrides and deallocate via delete expressions, which happens to work at runtime when the replaceable operator delete is Firebird's, but not when it is the compiler-provided one.) Change-Id: Ie02adb440fa959b723983d7f5b0246d3634dc06b
* Fix firebird MSVC 15.0 detectionDavid Ostrovsky2017-02-152-0/+13
| | | | | | | Change-Id: I9721632c68e6428b03b0368e7802c6eb4f5eb0a2 Reviewed-on: https://gerrit.libreoffice.org/34323 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: David Ostrovsky <david@ostrovsky.org>
* Remove MinGW supportStephan Bergmann2017-02-102-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | In OOo times, there'd originally been efforts to allow building on Windows with MinGW. Later, in LO times, this has been shifted to an attempt of cross- compiling for Windows on Linux. That attempt can be considered abandoned, and the relevant code rotting. Due to this heritage, there are now three kinds of MinGW-specific code in LO: * Code from the original OOo native Windows effort that is no longer relevant for the LO cross-compilation effort, but has never been removed properly. * Code from the original OOo native Windows effort that is re-purposed for the LO cross-compilation effort. * Code that has been added specifially for the LO cross-compilation effort. All three kinds of code are removed. (An unrelated, remaining use of MinGW is for --enable-build-unowinreg, utilizing --with-mingw-cross-compiler, MINGWCXX, and MINGWSTRIP.) Change-Id: I49daad8669b4cbe49fa923050c4a4a6ff7dda568 Reviewed-on: https://gerrit.libreoffice.org/34127 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* Revert "external/firebird: Try track down "Couldn't turn forced writes off" ↵Stephan Bergmann2017-01-183-26/+3
| | | | | | | | | | | | | | | failure" This reverts commit 128e7ce3ffa50b11b2d5ff9777a27b095a84e5d7 (plus 40b44f7eb25114e5e4e19e571b8781580a938ca6 "Remove line again that was committed in error" follow-up), now that the cause is found and addressed with 592f4f6a5941e42e6b2b3fa76e74b8ad509724c9 "external/firebird: Backport fix for CORE-5452 causing spurious SEGV". Change-Id: I84ddc90707693c2577ad0cd913e987bc9e173e34 Reviewed-on: https://gerrit.libreoffice.org/33229 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
* external/firebird: Backport fix for CORE-5452 causing spurious SEGVStephan Bergmann2017-01-173-0/+1066
| | | | | | | | | | | | ...while building LO. Patches from <https://github.com/FirebirdSQL/firebird>'s B3_0_Release branch; to apply, 0002 needed 0001 first (which looks like a reasonable thing to include in itself, anyway), plus a trivial whitespace modification, plus an additional #include for Windows. Change-Id: Idd2e326432fa52762742a168c7e880a9c6fb650c Reviewed-on: https://gerrit.libreoffice.org/33186 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
* tdf#101789 work around DYLD_LIBRARY_PATH limitations on newer MacOS XLionel Elie Mamane2016-11-222-2/+7
| | | | Change-Id: I6e3cbff1ec7a75e896ba5bafb9d1fbccc3bc8909
* external/firebird doesn't know --enable-debug, but make target "Debug"Stephan Bergmann2016-10-172-13/+12
| | | | | | | | | | | * There's an --enable-developer configure option, but it probably does more than just default to the "Debug" target, things we potentially don't want here. * Disabling --enable-debug for MSC was apparently a leftover from firebird 2 times, f58f10fc89e19d182b5a415bb69af5ecc7de080a "firebird: --enable-debug breaks the build with MSVC". Change-Id: Id9f7b6aa0cdfcea0b07f94814a8dab43488879bb
* external/firebird: Fix isinf-check for libc++Stephan Bergmann2016-10-052-0/+12
| | | | | | | ...which, at least since version 3.9, defines isinf only as a function, not as a macro, in math.h Change-Id: I7939d5bebe4b55ac7bd36bb321ad0020352a0e7b
* external/firebird: Use gb_Helper_extend_ld_path to add icu dirStephan Bergmann2016-09-231-4/+1
| | | | | | | Change-Id: If51813fc559a78a54ae5dcae4b8b9213c5e1bae6 Reviewed-on: https://gerrit.libreoffice.org/29215 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
* external/firebird: Hack around detection of clock_gettime on Mac OS XStephan Bergmann2016-09-141-0/+5
| | | | | | | | | | | | | | | ...where the 10.12 SDK includes clock_gettime, marked as __attribute__((availability(macosx,introduced=10.12))) in time.h. However, the way firebird's configure checks for it, it gets detected as available regardless of the used -mmacosx-version-min value (and even if the configure check would go via the time.h header, the availability attribute would only cause a -Wpartial-availability warning, not an error, so we'd need to pass CFLAGS=-Werror=partial-availability into firebird's configure.) Change-Id: I67e12743e1df0574e7fc4b2121add9fe1fb7677b
* Remove line again that was committed in errorStephan Bergmann2016-08-251-1/+0
| | | | Change-Id: I66c140a72bbbafe0227d2265ae9c4da73a39e0fa
* external/firebird: Try track down "Couldn't turn forced writes off" failureStephan Bergmann2016-08-253-3/+27
| | | | | | | ...that is sporadically observed on tinderboxes. (Can be reverted once the cause is found.) Change-Id: I74135b3159fe686b7d7da33da569bde6c73b89e2
* Undo inadvertent addStephan Bergmann2016-08-191-1/+0
| | | | Change-Id: I2c991387dae67ee1bb2fa97e94cd8f2fcca81a60
* Why not just drop that $(HOME)/icu54/icu/source/lib nonsenseStephan Bergmann2016-08-192-3/+4
| | | | Change-Id: I2fed34ae680eb0bc01de90a7ef525cf8446cd940
* Revive external/firebird/macosx-elcapitan-dyld.patchStephan Bergmann2016-08-192-8/+28
| | | | Change-Id: I382080f89b59a6cc642c829377954b72dae44abe
* Excess separatorStephan Bergmann2016-08-191-1/+1
| | | | Change-Id: If86dc074ab1617837fbf771bb33e93ec1dc6ea2b
* external/firebird: --with-fbsample[-db] is apparently about specifying dirsStephan Bergmann2016-08-191-1/+0
| | | | | | | | | | ...not about specifying whether to build the examples at all (which would be useful for us, but for which there seems to be no switch). Change-Id: I511b2228a6e5e2df7e0ecb83135ad27945bb04b6 Reviewed-on: https://gerrit.libreoffice.org/28221 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
* tdf#72987 GSoC Use Firebird backup formatWastack2016-08-181-0/+1
| | | | | | | | | | | Store embedded database files as an archive (.fbk) file. The firebird database file is extracted when opening an odb file, and archived for each saving. Change-Id: I6c985f89a0fb01b2294f728b4581053521ca0c88 Reviewed-on: https://gerrit.libreoffice.org/28045 Reviewed-by: Lionel Elie Mamane <lionel@mamane.lu> Tested-by: Jenkins <ci@libreoffice.org>