summaryrefslogtreecommitdiff
path: root/external/firebird
AgeCommit message (Collapse)AuthorFilesLines
2021-09-07exernal/firebird: extern/cloop: Missing dependencies of compilations on...Stephan Bergmann3-5/+50
...output directories Change-Id: Iaa2b750a12e3df078b46e5bb4feeafc926e11165 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121741 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-09-06tdf#144340: fix FB configure on WindowsMike Kaganski1-18/+28
./configure runs on Windows, and sets value of FB_ALIGNMENT, a define that affects the layout of FB's sort memory pool. Trying to include <semaphore.h> fails on Windows; the test in ./configure considers error value (equal to 2) as the value of the alignment (which should be 4 or 8 depending on arch). This makes the memory misaligned, chunks overlapping and re-written during the sort, memory corrupt, and so on. Removing the include (which is documented in a commit adding a similar include [1] to be needed for m68k) fixes detection. Additionally this cleans up the code added to config.h.in from autoconfig_msvc.h, because the former is auto-generated during configure, and the values get re-written in all occurrences of respective defines anyway. [1] https://github.com/FirebirdSQL/firebird/commit/7ba46163c74211ce4bf1051ee9998db58cb2f396 Change-Id: I8cdc5c764385a04efd130af09138149c748341fb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121753 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-03No need to check DBGUTIL speciallyMike Kaganski1-2/+2
... as discussed in comments to https://gerrit.libreoffice.org/c/core/+/121470 Change-Id: I9be45e2157972156ab7c2aac820b69aa894cacfe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121553 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-03Make sure to use debug options for firebird in debug modeMike Kaganski1-1/+2
Change-Id: I358bd2013387e9fb341d92764f29767d6c0c2cb8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121470 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-09-02tdf#144172: patch FB to use per-process LOCK directoriesMike Kaganski2-0/+19
As discussed at https://github.com/FirebirdSQL/firebird/pull/6937: > > But as well, we may just use process id instead of session id in > > the ConfigStorage::ConfigStorage creating filename. That would be > > even better, fitting better into our per-process temp dir policy. > I tend to agree with you here. It looks safe assuming LO uses > SuperServer only. Let's not replace the session id with process id, but instead append process id after session id, to avoid (unlikely?) accidental overlap of process id and session id, which would produce the same name as already used by, say, isql tool. Change-Id: Ibce8a8c75d405aae3e8949e7daf2476accdff22b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121457 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-05-05WASM: add initial support for Emscripten cross buildJan-Marek Glogowski1-1/+1
- configure with: - --host=wasm64-local-emscripten - had to make a few externals optional, so adding: - --disable-nss - --disable-cmis - --disable-curl Change-Id: I48d1c73d2675ad2e2beaf2c341578199efbd24ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111130 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-02-19tdf#140332: Can't use System V semaphores in a sandboxed macOS processTor Lillqvist2-0/+19
See https://developer.apple.com/library/archive/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html , "Note: System V semaphores are not supported in sandboxed apps". So use POSIX semaphores instead. Change-Id: I37c910cf13b868ab15fe31f90e42d24a9a24eeb1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111239 Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-01-28mac: allow cross compiling with host/build x86_64-apple-macosChristian Lohmaier1-0/+1
apple silicon supports to cross compile without special build-tools/full cross-compiling setup, so just always pass the build/host for firebird. firebird and nss don't recognize the -macos specifier, so substitute it by -darwin to make those happy… Change-Id: I953317fc87da2a20dc91acd88c8528796c3b2a69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110093 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2021-01-01Removed executable bits from patch fileAndrea Gelmini1-0/+0
Change-Id: I6cbfbfe32fb1d70cd8f73add0c2f6a63117e7f4f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108560 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-12-29external/firebird: Fix MSVC /Zc:strictStringsStephan Bergmann2-0/+12
> C:/lo/core/workdir/UnpackedTarball/firebird/src/auth/trusted/AuthSspi.cpp(112): error C2664: 'SECURITY_STATUS (SEC_CHAR *,SEC_CHAR *,unsigned long,void *,void *,SEC_GET_KEY_FN,void *,PCredHandle,PTimeStamp)': cannot convert argument 2 from 'const char [5]' to 'SEC_CHAR *' > C:/lo/core/workdir/UnpackedTarball/firebird/src/auth/trusted/AuthSspi.cpp(112): note: Conversion from string literal loses const qualifier (see /Zc:strictStrings) Not sure why this only started to hit my build now. Change-Id: Idea0a8a2abaafe17183323a31f29173bd71fbeec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108451 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-07external/firebird: clang-cl needs -march=x86-64-v2 nowStephan Bergmann1-0/+1
...to avoid > C:/lo/core/workdir/UnpackedTarball/firebird/src/common/CRC32C.cpp(41,10): error: always_inline function '_mm_crc32_u8' requires target feature 'sse4.2', but would be inlined into function 'CRC32C' that is compiled without support for 'sse4.2' > return _mm_crc32_u8(hash_value, *value); > ^ etc. With <https://github.com/FirebirdSQL/firebird/commit/ 52d9a05a0f3d811a9de7f15956ee9286d5711648> "Backport from master", that code appeared on the B3_0_Release branch only after R3_0_1, so was not present in our Firebird-3.0.0.32483-0.tar.bz2 before 86744f03992213af162df6954313c9f9e44e3a0a "firebird: update to 3.0.7". This is apparently about the SSE4.2 CRC32 instruction. Not sure how this works in the MSVC build, whether it implicitly generates code targeting SSE4.2 (<https://docs.microsoft.com/en-us/cpp/build/reference/arch-x64?view=msvc-160> "/arch (x64)" does not mention any switch to explicitly enable it), or whether its _mm_crc32_u* intrinsics would be smart enough to generate code that also works when SSE4.2 is not available at runtime. Change-Id: I893733eb079e6c0eb8b685a55ce09e1fdcd2eda2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107334 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-03external/firebird: extern/cloop: Missing dependency of $(BIN_DIR)/cloop...Stephan Bergmann3-2/+73
...on $(BIN_DIR) Change-Id: I649f2eaafb0e7160f7092a652c38193975fb5982 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107163 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-02external/firebird: Fix checks for null HANDLE in Windows-only codeStephan Bergmann2-1/+46
Change-Id: I428bbdae91eaf69df43ae054a95e8da3fb1aa7dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107056 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-27Fix Firebird build on macOS on arm64Tor Lillqvist1-10/+12
Must set RAW_DEVICES_FLG=N for this architecture, too. Make the prefix.darwin_arm64 match the x86_64 one. Don't bother defining ARM64, just check for __aarch64__. Change-Id: I9de67493cb159ce97a46cdd1974b04753518c703 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106716 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-11-26New UBSan failures with Firebird 3.0.7Stephan Bergmann1-0/+20
While building ExternalProject_firebird: For one, the ICU UCHAR_TYPE mismatch > workdir/UnpackedTarball/firebird/src/intl/cs_icu.cpp:66:30: runtime error: call to function ucnv_fromUChars_68 through pointer to incorrect function type 'int (*)(UConverter *, char *, int, const unsigned short *, int, UErrorCode *)' from 61411db9f719d793f0665a4d278e0748e8fcd75f "external/firebird: ICU_UCHAR_TYPE breaks -fsanitize=function" returned in a slightly different form. Instead of passing in the problematic UCHAR_TYPE macro from external/firebird/ExternalProject_firebird.mk, Firebird now set it internally in src/common/common.h. And for another, it grew a new invalid-shift-base at > workdir/UnpackedTarball/firebird/src/yvalve/gds.cpp:2564:33: runtime error: left shift of negative value -1 (And beyond that there were no further new ASan/UBSan issues with a full `make check screenshot`.) Change-Id: Ie15cf6bde2df7dc784fec89045026f71747aa0bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106477 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-26firebird: update to 3.0.7Julien Nabet21-1364/+549
This tries to get rid of a lot of cruft from older builds and it also aims to build as much as possible on Windows. The firebird-cygwin-msvc-warnings.patch should be optional. It gets rid of various compiler warnings on Windows, either by disableing or fixing them: - fix: D9002 - ignoring unknown option '-fno-rtti' - fix: D9024 - unrecognized source file type <filename>, object file assumed - ign: C4291 - <declaration>: no matching operator delete found; memory will not be freed if initialization throws an exception - ign: C4477 - <function>: format string <string> requires an argument of type <type>, but variadic argument number has type <type> And I explicitly got rid of the "win32" handling and simply use arch depending patches on Windows, which strips additional stuff. sberg adds: I have no idea how in an upstream macOS build the empbuild executible in gen/examples should now find @rpath/lib/libfbclient.dylib, as it does not have an RPATH set. So add an appropriate one in external/firebird/firebird-macosx.patch.1's patch of builds/posix/Makefile.in.examples (which needs to know whether we do a Debug or a Release build; an attempt of using firebird's $(IsDeveloper) for that caused other failures, see bca0dc97bf3d1348c928bdaf4964524374835823 "Revert 'external/firebird: Pass --enable-developer into configure'", so use LO's $(ENABLE_DEBUG) and rely on that being exported from LO's make into firebird's make). Also, the fbclient and Engine12 dylibs now have RPATHs set which we do not need in LO (where we still stick to our general use of @loader_path), so drop them in external/firebird/ExternalProject_firebird.mk (even though leaving them in should be harmless). Change-Id: Id34bb88900d15f89adda03e34af2ac3d4f6aa085 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105440 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-26Revert "external/firebird: Pass --enable-developer into configure"Stephan Bergmann1-2/+1
This reverts commit 823059c8f046927c3193da5acd78053f3269b753. It was meant as a prerequisite for a macOS-specific fix in patch set 19 of <https://gerrit.libreoffice.org/c/core/+/105440/19> "firebird: update to 3.0.7", but caused both the Jenkins Windows build of that Gerrit change's patch set, as well as vmiklos' Linux build based on 823059c8f046927c3193da5acd78053f3269b753 to fail with "Could not find acceptable ICU library" messages. The reasons have not been tracked down, but are presumably because workdir/UnpackedTarball/firebird/gen/Makefile starts to execute some more recipe lines based on IsDeveloper being "Y". Lets seek another fix for the macOS issue instead. Change-Id: I4bd6ad38bc0fc0ef2debd5ef55131bccbff54ebc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106675 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-25external/firebird: Pass --enable-developer into configureStephan Bergmann1-1/+2
...instead of merely forcing the Make target to Debug. That way, a future patch set of in-progress <https://gerrit.libreoffice.org/c/core/+/105440/16> "firebird: update to 3.0.7" will be able to know in the gen/examples sub- directory Make that the top-level Make was targeting Debug, not Release. (Which it will presumably need to know to fix the macOS build.) Change-Id: I57f90f66b4739b9d2cb5c33d79fcb87090c820bb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106588 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-11-21firebird: build fixes (incl. parallel build)Jan-Marek Glogowski5-100/+59
The main idea is to get rid of the "unset MAKEFLAGS". AFAI can see, the whole CPU stuff isn't used anymore. So we can drop the whole FB_CPU_ARG handling. Since LO doesn't use any of make's implicit rules, the build breaks, but luckily it just requires a single rule for the btyacc build - just a Firebuild build tool. Then there is the whole broken handling of LIBTOMMATH and LIBATOMIC_OPS already in LO's configure.ac. I don't know if any internal build of Firebird with these as system libs would work. I guess people either have a system Firebird or also build with internal libtommath and libatomic_ops. This fixes just the obvious errors. I didn't try to build it, so there might still be typos (TBH I thought hard about just dropping the system build of these libraries, after seeing the broken configure.ac). And I'm not sure our / the system boost preprocessor library is ever used over the Firebird-internal copy. It also looks like it's also just used in an other build tool and nothing of the Firebird DB itself depends on it. Then there is the movement of the install_name_tool / otool patching on MacOS from the patch into the ExternalProject to further shrink the patches, as the build doesn't depend on it. This also introduces a different debug build mode for the gcc-/g++-wrapper: MSVC_USE_INDIVIDUAL_PDBS. It uses -Fd to write a separate PDB per output file instead of using -FS to use sync writes to a single PDB, which might work around the PDB access failures seen by Jenkins for linking executables. In theory it's also faster and should work with all the other wrapper users, but I don't want to open that can of additional build errors (yet), for eventually marginal gains. Change-Id: I8d4c5d2f17def9e840a67ef1004787e8baaffa83 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105902 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-11-18Make firebird build for macOS on arm64Tor Lillqvist2-0/+124
No idea whether it works. Change-Id: I008cf9fab56bedb2e1f33ad6a99c9cd95d7483a7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106024 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-11-17firebird: fix Thread handle type on WindowsJan-Marek Glogowski2-0/+38
MSVC compiler complains about 'warning C4312: "reinterpret_cast": conversion from "unsigned long" to "HANDLE" of greater size'. Seems like an real error, if real_handle is too small to hold the full "HANDLE" value, returned by _beginthreadex. Upstream strangely just fixed in master, not B3_0_Release branch. Change-Id: I87ad263529e119f68da976245646bf8b69efd35a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105924 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-11-16Modify the non-symlink libfbclient.dylib.3.0.0Stephan Bergmann1-1/+1
At least in my --enable-debug build, workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib originally contains libfbclient.dylib -> libfbclient.dylib.2 libfbclient.dylib.2 -> libfbclient.dylib.3.0.0 libfbclient.dylib.3.0.0 so if we modify libfbclient.dylib with install_name_tool, it will break the symlink and modify libfbclient.dylib but not libfbclient.dylib.3.0.0---where the latter is what gets delivered via external/firebird/ExternalPackage_firebird.mk. (This didn't cause any issues, though, because gb_LinkTarget__use_libfbembed in RepositoryExternal.mk links against the modified libfbclient.dylib in workdir, not against the delivered libfbclient.dylib.3.0.0, so e.g. Library_firebird_sdbc did already contain the correct @loader_path/libfbclient.dylib.3.0.0 reference. Also, the `install_name_tool -id` treatment of libEngine12.dylib in external/firebird/firebird-macosx.patch.1 should not technically be necessary, as nothing links against that library; but if left unmodified, it would record the build machine's /full-path-to/workdir/UnpackedTarball/firebird/gen/Debug/firebird/plugins/libEngine12.dylib so better "clean it up". Also, the `install_name_tool -change` treatment of libEngine12.dylib in external/firebird/firebird-macosx.patch.1 is necessary because otherwise it would record a full-path dependency to /full-path-to/workdir/UnpackedTarball/firebird/gen/Debug/firebird/lib/libfbclient.dylib.3.0.0 which macosx-change-install-names.pl, called from MAKE_POST in external/firebird/ExternalProject_firebird.mk, would not adjust. With all those modifications in external/firebird/firebird-macosx.patch.1, the call to macosx-change-install-names.pl should effectively have nothing left to do, as these libraries do not depend on any other LO-provided libraries, but better leave it in place anyway.) Change-Id: Icf7f2ff5cb844b07be223e0b74cd6a650725777a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105946 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-02-21external/firebird: Remove dead conditionalsStephan Bergmann2-9/+6
For one, Clang appears to support __has_feature since at least 3.x times. That simplifies the first check, from 14955ed91b282ccbb395cb47c6d76e3b42b34748 "external/firebird: Support Clang ASan". And for another, the second check, from 25764ffd4db0e5db6f9cc9f3da8691e607f48b83 "external/firebird: Better workaround for Clang alignment expectations", can be simplified now that we no longer support neither Clang < 4 on Linux (since 685aca47da835e80f34b295c5d6389df03d1a8c2 "Bump (Linux) Clang baseline to 5.0.2") nor Xcode < 9 on macOS (since b4f666f2e677b05cab8395fe7972b45b15f60c3f "Bump Xcode baseline to 9.3"). But that means we are always setting USE_ASAN when building with Clang now (to work around certain Clang alignment expectations, regardless of whether or not we build with -fsanitize=address). Nevertheless, keep the __has_feature(address_sanitizer) check as a comment, to make this a bit clearer. Change-Id: Idc9720bd763bc1e00585773ef096202e2a8a6a59 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89162 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-02-16GBUILD_TRACE, support for finding out where the build time is spentLuboš Luňák1-0/+3
See instructions in solenv/gbuild/Trace.mk . This generates a file than can be viewed e.g. in the Chromium tracing view. Change-Id: I5f90647c58ca729375525b6daed2d4918adc8188 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88754 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-10-21external/firebird: Make comparison operator member functions constStephan Bergmann2-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>
2019-08-23Resolves: tdf#125284 config entries not substituted under Turkish localeCaolán McNamara2-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>
2019-05-05Fix remaining uses of gb_SYMBOLStephan Bergmann1-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>
2019-02-03firebird: fix CXXFLAGSMichael Stahl1-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>
2019-01-30Ensure configuration that defines math_errhandling in <cmath>Stephan Bergmann1-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>
2018-08-15Allow all _MSC_VER up to (excluding) 2000 (Firebird)Mike Kaganski1-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>
2018-06-03firebird: adapt asan.patch to GCC, which lacks __has_featureMichael Stahl2-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>
2018-04-17We don't build for i386 on macOS anywayTor Lillqvist1-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>
2018-04-17external/firebird: Better workaround for Clang alignment expectationsStephan Bergmann2-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>
2018-04-16Pass gb_SYMBOL into external/firebirdStephan Bergmann1-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>
2018-04-13external/firebird: Even more LIBO_TUNNEL_LIBRARY_PATHStephan Bergmann1-2/+4
...as needed by some builders, apparently. Change-Id: I94f3059121d21d55fc7f87d5554bf192f6858e06
2018-04-13external/firebird: Even more LIBO_TUNNEL_LIBRARY_PATHStephan Bergmann1-0/+9
...as needed by some builders, apparently. Change-Id: I0b7c063ef2c712a6b32aa107ab733a3723b38f99
2018-04-12external/firebird: More LIBO_TUNNEL_LIBRARY_PATHStephan Bergmann1-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>
2018-04-12external/firebird: Support Clang ASanStephan Bergmann4-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>
2018-04-11external/firebird: Avoid -fsanitize=nonnull-attributeStephan Bergmann1-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>
2018-04-09external/firebird: ICU_UCHAR_TYPE breaks -fsanitize=functionStephan Bergmann1-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>
2018-04-09external/firebird: Fix -fsanitize=functionStephan Bergmann1-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>
2018-04-08external/firebird: Avoid -fsanitize=nonnull-attributeStephan Bergmann1-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>
2018-03-31Suppport _MSC_VER 1913 and 1914(Firebird)himajin1000001-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>
2018-01-19firebird: recognise MSVC 2017.5 (which defines _MSC_VER=1912)Michael Stahl1-4/+2
Change-Id: Ic526bc3babfd342fd2ebb10003639d600a668ae5
2017-12-28Full UBSan in external/firebirdStephan Bergmann3-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>
2017-12-22Prepare external/firebird for sanitizersStephan Bergmann2-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>
2017-11-26Build as C++17 when GCC/Clang supports itStephan Bergmann2-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>
2017-11-20Upgrade to ICU 60.1Eike Rathke1-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>
2017-10-28use predefined workdir pathDavid Tardon1-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>
2017-10-04use the new gbuild way to update config.*David Tardon2-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>