From 01fd60b8fa614f5911d96bb34b40c62ebe1c20fb Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Thu, 1 Oct 2015 18:14:56 +0200 Subject: [PATCH] Make external/firebird work with C++14 sized deallocation ...where firebird's replacements of global new/delete would still be called for "new" but not for "delete". Lets hope that always adding the C++14 size_t overloads of operator delete is harmless in all relevant pre-C++14 environments, and only causes harmless warnings like -Wimplicit-exception-spec-mismatch in all relevant C++14 environments. (But why does a /library/ replace global new/delete in the first place?) Change-Id: Ib0b0ad748c6641c07ffed6cec3d6809a1530679f Reviewed-on: https://gerrit.libreoffice.org/19081 Tested-by: Jenkins Reviewed-by: Stephan Bergmann --- external/firebird/UnpackedTarball_firebird.mk | 3 +++ external/firebird/firebird-c++14.patch | 14 ++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 external/firebird/firebird-c++14.patch diff --git a/external/firebird/UnpackedTarball_firebird.mk b/external/firebird/UnpackedTarball_firebird.mk index 79fe914467d7..c42cbd5f1201 100644 --- a/external/firebird/UnpackedTarball_firebird.mk +++ b/external/firebird/UnpackedTarball_firebird.mk @@ -11,11 +11,14 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,firebird)) $(eval $(call gb_UnpackedTarball_set_tarball,firebird,$(FIREBIRD_TARBALL))) +$(eval $(call gb_UnpackedTarball_set_patchlevel,firebird,0)) + $(eval $(call gb_UnpackedTarball_add_patches,firebird,\ external/firebird/firebird-rpath.patch.0 \ external/firebird/firebird-c++11.patch.1 \ external/firebird/firebird-c++11replfn.patch.0 \ external/firebird/firebird.disable-ib-util-not-found.patch.1 \ + external/firebird/firebird-c++14.patch \ )) ifeq ($(OS)-$(COM),WNT-MSC) diff --git a/external/firebird/firebird-c++14.patch b/external/firebird/firebird-c++14.patch new file mode 100644 index 000000000000..ad095bf6793e --- /dev/null +++ b/external/firebird/firebird-c++14.patch @@ -0,0 +1,14 @@ +--- src/common/classes/alloc.cpp ++++ src/common/classes/alloc.cpp +@@ -2121,3 +2121,11 @@ + { + Firebird::MemoryPool::globalFree(mem); + } ++void operator delete(void* mem, size_t) throw() ++{ ++ Firebird::MemoryPool::globalFree(mem); ++} ++void operator delete[](void* mem, size_t) throw() ++{ ++ Firebird::MemoryPool::globalFree(mem); ++}