added patches from Fedora, including pkg-config file
fix includes installation directory [release 4.0.0.2496-2mamba;Sun Nov 28 2021]
This commit is contained in:
parent
ddeeea0332
commit
8ff3dcd271
28
firebird-4.0.0.2496-add-pkgconfig-files.patch
Normal file
28
firebird-4.0.0.2496-add-pkgconfig-files.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
diff --git a/builds/install/arch-specific/linux/misc/fbclient.pc.in b/builds/install/arch-specific/linux/misc/fbclient.pc.in
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..d49fdc5
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/builds/install/arch-specific/linux/misc/fbclient.pc.in
|
||||||
|
@@ -0,0 +1,10 @@
|
||||||
|
+prefix=@prefix@
|
||||||
|
+exec_prefix=@exec_prefix@
|
||||||
|
+libdir=@FB_LIBDIR@
|
||||||
|
+includedir=@FB_INCDIR@
|
||||||
|
+
|
||||||
|
+Name: fbclient
|
||||||
|
+Description: Firebird client library
|
||||||
|
+Version: @FIREBIRD_VERSION@
|
||||||
|
+Cflags: -I${includedir}/firebird
|
||||||
|
+Libs: -L${libdir} -lfbclient
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 0a3de36..922c778 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -1307,6 +1307,7 @@ case "$PLATFORM" in
|
||||||
|
gen/install/misc/firebird.init.d.gentoo:builds/install/arch-specific/linux/firebird.init.d.gentoo.in
|
||||||
|
gen/install/misc/firebird.init.d.slackware:builds/install/arch-specific/linux/firebird.init.d.slackware.in
|
||||||
|
gen/install/misc/rc.config.firebird:builds/install/arch-specific/linux/rc.config.firebird.in
|
||||||
|
+ gen/install/misc/fbclient.pc:builds/install/arch-specific/linux/misc/fbclient.pc.in
|
||||||
|
gen/Release/firebird/bin/linuxLibrary.sh:builds/install/arch-specific/linux/linuxLibrary.sh.in
|
||||||
|
gen/install/misc/firebird.service:builds/install/arch-specific/linux/firebird.service.in
|
||||||
|
],
|
144
firebird-4.0.0.2496-c++17.patch
Normal file
144
firebird-4.0.0.2496-c++17.patch
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
From ff49d71b0cdbab75f8a22717c4f88343a5961868 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adriano dos Santos Fernandes <adrianosf@gmail.com>
|
||||||
|
Date: Mon, 31 May 2021 08:55:26 -0300
|
||||||
|
Subject: [PATCH] Set POSIX build to use C++17.
|
||||||
|
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 4 ++--
|
||||||
|
builds/posix/make.defaults | 2 +-
|
||||||
|
builds/posix/prefix.freebsd_amd64 | 2 +-
|
||||||
|
configure.ac | 2 +-
|
||||||
|
examples/extauth/Makefile | 2 +-
|
||||||
|
examples/interfaces/makefile | 2 +-
|
||||||
|
extern/icu/android/aarch64/config.sh | 2 +-
|
||||||
|
extern/icu/android/armv7a/config.sh | 4 ++--
|
||||||
|
extern/icu/android/linux/config.sh | 2 +-
|
||||||
|
9 files changed, 11 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 620fd032af4..5f336efd611 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -206,14 +206,14 @@ if (MINGW)
|
||||||
|
set(CMAKE_STATIC_LIBRARY_PREFIX)
|
||||||
|
|
||||||
|
add_definitions(-D_WIN32_WINNT=0x0600)
|
||||||
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4 -std=c++11")
|
||||||
|
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4 -std=c++17")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (UNIX)
|
||||||
|
set(OS_DIR posix)
|
||||||
|
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
||||||
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -msse4 -std=c++11")
|
||||||
|
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -msse4 -std=c++17")
|
||||||
|
|
||||||
|
if (NOT CMAKE_CROSSCOMPILING)
|
||||||
|
set(LIB_readline readline)
|
||||||
|
diff --git a/builds/posix/make.defaults b/builds/posix/make.defaults
|
||||||
|
index d96e89053fa..57bbb006865 100755
|
||||||
|
--- a/builds/posix/make.defaults
|
||||||
|
+++ b/builds/posix/make.defaults
|
||||||
|
@@ -103,7 +103,7 @@ GLOB_OPTIONS:=
|
||||||
|
#____________________________________________________________________________
|
||||||
|
|
||||||
|
# Global c++ flags: firebird needs no RTTI, choose build standard
|
||||||
|
-PLUSPLUS_FLAGS:= -fno-rtti -std=c++11
|
||||||
|
+PLUSPLUS_FLAGS:= -fno-rtti -std=c++17
|
||||||
|
|
||||||
|
# If this is defined then we use special rules useful for developers only
|
||||||
|
IsDeveloper = @DEVEL_FLG@
|
||||||
|
diff --git a/builds/posix/prefix.freebsd_amd64 b/builds/posix/prefix.freebsd_amd64
|
||||||
|
index f27567a2715..0736d87e935 100644
|
||||||
|
--- a/builds/posix/prefix.freebsd_amd64
|
||||||
|
+++ b/builds/posix/prefix.freebsd_amd64
|
||||||
|
@@ -26,4 +26,4 @@ DEV_FLAGS=-ggdb -DFREEBSD -DAMD64 -pipe -MMD -p -fPIC -Wall -Wno-non-virtual-dto
|
||||||
|
# This file must be compiled with SSE4.2 support
|
||||||
|
%/CRC32C.o: CXXFLAGS += -msse4
|
||||||
|
|
||||||
|
-CXXFLAGS := $(CXXFLAGS) -std=c++11
|
||||||
|
+CXXFLAGS := $(CXXFLAGS) -std=c++17
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 9b40be43101..e4a83cf8d3b 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -899,7 +899,7 @@ dnl if 64-bit mode, then archive tool, ar, needs -X64 option
|
||||||
|
fi
|
||||||
|
|
||||||
|
XE_SAVE_ENV()
|
||||||
|
-CXXFLAGS="$CXXFLAGS -std=c++11"
|
||||||
|
+CXXFLAGS="$CXXFLAGS -std=c++17"
|
||||||
|
AC_CACHE_CHECK([whether the C++ compiler understands noexcept], [ac_cv_cxx_noexcept], [
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[int f(int x) noexcept { return x + 1; }]], [[]])],
|
||||||
|
[ac_cv_cxx_noexcept=yes], [ac_cv_cxx_noexcept=no])])
|
||||||
|
diff --git a/examples/extauth/Makefile b/examples/extauth/Makefile
|
||||||
|
index 9da7bbd357f..3c8b878d225 100644
|
||||||
|
--- a/examples/extauth/Makefile
|
||||||
|
+++ b/examples/extauth/Makefile
|
||||||
|
@@ -61,7 +61,7 @@ KEYGEN_objects=$(INTERMED)/keygen.o
|
||||||
|
TCWRAP_objects=$(INTERMED)/TcWrapper.o
|
||||||
|
KEY_AUTH_objects=$(INTERMED)/ExtAuth.o
|
||||||
|
|
||||||
|
-CXXFLAGS=-std=c++11 -pthread -I$(ROOT)/include -fPIC $(TOMCRYPT_COMPILE)
|
||||||
|
+CXXFLAGS=-std=c++17 -pthread -I$(ROOT)/include -fPIC $(TOMCRYPT_COMPILE)
|
||||||
|
LDFLAGS=-pthread -L$(LIB) -Wl,-rpath,'$$ORIGIN/../lib' $(TOMCRYPT_LINK)
|
||||||
|
|
||||||
|
LINK_LIBS=-lfbclient -ltomcrypt -ltommath
|
||||||
|
diff --git a/examples/interfaces/makefile b/examples/interfaces/makefile
|
||||||
|
index 153c3d558dc..b65dba90a7d 100644
|
||||||
|
--- a/examples/interfaces/makefile
|
||||||
|
+++ b/examples/interfaces/makefile
|
||||||
|
@@ -33,7 +33,7 @@ FBCLIENT = $(FIREBIRD)/lib/libfbclient.so
|
||||||
|
# General Compiler and linker Defines for Linux
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
CXX = c++
|
||||||
|
-CXXFLAGS= -c -Wall -g3 -std=c++11 -fno-rtti $(INCLUDE)
|
||||||
|
+CXXFLAGS= -c -Wall -g3 -std=c++17 -fno-rtti $(INCLUDE)
|
||||||
|
RM = rm -f
|
||||||
|
|
||||||
|
#
|
||||||
|
diff --git a/extern/icu/android/aarch64/config.sh b/extern/icu/android/aarch64/config.sh
|
||||||
|
index 51ef623a3c5..f464d930ec2 100755
|
||||||
|
--- a/extern/icu/android/aarch64/config.sh
|
||||||
|
+++ b/extern/icu/android/aarch64/config.sh
|
||||||
|
@@ -18,7 +18,7 @@
|
||||||
|
--enable-dyload \
|
||||||
|
--with-cross-build=$CROSS_BUILD_DIR \
|
||||||
|
CFLAGS='-Os' \
|
||||||
|
- CXXFLAGS='--std=c++11' \
|
||||||
|
+ CXXFLAGS='--std=c++17' \
|
||||||
|
LDFLAGS='-static-libstdc++' \
|
||||||
|
CC=aarch64-linux-android24-clang \
|
||||||
|
CXX=aarch64-linux-android24-clang++ \
|
||||||
|
diff --git a/extern/icu/android/armv7a/config.sh b/extern/icu/android/armv7a/config.sh
|
||||||
|
index fe1bd037456..0e458c690e7 100755
|
||||||
|
--- a/extern/icu/android/armv7a/config.sh
|
||||||
|
+++ b/extern/icu/android/armv7a/config.sh
|
||||||
|
@@ -18,10 +18,10 @@
|
||||||
|
--enable-dyload \
|
||||||
|
--with-cross-build=$CROSS_BUILD_DIR \
|
||||||
|
CFLAGS='-Os -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
|
||||||
|
- CXXFLAGS='--std=c++11 -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
|
||||||
|
+ CXXFLAGS='--std=c++17 -march=armv7-a -mfloat-abi=softfp -mfpu=neon' \
|
||||||
|
LDFLAGS='-static-libstdc++ -march=armv7-a -Wl,--fix-cortex-a8' \
|
||||||
|
CC=arm-linux-androideabi-clang \
|
||||||
|
CXX=arm-linux-androideabi-clang++ \
|
||||||
|
AR=arm-linux-androideabi-ar \
|
||||||
|
RANLIB=arm-linux-androideabi-ranlib \
|
||||||
|
- --with-data-packaging=archive
|
||||||
|
\ No newline at end of file
|
||||||
|
+ --with-data-packaging=archive
|
||||||
|
diff --git a/extern/icu/android/linux/config.sh b/extern/icu/android/linux/config.sh
|
||||||
|
index a8b56024aae..6e7d9c5f5c8 100755
|
||||||
|
--- a/extern/icu/android/linux/config.sh
|
||||||
|
+++ b/extern/icu/android/linux/config.sh
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
#!/bin/sh
|
||||||
|
../source/runConfigureICU Linux --prefix=$PWD/prebuilt \
|
||||||
|
CFLAGS="-Os" \
|
||||||
|
- CXXFLAGS="--std=c++11" \
|
||||||
|
+ CXXFLAGS="--std=c++17" \
|
||||||
|
--enable-static \
|
||||||
|
--enable-shared=no \
|
||||||
|
--enable-extras=no \
|
38
firebird-4.0.0.2496-cloop-honour-build-flags.patch
Normal file
38
firebird-4.0.0.2496-cloop-honour-build-flags.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
diff --git a/extern/cloop/Makefile b/extern/cloop/Makefile
|
||||||
|
index 08516c2..1573dc2 100644
|
||||||
|
--- a/extern/cloop/Makefile
|
||||||
|
+++ b/extern/cloop/Makefile
|
||||||
|
@@ -6,7 +6,7 @@ TARGET := release
|
||||||
|
|
||||||
|
CC := $(CC)
|
||||||
|
CXX := $(CXX)
|
||||||
|
-LD := $(CXX)
|
||||||
|
+LD := $(CXX) $(LDFLAGS)
|
||||||
|
|
||||||
|
SRC_DIR := src
|
||||||
|
BUILD_DIR := build
|
||||||
|
@@ -27,8 +27,9 @@ SRCS_CPP := $(foreach sdir,$(SRC_DIRS),$(wildcard $(sdir)/*.cpp))
|
||||||
|
OBJS_C := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS_C))
|
||||||
|
OBJS_CPP := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRCS_CPP))
|
||||||
|
|
||||||
|
-C_FLAGS := -ggdb -fPIC -MMD -MP -W -Wall -Wno-unused-parameter
|
||||||
|
-CXX_FLAGS := $(C_FLAGS)
|
||||||
|
+COMMON_C_FLAGS := -ggdb -fPIC -MMD -MP -W -Wall -Wno-unused-parameter
|
||||||
|
+C_FLAGS := $(COMMON_C_FLAGS) $(CFLAGS) $(CPPFLAGS)
|
||||||
|
+CXX_FLAGS := $(COMMON_C_FLAGS) $(CXXFLAGS) $(CPPFLAGS)
|
||||||
|
FPC_FLAGS := -Mdelphi
|
||||||
|
|
||||||
|
ifeq ($(shell uname),FreeBSD)
|
||||||
|
diff --git a/extern/btyacc/Makefile b/extern/btyacc/Makefile
|
||||||
|
index f432965..52d8443 100644
|
||||||
|
--- a/extern/btyacc/Makefile
|
||||||
|
+++ b/extern/btyacc/Makefile
|
||||||
|
@@ -12,7 +12,7 @@ HDRS = defs.h mstring.h
|
||||||
|
# across all of our supported compilers/platforms.
|
||||||
|
|
||||||
|
# Vanilla CFLAGS
|
||||||
|
-CFLAGS=
|
||||||
|
+CFLAGS=-fPIE
|
||||||
|
|
||||||
|
# No LDFLAGS
|
||||||
|
#LDFLAGS=
|
52
firebird-4.0.0.2496-no-copy-from-icu.patch
Normal file
52
firebird-4.0.0.2496-no-copy-from-icu.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
diff --git a/builds/posix/Makefile.in b/builds/posix/Makefile.in
|
||||||
|
index bb4ceb1..87e75a2 100644
|
||||||
|
--- a/builds/posix/Makefile.in
|
||||||
|
+++ b/builds/posix/Makefile.in
|
||||||
|
@@ -534,7 +534,7 @@ $(GSTAT): $(GSTAT_Objects) $(COMMON_LIB)
|
||||||
|
isql: $(ISQL)
|
||||||
|
|
||||||
|
$(ISQL): $(ISQL_Objects) $(COMMON_LIB)
|
||||||
|
- $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LIBEDITLINE) $(TERMLIB) $(LINK_LIBS) $(call LINK_DARWIN_RPATH,..)
|
||||||
|
+ $(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LIBEDITLINE) $(TERMLIB) $(LINK_LIBS) $(ICU_LIBS) $(call LINK_DARWIN_RPATH,..)
|
||||||
|
|
||||||
|
nbackup: $(NBACKUP)
|
||||||
|
|
||||||
|
diff --git a/src/isql/isql.epp b/src/isql/isql.epp
|
||||||
|
index 79da1f7..4554252 100644
|
||||||
|
--- a/src/isql/isql.epp
|
||||||
|
+++ b/src/isql/isql.epp
|
||||||
|
@@ -173,34 +173,6 @@ const char* UNKNOWN = "*unknown*";
|
||||||
|
|
||||||
|
namespace IcuUtil
|
||||||
|
{
|
||||||
|
- // Duplicate from ICU to not need to link ISQL with it. It's used by U8_NEXT_UNSAFE.
|
||||||
|
- static const uint8_t utf8_countTrailBytes[256] = {
|
||||||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
-
|
||||||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
-
|
||||||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
-
|
||||||
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
|
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
|
-
|
||||||
|
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||||
|
- 3, 3, 3, 3, 3,
|
||||||
|
- 3, 3, 3, /* illegal in Unicode */
|
||||||
|
- 4, 4, 4, 4, /* illegal in Unicode */
|
||||||
|
- 5, 5, /* illegal in Unicode */
|
||||||
|
- 0, 0 /* illegal bytes 0xfe and 0xff */
|
||||||
|
- };
|
||||||
|
-
|
||||||
|
// Return the number of characters of a string.
|
||||||
|
static unsigned charLength(SSHORT charset, unsigned len, const char* str)
|
||||||
|
{
|
664
firebird-4.0.0.2496-noexcept.patch
Normal file
664
firebird-4.0.0.2496-noexcept.patch
Normal file
@ -0,0 +1,664 @@
|
|||||||
|
From a999f35f0fad27798fdc88a3f5cdf2e3e9041594 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adriano dos Santos Fernandes <adrianosf@gmail.com>
|
||||||
|
Date: Mon, 31 May 2021 08:55:26 -0300
|
||||||
|
Subject: [PATCH] Replace FB_NOTHROW by noexcept and remove FB_THROW.
|
||||||
|
|
||||||
|
---
|
||||||
|
src/common/classes/alloc.cpp | 128 +++++++++++++++++------------------
|
||||||
|
src/common/classes/alloc.h | 74 ++++++++------------
|
||||||
|
2 files changed, 94 insertions(+), 108 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/common/classes/alloc.cpp b/src/common/classes/alloc.cpp
|
||||||
|
index 1bd6ad4f09d..ee91ab89df8 100644
|
||||||
|
--- a/src/common/classes/alloc.cpp
|
||||||
|
+++ b/src/common/classes/alloc.cpp
|
||||||
|
@@ -68,19 +68,19 @@
|
||||||
|
#define VALGRIND_FIX_IT // overrides suspicious valgrind behavior
|
||||||
|
#endif // USE_VALGRIND
|
||||||
|
|
||||||
|
-void* operator new(size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+void* operator new(size_t s ALLOC_PARAMS)
|
||||||
|
{
|
||||||
|
return MemoryPool::globalAlloc(s ALLOC_PASS_ARGS);
|
||||||
|
}
|
||||||
|
-void* operator new[](size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+void* operator new[](size_t s ALLOC_PARAMS)
|
||||||
|
{
|
||||||
|
return MemoryPool::globalAlloc(s ALLOC_PASS_ARGS);
|
||||||
|
}
|
||||||
|
-void operator delete(void* mem ALLOC_PARAMS) FB_NOTHROW
|
||||||
|
+void operator delete(void* mem ALLOC_PARAMS) noexcept
|
||||||
|
{
|
||||||
|
MemoryPool::globalFree(mem);
|
||||||
|
}
|
||||||
|
-void operator delete[](void* mem ALLOC_PARAMS) FB_NOTHROW
|
||||||
|
+void operator delete[](void* mem ALLOC_PARAMS) noexcept
|
||||||
|
{
|
||||||
|
MemoryPool::globalFree(mem);
|
||||||
|
}
|
||||||
|
@@ -109,7 +109,7 @@ static const int GUARD_BYTES = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
-T absVal(T n) FB_NOTHROW
|
||||||
|
+T absVal(T n) noexcept
|
||||||
|
{
|
||||||
|
return n < 0 ? -n : n;
|
||||||
|
}
|
||||||
|
@@ -160,7 +160,7 @@ struct FailedBlock
|
||||||
|
FailedBlock* failedList = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-void corrupt(const char* text) FB_NOTHROW
|
||||||
|
+void corrupt(const char* text) noexcept
|
||||||
|
{
|
||||||
|
#ifdef DEV_BUILD
|
||||||
|
fprintf(stderr, "%s\n", text);
|
||||||
|
@@ -377,7 +377,7 @@ class MemHeader
|
||||||
|
|
||||||
|
#ifdef MEM_DEBUG
|
||||||
|
void print_contents(bool used, FILE* file, bool used_only,
|
||||||
|
- const char* filter_path, const size_t filter_len) FB_NOTHROW
|
||||||
|
+ const char* filter_path, const size_t filter_len) noexcept
|
||||||
|
{
|
||||||
|
if (used || !used_only)
|
||||||
|
{
|
||||||
|
@@ -406,7 +406,7 @@ class MemHeader
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- void validate(MemPool* p, StatInt& vUse) FB_NOTHROW
|
||||||
|
+ void validate(MemPool* p, StatInt& vUse) noexcept
|
||||||
|
{
|
||||||
|
if (p == pool && !isExtent())
|
||||||
|
vUse += getSize();
|
||||||
|
@@ -461,7 +461,7 @@ class MemBaseHunk
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
- void validate(MemPool* pool, size_t hdr, StatInt& vMap, StatInt& vUse) FB_NOTHROW
|
||||||
|
+ void validate(MemPool* pool, size_t hdr, StatInt& vMap, StatInt& vUse) noexcept
|
||||||
|
{
|
||||||
|
if (length >= DEFAULT_ALLOCATION)
|
||||||
|
{
|
||||||
|
@@ -526,7 +526,7 @@ class MemSmallHunk : public MemBaseHunk<MemSmallHunk>
|
||||||
|
|
||||||
|
#ifdef MEM_DEBUG
|
||||||
|
void print_contents(FILE* file, MemPool* pool, bool used_only,
|
||||||
|
- const char* filter_path, const size_t filter_len) FB_NOTHROW
|
||||||
|
+ const char* filter_path, const size_t filter_len) noexcept
|
||||||
|
{
|
||||||
|
UCHAR* m = ((UCHAR*) this) + hdrSize();
|
||||||
|
fprintf(file, "Small hunk %p: memory=[%p:%p) spaceRemaining=%" SIZEFORMAT " length=%" SIZEFORMAT "\n",
|
||||||
|
@@ -598,7 +598,7 @@ class MemMediumHunk : public MemBaseHunk<MemMediumHunk>
|
||||||
|
|
||||||
|
#ifdef MEM_DEBUG
|
||||||
|
void print_contents(FILE* file, MemPool* pool, bool used_only,
|
||||||
|
- const char* filter_path, const size_t filter_len) FB_NOTHROW
|
||||||
|
+ const char* filter_path, const size_t filter_len) noexcept
|
||||||
|
{
|
||||||
|
UCHAR* m = ((UCHAR*) this) + hdrSize();
|
||||||
|
fprintf(file, "Medium hunk %p: memory=[%p:%p) spaceRemaining=%" SIZEFORMAT " length=%" SIZEFORMAT "\n",
|
||||||
|
@@ -630,7 +630,7 @@ class MemBigHunk
|
||||||
|
|
||||||
|
#ifdef MEM_DEBUG
|
||||||
|
void print_contents(FILE* file, MemPool* pool, bool used_only,
|
||||||
|
- const char* filter_path, const size_t filter_len) FB_NOTHROW
|
||||||
|
+ const char* filter_path, const size_t filter_len) noexcept
|
||||||
|
{
|
||||||
|
fprintf(file, "Big hunk %p: memory=%p length=%" SIZEFORMAT "\n",
|
||||||
|
this, block, length);
|
||||||
|
@@ -1647,7 +1647,7 @@ class FreeObjects
|
||||||
|
|
||||||
|
~FreeObjects();
|
||||||
|
|
||||||
|
- FreeObjPtr allocateBlock(MemPool* pool, size_t from, size_t& size) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+ FreeObjPtr allocateBlock(MemPool* pool, size_t from, size_t& size)
|
||||||
|
{
|
||||||
|
size_t full_size = size + (from ? 0 : ListBuilder::MEM_OVERHEAD);
|
||||||
|
if (full_size > Limits::TOP_LIMIT)
|
||||||
|
@@ -1696,7 +1696,7 @@ class FreeObjects
|
||||||
|
|
||||||
|
#ifdef MEM_DEBUG
|
||||||
|
void print_contents(FILE* file, MemPool* pool, bool used_only,
|
||||||
|
- const char* filter_path, const size_t filter_len) FB_NOTHROW
|
||||||
|
+ const char* filter_path, const size_t filter_len) noexcept
|
||||||
|
{
|
||||||
|
for (Extent* ext = currentExtent; ext; ext = ext->next)
|
||||||
|
ext->print_contents(file, pool, used_only, filter_path, filter_len);
|
||||||
|
@@ -1717,7 +1717,7 @@ class FreeObjects
|
||||||
|
ListBuilder listBuilder;
|
||||||
|
Extent* currentExtent;
|
||||||
|
|
||||||
|
- MemBlock* newBlock(MemPool* pool, unsigned slot) FB_THROW (OOM_EXCEPTION);
|
||||||
|
+ MemBlock* newBlock(MemPool* pool, unsigned slot);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1799,26 +1799,26 @@ class MemPool
|
||||||
|
};
|
||||||
|
#endif // VALIDATE_POOL
|
||||||
|
|
||||||
|
- MemBlock* alloc(size_t from, size_t& length, bool flagRedirect) FB_THROW (OOM_EXCEPTION);
|
||||||
|
- void releaseBlock(MemBlock *block, bool flagDecr) FB_NOTHROW;
|
||||||
|
+ MemBlock* alloc(size_t from, size_t& length, bool flagRedirect);
|
||||||
|
+ void releaseBlock(MemBlock *block, bool flagDecr) noexcept;
|
||||||
|
|
||||||
|
public:
|
||||||
|
- void* allocate(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||||
|
- MemBlock* allocate2(size_t from, size_t& size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||||
|
+ void* allocate(size_t size ALLOC_PARAMS);
|
||||||
|
+ MemBlock* allocate2(size_t from, size_t& size ALLOC_PARAMS);
|
||||||
|
|
||||||
|
private:
|
||||||
|
- virtual void memoryIsExhausted(void) FB_THROW (OOM_EXCEPTION);
|
||||||
|
- void* allocRaw(size_t length) FB_THROW (OOM_EXCEPTION);
|
||||||
|
- static void releaseMemory(void* block, bool flagExtent) FB_NOTHROW;
|
||||||
|
- static void releaseRaw(bool destroying, void *block, size_t size, bool use_cache = true) FB_NOTHROW;
|
||||||
|
- void* getExtent(size_t from, size_t& to) FB_THROW (OOM_EXCEPTION);
|
||||||
|
+ virtual void memoryIsExhausted(void);
|
||||||
|
+ void* allocRaw(size_t length);
|
||||||
|
+ static void releaseMemory(void* block, bool flagExtent) noexcept;
|
||||||
|
+ static void releaseRaw(bool destroying, void *block, size_t size, bool use_cache = true) noexcept;
|
||||||
|
+ void* getExtent(size_t from, size_t& to);
|
||||||
|
|
||||||
|
public:
|
||||||
|
- static void releaseExtent(bool destroying, void *block, size_t size, MemPool* pool) FB_NOTHROW;
|
||||||
|
+ static void releaseExtent(bool destroying, void *block, size_t size, MemPool* pool) noexcept;
|
||||||
|
|
||||||
|
// pass desired size, return actual extent size
|
||||||
|
template <class Extent>
|
||||||
|
- void newExtent(size_t& size, Extent** linkedList) FB_THROW (OOM_EXCEPTION);
|
||||||
|
+ void newExtent(size_t& size, Extent** linkedList);
|
||||||
|
|
||||||
|
private:
|
||||||
|
#ifdef USE_VALGRIND
|
||||||
|
@@ -1830,9 +1830,9 @@ class MemPool
|
||||||
|
|
||||||
|
public:
|
||||||
|
static void deletePool(MemPool* pool);
|
||||||
|
- static void globalFree(void* block) FB_NOTHROW;
|
||||||
|
+ static void globalFree(void* block) noexcept;
|
||||||
|
|
||||||
|
- static void deallocate(void* block) FB_NOTHROW;
|
||||||
|
+ static void deallocate(void* block) noexcept;
|
||||||
|
bool validate(char* buf, FB_SIZE_T size);
|
||||||
|
|
||||||
|
// Create memory pool instance
|
||||||
|
@@ -1840,7 +1840,7 @@ class MemPool
|
||||||
|
|
||||||
|
// Set statistics group for pool. Usage counters will be decremented from
|
||||||
|
// previously set group and added to new
|
||||||
|
- void setStatsGroup(MemoryStats& stats) FB_NOTHROW;
|
||||||
|
+ void setStatsGroup(MemoryStats& stats) noexcept;
|
||||||
|
|
||||||
|
// Initialize and finalize global memory pool
|
||||||
|
static MemPool* init()
|
||||||
|
@@ -1893,25 +1893,25 @@ class MemPool
|
||||||
|
}
|
||||||
|
|
||||||
|
// Statistics
|
||||||
|
- void increment_usage(size_t size) FB_NOTHROW
|
||||||
|
+ void increment_usage(size_t size) noexcept
|
||||||
|
{
|
||||||
|
stats->increment_usage(size);
|
||||||
|
used_memory += size;
|
||||||
|
}
|
||||||
|
|
||||||
|
- void decrement_usage(size_t size) FB_NOTHROW
|
||||||
|
+ void decrement_usage(size_t size) noexcept
|
||||||
|
{
|
||||||
|
stats->decrement_usage(size);
|
||||||
|
used_memory -= size;
|
||||||
|
}
|
||||||
|
|
||||||
|
- void increment_mapping(size_t size) FB_NOTHROW
|
||||||
|
+ void increment_mapping(size_t size) noexcept
|
||||||
|
{
|
||||||
|
stats->increment_mapping(size);
|
||||||
|
mapped_memory += size;
|
||||||
|
}
|
||||||
|
|
||||||
|
- void decrement_mapping(size_t size) FB_NOTHROW
|
||||||
|
+ void decrement_mapping(size_t size) noexcept
|
||||||
|
{
|
||||||
|
stats->decrement_mapping(size);
|
||||||
|
mapped_memory -= size;
|
||||||
|
@@ -1919,9 +1919,9 @@ class MemPool
|
||||||
|
|
||||||
|
#ifdef MEM_DEBUG
|
||||||
|
// Print out pool contents. This is debugging routine
|
||||||
|
- void print_contents(FILE*, unsigned flags, const char* filter_path) FB_NOTHROW;
|
||||||
|
+ void print_contents(FILE*, unsigned flags, const char* filter_path) noexcept;
|
||||||
|
// The same routine, but more easily callable from the debugger
|
||||||
|
- void print_contents(const char* filename, unsigned flags, const char* filter_path) FB_NOTHROW;
|
||||||
|
+ void print_contents(const char* filename, unsigned flags, const char* filter_path) noexcept;
|
||||||
|
|
||||||
|
private:
|
||||||
|
MemPool* next;
|
||||||
|
@@ -1961,7 +1961,7 @@ void DoubleLinkedList::decrUsage(MemMediumHunk* hunk, MemPool* pool)
|
||||||
|
|
||||||
|
|
||||||
|
template <class ListBuilder, class Limits>
|
||||||
|
-MemBlock* FreeObjects<ListBuilder, Limits>::newBlock(MemPool* pool, unsigned slot) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+MemBlock* FreeObjects<ListBuilder, Limits>::newBlock(MemPool* pool, unsigned slot)
|
||||||
|
{
|
||||||
|
size_t size = Limits::getSize(slot);
|
||||||
|
|
||||||
|
@@ -2170,7 +2170,7 @@ MemPool::~MemPool(void)
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class Extent>
|
||||||
|
-void MemPool::newExtent(size_t& size, Extent** linkedList) FB_THROW(OOM_EXCEPTION)
|
||||||
|
+void MemPool::newExtent(size_t& size, Extent** linkedList)
|
||||||
|
{
|
||||||
|
// No large enough block found. We need to extend the pool
|
||||||
|
void* memory = NULL;
|
||||||
|
@@ -2214,7 +2214,7 @@ MemoryPool* MemoryPool::createPool(MemoryPool* parentPool, MemoryStats& stats)
|
||||||
|
return FB_NEW_POOL(*parentPool) MemoryPool(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void MemPool::setStatsGroup(MemoryStats& newStats) FB_NOTHROW
|
||||||
|
+void MemPool::setStatsGroup(MemoryStats& newStats) noexcept
|
||||||
|
{
|
||||||
|
MutexLockGuard guard(mutex, "MemPool::setStatsGroup");
|
||||||
|
|
||||||
|
@@ -2230,12 +2230,12 @@ void MemPool::setStatsGroup(MemoryStats& newStats) FB_NOTHROW
|
||||||
|
stats->increment_usage(sav_used_memory);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void MemoryPool::setStatsGroup(MemoryStats& newStats) FB_NOTHROW
|
||||||
|
+void MemoryPool::setStatsGroup(MemoryStats& newStats) noexcept
|
||||||
|
{
|
||||||
|
pool->setStatsGroup(newStats);
|
||||||
|
}
|
||||||
|
|
||||||
|
-MemBlock* MemPool::alloc(size_t from, size_t& length, bool flagRedirect) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+MemBlock* MemPool::alloc(size_t from, size_t& length, bool flagRedirect)
|
||||||
|
{
|
||||||
|
MutexEnsureUnlock guard(mutex, "MemPool::alloc");
|
||||||
|
guard.enter();
|
||||||
|
@@ -2294,7 +2294,7 @@ MemBlock* MemPool::allocate2(size_t from, size_t& size
|
||||||
|
#ifdef DEBUG_GDS_ALLOC
|
||||||
|
, const char* fileName, int line
|
||||||
|
#endif
|
||||||
|
-) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+)
|
||||||
|
{
|
||||||
|
size_t length = from ? size : ROUNDUP(size + VALGRIND_REDZONE, roundingSize) + GUARD_BYTES;
|
||||||
|
MemBlock* memory = alloc(from, length, true);
|
||||||
|
@@ -2324,7 +2324,7 @@ MemBlock* MemPool::allocate2(size_t from, size_t& size
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-void* MemPool::allocate(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+void* MemPool::allocate(size_t size ALLOC_PARAMS)
|
||||||
|
{
|
||||||
|
#ifdef VALIDATE_POOL
|
||||||
|
MutexLockGuard guard(mutex, "MemPool::allocate");
|
||||||
|
@@ -2339,7 +2339,7 @@ void* MemPool::allocate(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-void MemPool::releaseMemory(void* object, bool flagExtent) FB_NOTHROW
|
||||||
|
+void MemPool::releaseMemory(void* object, bool flagExtent) noexcept
|
||||||
|
{
|
||||||
|
if (object)
|
||||||
|
{
|
||||||
|
@@ -2403,7 +2403,7 @@ void MemPool::releaseMemory(void* object, bool flagExtent) FB_NOTHROW
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-void MemPool::releaseBlock(MemBlock* block, bool decrUsage) FB_NOTHROW
|
||||||
|
+void MemPool::releaseBlock(MemBlock* block, bool decrUsage) noexcept
|
||||||
|
{
|
||||||
|
if (block->pool != this)
|
||||||
|
corrupt("bad block released");
|
||||||
|
@@ -2464,12 +2464,12 @@ void MemPool::releaseBlock(MemBlock* block, bool decrUsage) FB_NOTHROW
|
||||||
|
releaseRaw(pool_destroying, hunk, hunk->length, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void MemPool::memoryIsExhausted(void) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+void MemPool::memoryIsExhausted(void)
|
||||||
|
{
|
||||||
|
Firebird::BadAlloc::raise();
|
||||||
|
}
|
||||||
|
|
||||||
|
-void* MemPool::allocRaw(size_t size) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+void* MemPool::allocRaw(size_t size)
|
||||||
|
{
|
||||||
|
#ifndef USE_VALGRIND
|
||||||
|
if (size == DEFAULT_ALLOCATION)
|
||||||
|
@@ -2549,7 +2549,7 @@ void* MemPool::allocRaw(size_t size) FB_THROW (OOM_EXCEPTION)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-void* MemPool::getExtent(size_t from, size_t& to) FB_THROW(OOM_EXCEPTION) // pass desired minimum size, return actual extent size
|
||||||
|
+void* MemPool::getExtent(size_t from, size_t& to) // pass desired minimum size, return actual extent size
|
||||||
|
{
|
||||||
|
#ifdef VALIDATE_POOL
|
||||||
|
MutexLockGuard guard(mutex, "MemPool::getExtent");
|
||||||
|
@@ -2560,7 +2560,7 @@ void* MemPool::getExtent(size_t from, size_t& to) FB_THROW(OOM_EXCEPTION) // pa
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-void MemPool::releaseExtent(bool destroying, void* block, size_t size, MemPool* pool) FB_NOTHROW
|
||||||
|
+void MemPool::releaseExtent(bool destroying, void* block, size_t size, MemPool* pool) noexcept
|
||||||
|
{
|
||||||
|
if (size < DEFAULT_ALLOCATION)
|
||||||
|
releaseMemory(block, true);
|
||||||
|
@@ -2573,7 +2573,7 @@ void MemPool::releaseExtent(bool destroying, void* block, size_t size, MemPool*
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-void MemPool::releaseRaw(bool destroying, void* block, size_t size, bool use_cache) FB_NOTHROW
|
||||||
|
+void MemPool::releaseRaw(bool destroying, void* block, size_t size, bool use_cache) noexcept
|
||||||
|
{
|
||||||
|
#ifndef USE_VALGRIND
|
||||||
|
if (use_cache && (size == DEFAULT_ALLOCATION))
|
||||||
|
@@ -2666,19 +2666,19 @@ void MemPool::releaseRaw(bool destroying, void* block, size_t size, bool use_cac
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-void MemPool::globalFree(void* block) FB_NOTHROW
|
||||||
|
+void MemPool::globalFree(void* block) noexcept
|
||||||
|
{
|
||||||
|
deallocate(block);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void* MemoryPool::calloc(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+void* MemoryPool::calloc(size_t size ALLOC_PARAMS)
|
||||||
|
{
|
||||||
|
void* block = allocate(size ALLOC_PASS_ARGS);
|
||||||
|
memset(block, 0, size);
|
||||||
|
return block;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void MemPool::deallocate(void* block) FB_NOTHROW
|
||||||
|
+void MemPool::deallocate(void* block) noexcept
|
||||||
|
{
|
||||||
|
releaseMemory(block, false);
|
||||||
|
}
|
||||||
|
@@ -2720,7 +2720,7 @@ bool MemPool::validate(char* buf, FB_SIZE_T size)
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef MEM_DEBUG
|
||||||
|
-void MemPool::print_contents(const char* filename, unsigned flags, const char* filter_path) FB_NOTHROW
|
||||||
|
+void MemPool::print_contents(const char* filename, unsigned flags, const char* filter_path) noexcept
|
||||||
|
{
|
||||||
|
FILE* out = os_utils::fopen(filename, "w");
|
||||||
|
if (!out)
|
||||||
|
@@ -2731,7 +2731,7 @@ void MemPool::print_contents(const char* filename, unsigned flags, const char* f
|
||||||
|
}
|
||||||
|
|
||||||
|
// This member function can't be const because there are calls to the mutex.
|
||||||
|
-void MemPool::print_contents(FILE* file, unsigned flags, const char* filter_path) FB_NOTHROW
|
||||||
|
+void MemPool::print_contents(FILE* file, unsigned flags, const char* filter_path) noexcept
|
||||||
|
{
|
||||||
|
bool used_only = flags & MemoryPool::PRINT_USED_ONLY;
|
||||||
|
|
||||||
|
@@ -2818,7 +2818,7 @@ MemoryPool& AutoStorage::getAutoMemoryPool()
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef LIBC_CALLS_NEW
|
||||||
|
-void* MemoryPool::globalAlloc(size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+void* MemoryPool::globalAlloc(size_t s ALLOC_PARAMS)
|
||||||
|
{
|
||||||
|
if (!defaultMemoryManager)
|
||||||
|
{
|
||||||
|
@@ -2831,17 +2831,17 @@ void* MemoryPool::globalAlloc(size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||||
|
}
|
||||||
|
#endif // LIBC_CALLS_NEW
|
||||||
|
|
||||||
|
-void MemoryPool::globalFree(void* block) FB_NOTHROW
|
||||||
|
+void MemoryPool::globalFree(void* block) noexcept
|
||||||
|
{
|
||||||
|
MemPool::globalFree(block);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void* MemoryPool::allocate(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+void* MemoryPool::allocate(size_t size ALLOC_PARAMS)
|
||||||
|
{
|
||||||
|
return pool->allocate(size ALLOC_PASS_ARGS);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void MemoryPool::deallocate(void* block) FB_NOTHROW
|
||||||
|
+void MemoryPool::deallocate(void* block) noexcept
|
||||||
|
{
|
||||||
|
pool->deallocate(block);
|
||||||
|
}
|
||||||
|
@@ -2870,14 +2870,14 @@ void MemoryPool::deletePool(MemoryPool* pool)
|
||||||
|
delete pool;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void MemoryPool::print_contents(FILE* file, unsigned flags, const char* filter_path) FB_NOTHROW
|
||||||
|
+void MemoryPool::print_contents(FILE* file, unsigned flags, const char* filter_path) noexcept
|
||||||
|
{
|
||||||
|
#ifdef MEM_DEBUG
|
||||||
|
pool->print_contents(file, flags, filter_path);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
-void MemoryPool::print_contents(const char* filename, unsigned flags, const char* filter_path) FB_NOTHROW
|
||||||
|
+void MemoryPool::print_contents(const char* filename, unsigned flags, const char* filter_path) noexcept
|
||||||
|
{
|
||||||
|
#ifdef MEM_DEBUG
|
||||||
|
pool->print_contents(filename, flags, filter_path);
|
||||||
|
@@ -2950,21 +2950,21 @@ void AutoStorage::ProbeStack() const
|
||||||
|
// in a case when we actually need "new" only with file/line information
|
||||||
|
// this version should be also present as a pair for "delete".
|
||||||
|
#ifdef DEBUG_GDS_ALLOC
|
||||||
|
-void* operator new(size_t s) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+void* operator new(size_t s)
|
||||||
|
{
|
||||||
|
return MemoryPool::globalAlloc(s ALLOC_ARGS);
|
||||||
|
}
|
||||||
|
-void* operator new[](size_t s) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+void* operator new[](size_t s)
|
||||||
|
{
|
||||||
|
return MemoryPool::globalAlloc(s ALLOC_ARGS);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void operator delete(void* mem) FB_NOTHROW
|
||||||
|
+void operator delete(void* mem) noexcept
|
||||||
|
{
|
||||||
|
MemoryPool::globalFree(mem);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void operator delete[](void* mem) FB_NOTHROW
|
||||||
|
+void operator delete[](void* mem) noexcept
|
||||||
|
{
|
||||||
|
MemoryPool::globalFree(mem);
|
||||||
|
}
|
||||||
|
diff --git a/src/common/classes/alloc.h b/src/common/classes/alloc.h
|
||||||
|
index 65f9afbb8a9..44d9e0ea462 100644
|
||||||
|
--- a/src/common/classes/alloc.h
|
||||||
|
+++ b/src/common/classes/alloc.h
|
||||||
|
@@ -58,20 +58,6 @@
|
||||||
|
|
||||||
|
#include <memory.h>
|
||||||
|
|
||||||
|
-#define OOM_EXCEPTION std::bad_alloc
|
||||||
|
-
|
||||||
|
-#if __cplusplus >= 201103L
|
||||||
|
-#define FB_NO_THROW_SPECIFIER
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
-#ifdef FB_NO_THROW_SPECIFIER
|
||||||
|
-#define FB_THROW(x)
|
||||||
|
-#define FB_NOTHROW noexcept
|
||||||
|
-#else
|
||||||
|
-#define FB_THROW(x) throw(x)
|
||||||
|
-#define FB_NOTHROW throw()
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
#ifdef DEBUG_GDS_ALLOC
|
||||||
|
#define FB_NEW new(__FILE__, __LINE__)
|
||||||
|
#define FB_NEW_POOL(pool) new(pool, __FILE__, __LINE__)
|
||||||
|
@@ -106,10 +92,10 @@ class MemoryStats
|
||||||
|
~MemoryStats()
|
||||||
|
{}
|
||||||
|
|
||||||
|
- size_t getCurrentUsage() const FB_NOTHROW { return mst_usage.value(); }
|
||||||
|
- size_t getMaximumUsage() const FB_NOTHROW { return mst_max_usage; }
|
||||||
|
- size_t getCurrentMapping() const FB_NOTHROW { return mst_mapped.value(); }
|
||||||
|
- size_t getMaximumMapping() const FB_NOTHROW { return mst_max_mapped; }
|
||||||
|
+ size_t getCurrentUsage() const noexcept { return mst_usage.value(); }
|
||||||
|
+ size_t getMaximumUsage() const noexcept { return mst_max_usage; }
|
||||||
|
+ size_t getCurrentMapping() const noexcept { return mst_mapped.value(); }
|
||||||
|
+ size_t getMaximumMapping() const noexcept { return mst_max_mapped; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
// Forbid copying/assignment
|
||||||
|
@@ -131,7 +117,7 @@ class MemoryStats
|
||||||
|
size_t mst_max_mapped;
|
||||||
|
|
||||||
|
// These methods are thread-safe due to usage of atomic counters only
|
||||||
|
- void increment_usage(size_t size) FB_NOTHROW
|
||||||
|
+ void increment_usage(size_t size) noexcept
|
||||||
|
{
|
||||||
|
for (MemoryStats* statistics = this; statistics; statistics = statistics->mst_parent)
|
||||||
|
{
|
||||||
|
@@ -141,7 +127,7 @@ class MemoryStats
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- void decrement_usage(size_t size) FB_NOTHROW
|
||||||
|
+ void decrement_usage(size_t size) noexcept
|
||||||
|
{
|
||||||
|
for (MemoryStats* statistics = this; statistics; statistics = statistics->mst_parent)
|
||||||
|
{
|
||||||
|
@@ -149,7 +135,7 @@ class MemoryStats
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- void increment_mapping(size_t size) FB_NOTHROW
|
||||||
|
+ void increment_mapping(size_t size) noexcept
|
||||||
|
{
|
||||||
|
for (MemoryStats* statistics = this; statistics; statistics = statistics->mst_parent)
|
||||||
|
{
|
||||||
|
@@ -159,7 +145,7 @@ class MemoryStats
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- void decrement_mapping(size_t size) FB_NOTHROW
|
||||||
|
+ void decrement_mapping(size_t size) noexcept
|
||||||
|
{
|
||||||
|
for (MemoryStats* statistics = this; statistics; statistics = statistics->mst_parent)
|
||||||
|
{
|
||||||
|
@@ -205,21 +191,21 @@ class MemoryPool
|
||||||
|
#define ALLOC_PASS_ARGS
|
||||||
|
#endif // DEBUG_GDS_ALLOC
|
||||||
|
|
||||||
|
- void* calloc(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||||
|
+ void* calloc(size_t size ALLOC_PARAMS);
|
||||||
|
|
||||||
|
#ifdef LIBC_CALLS_NEW
|
||||||
|
- static void* globalAlloc(size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||||
|
+ static void* globalAlloc(size_t s ALLOC_PARAMS);
|
||||||
|
#else
|
||||||
|
- static void* globalAlloc(size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+ static void* globalAlloc(size_t s ALLOC_PARAMS)
|
||||||
|
{
|
||||||
|
return defaultMemoryManager->allocate(s ALLOC_PASS_ARGS);
|
||||||
|
}
|
||||||
|
#endif // LIBC_CALLS_NEW
|
||||||
|
|
||||||
|
- void* allocate(size_t size ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||||
|
+ void* allocate(size_t size ALLOC_PARAMS);
|
||||||
|
|
||||||
|
- static void globalFree(void* mem) FB_NOTHROW;
|
||||||
|
- void deallocate(void* mem) FB_NOTHROW;
|
||||||
|
+ static void globalFree(void* mem) noexcept;
|
||||||
|
+ void deallocate(void* mem) noexcept;
|
||||||
|
|
||||||
|
// Set context pool for current thread of execution
|
||||||
|
static MemoryPool* setContextPool(MemoryPool* newPool);
|
||||||
|
@@ -229,7 +215,7 @@ class MemoryPool
|
||||||
|
|
||||||
|
// Set statistics group for pool. Usage counters will be decremented from
|
||||||
|
// previously set group and added to new
|
||||||
|
- void setStatsGroup(MemoryStats& stats) FB_NOTHROW;
|
||||||
|
+ void setStatsGroup(MemoryStats& stats) noexcept;
|
||||||
|
|
||||||
|
// Initialize and finalize global memory pool
|
||||||
|
static void init();
|
||||||
|
@@ -241,9 +227,9 @@ class MemoryPool
|
||||||
|
// Print out pool contents. This is debugging routine
|
||||||
|
static const unsigned PRINT_USED_ONLY = 0x01;
|
||||||
|
static const unsigned PRINT_RECURSIVE = 0x02;
|
||||||
|
- void print_contents(FILE*, unsigned flags = 0, const char* filter_path = 0) FB_NOTHROW;
|
||||||
|
+ void print_contents(FILE*, unsigned flags = 0, const char* filter_path = 0) noexcept;
|
||||||
|
// The same routine, but more easily callable from the debugger
|
||||||
|
- void print_contents(const char* filename, unsigned flags = 0, const char* filter_path = 0) FB_NOTHROW;
|
||||||
|
+ void print_contents(const char* filename, unsigned flags = 0, const char* filter_path = 0) noexcept;
|
||||||
|
|
||||||
|
public:
|
||||||
|
struct Finalizer
|
||||||
|
@@ -298,7 +284,7 @@ class MemoryPool
|
||||||
|
|
||||||
|
} // namespace Firebird
|
||||||
|
|
||||||
|
-static inline Firebird::MemoryPool* getDefaultMemoryPool() FB_NOTHROW
|
||||||
|
+static inline Firebird::MemoryPool* getDefaultMemoryPool() noexcept
|
||||||
|
{
|
||||||
|
fb_assert(Firebird::MemoryPool::defaultMemoryManager);
|
||||||
|
return Firebird::MemoryPool::defaultMemoryManager;
|
||||||
|
@@ -355,36 +341,36 @@ class SubsystemContextPoolHolder : public ContextPoolHolder
|
||||||
|
using Firebird::MemoryPool;
|
||||||
|
|
||||||
|
// operators new and delete
|
||||||
|
-extern void* operator new(size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||||
|
-extern void* operator new[](size_t s ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION);
|
||||||
|
-extern void operator delete(void* mem ALLOC_PARAMS) FB_NOTHROW;
|
||||||
|
-extern void operator delete[](void* mem ALLOC_PARAMS) FB_NOTHROW;
|
||||||
|
+extern void* operator new(size_t s ALLOC_PARAMS);
|
||||||
|
+extern void* operator new[](size_t s ALLOC_PARAMS);
|
||||||
|
+extern void operator delete(void* mem ALLOC_PARAMS) noexcept;
|
||||||
|
+extern void operator delete[](void* mem ALLOC_PARAMS) noexcept;
|
||||||
|
|
||||||
|
|
||||||
|
-inline void* operator new(size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+inline void* operator new(size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS)
|
||||||
|
{
|
||||||
|
return pool.allocate(s ALLOC_PASS_ARGS);
|
||||||
|
}
|
||||||
|
-inline void* operator new[](size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS) FB_THROW (OOM_EXCEPTION)
|
||||||
|
+inline void* operator new[](size_t s, Firebird::MemoryPool& pool ALLOC_PARAMS)
|
||||||
|
{
|
||||||
|
return pool.allocate(s ALLOC_PASS_ARGS);
|
||||||
|
}
|
||||||
|
|
||||||
|
-inline void operator delete(void* mem, Firebird::MemoryPool& pool ALLOC_PARAMS) FB_NOTHROW
|
||||||
|
+inline void operator delete(void* mem, Firebird::MemoryPool& pool ALLOC_PARAMS) noexcept
|
||||||
|
{
|
||||||
|
MemoryPool::globalFree(mem);
|
||||||
|
}
|
||||||
|
-inline void operator delete[](void* mem, Firebird::MemoryPool& pool ALLOC_PARAMS) FB_NOTHROW
|
||||||
|
+inline void operator delete[](void* mem, Firebird::MemoryPool& pool ALLOC_PARAMS) noexcept
|
||||||
|
{
|
||||||
|
MemoryPool::globalFree(mem);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if __cplusplus >= 201402L
|
||||||
|
-inline void operator delete(void* mem, std::size_t s ALLOC_PARAMS) FB_NOTHROW
|
||||||
|
+inline void operator delete(void* mem, std::size_t s ALLOC_PARAMS) noexcept
|
||||||
|
{
|
||||||
|
MemoryPool::globalFree(mem);
|
||||||
|
}
|
||||||
|
-inline void operator delete[](void* mem, std::size_t s ALLOC_PARAMS) FB_NOTHROW
|
||||||
|
+inline void operator delete[](void* mem, std::size_t s ALLOC_PARAMS) noexcept
|
||||||
|
{
|
||||||
|
MemoryPool::globalFree(mem);
|
||||||
|
}
|
||||||
|
@@ -392,8 +378,8 @@ inline void operator delete[](void* mem, std::size_t s ALLOC_PARAMS) FB_NOTHROW
|
||||||
|
|
||||||
|
#ifdef DEBUG_GDS_ALLOC
|
||||||
|
|
||||||
|
-extern void operator delete(void* mem) FB_NOTHROW;
|
||||||
|
-extern void operator delete[](void* mem) FB_NOTHROW;
|
||||||
|
+extern void operator delete(void* mem) noexcept;
|
||||||
|
+extern void operator delete[](void* mem) noexcept;
|
||||||
|
|
||||||
|
#endif // DEBUG_GDS_ALLOC
|
||||||
|
|
21255
firebird-4.0.0.2496-ttmath-abseil-4.0.0.patch
Normal file
21255
firebird-4.0.0.2496-ttmath-abseil-4.0.0.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,7 @@
|
|||||||
%define majver %(echo %version | cut -d. -f 1-2)
|
%define majver %(echo %version | cut -d. -f 1-2)
|
||||||
Name: firebird
|
Name: firebird
|
||||||
Version: 4.0.0.2496
|
Version: 4.0.0.2496
|
||||||
Release: 1mamba
|
Release: 3mamba
|
||||||
Summary: SQL Relational Database
|
Summary: SQL Relational Database
|
||||||
Group: Applications/Databases
|
Group: Applications/Databases
|
||||||
Vendor: openmamba
|
Vendor: openmamba
|
||||||
@ -21,6 +21,12 @@ Source4: firebird.service
|
|||||||
Source5: firebird-tmpfiles.conf
|
Source5: firebird-tmpfiles.conf
|
||||||
Source6: firebird-sysusers.conf
|
Source6: firebird-sysusers.conf
|
||||||
Source7: firebird-default.password
|
Source7: firebird-default.password
|
||||||
|
Patch0: firebird-4.0.0.2496-add-pkgconfig-files.patch
|
||||||
|
Patch1: firebird-4.0.0.2496-no-copy-from-icu.patch
|
||||||
|
Patch2: firebird-4.0.0.2496-cloop-honour-build-flags.patch
|
||||||
|
Patch3: firebird-4.0.0.2496-c++17.patch
|
||||||
|
Patch4: firebird-4.0.0.2496-noexcept.patch
|
||||||
|
Patch5: firebird-4.0.0.2496-ttmath-abseil-4.0.0.patch
|
||||||
License: MPL 1.1
|
License: MPL 1.1
|
||||||
## AUTOBUILDREQ-BEGIN
|
## AUTOBUILDREQ-BEGIN
|
||||||
BuildRequires: glibc-devel
|
BuildRequires: glibc-devel
|
||||||
@ -92,31 +98,45 @@ This package contains multi-threaded, non-local client libraries for Firebird SQ
|
|||||||
%setup -q -n Firebird-%{version}-0
|
%setup -q -n Firebird-%{version}-0
|
||||||
#-D -T
|
#-D -T
|
||||||
#:<< __EOF
|
#:<< __EOF
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1 -b .no-copy-from-icu
|
||||||
|
%patch2 -p1 -b .cloop-honour-build-flags
|
||||||
|
%patch3 -p1 -b .c++17
|
||||||
|
%patch4 -p1 -b .noexcept
|
||||||
|
%patch5 -p1 -b .ttmath-abseil-4.0.0
|
||||||
|
|
||||||
NOCONFIGURE=1 ./autogen.sh
|
NOCONFIGURE=1 ./autogen.sh
|
||||||
|
|
||||||
%build
|
%build
|
||||||
#:<< __EOF
|
#:<< __EOF
|
||||||
|
|
||||||
|
export CFLAGS="%{optflags} -fno-strict-aliasing"
|
||||||
|
export CXXFLAGS="${CFLAGS} -fno-delete-null-pointer-checks"
|
||||||
|
|
||||||
%configure \
|
%configure \
|
||||||
--disable-rpath \
|
--disable-rpath \
|
||||||
--with-fbconf=%{_sysconfdir}/firebird \
|
--with-system-editline \
|
||||||
--with-fbinclude=%{_includedir}/firebird \
|
--with-fbinclude=%{_includedir} \
|
||||||
|
--with-fbsbin=%{_libdir}/firebird/bin \
|
||||||
--with-fbbin=%{_bindir} \
|
--with-fbbin=%{_bindir} \
|
||||||
|
--with-fbconf=%{_sysconfdir}/firebird \
|
||||||
|
--with-fblib=%{_libdir} \
|
||||||
--with-fbdoc=%{_docdir}/firebird \
|
--with-fbdoc=%{_docdir}/firebird \
|
||||||
|
--with-fbsample=%{_defaultdocdir}/firebird/sample \
|
||||||
|
--with-fbsample-db=%{_localstatedir}/lib/firebird/data \
|
||||||
--with-fbhelp=%{_docdir}/firebird/help \
|
--with-fbhelp=%{_docdir}/firebird/help \
|
||||||
--with-fbintl=%{_libdir}/firebird/intl \
|
--with-fbintl=%{_libdir}/firebird/intl \
|
||||||
--with-fbsbin=%{_libdir}/firebird/bin \
|
--with-fbmisc=%{_datadir}/firebird/misc \
|
||||||
--with-fblib=%{_libdir} \
|
|
||||||
--with-fbsecure-db=/var/lib/firebird/system \
|
--with-fbsecure-db=/var/lib/firebird/system \
|
||||||
--with-fbmsg=%{_libdir}/firebird/msg \
|
--with-fbmsg=%{_libdir}/firebird/msg \
|
||||||
--with-fblog=/var/log/firebird \
|
--with-fblog=/var/log/firebird \
|
||||||
--with-fbglock=/run/firebird \
|
--with-fbglock=/run/firebird \
|
||||||
--with-fbplugins=%{_libdir}/firebird/plugins \
|
--with-fbplugins=%{_libdir}/firebird/plugins \
|
||||||
--with-fbtzdata=%{_localstatedir}/lib/%{name}/tzdata \
|
--with-fbtzdata=%{_localstatedir}/lib/%{name}/tzdata
|
||||||
--with-system-editline \
|
|
||||||
--without-fbmisc \
|
# --without-fbmisc \
|
||||||
--without-fbsample \
|
# --without-fbsample \
|
||||||
--without-fbsample-db
|
# --without-fbsample-db
|
||||||
|
|
||||||
%make
|
%make
|
||||||
|
|
||||||
@ -130,6 +150,9 @@ cd gen
|
|||||||
cd ..
|
cd ..
|
||||||
install -d -m0755 %{buildroot}
|
install -d -m0755 %{buildroot}
|
||||||
cp -av gen/buildroot/* %{buildroot}/
|
cp -av gen/buildroot/* %{buildroot}/
|
||||||
|
|
||||||
|
mkdir -p %{buildroot}%{_libdir}/pkgconfig
|
||||||
|
cp -v gen/install/misc/*.pc %{buildroot}%{_libdir}/pkgconfig/
|
||||||
|
|
||||||
install -Dm644 %{SOURCE4} %{buildroot}%{_unitdir}/firebird.service
|
install -Dm644 %{SOURCE4} %{buildroot}%{_unitdir}/firebird.service
|
||||||
install -Dm644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/firebird.conf
|
install -Dm644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/firebird.conf
|
||||||
@ -222,8 +245,12 @@ fi
|
|||||||
%dir %{_libdir}/firebird/bin
|
%dir %{_libdir}/firebird/bin
|
||||||
%{_libdir}/firebird/bin/*
|
%{_libdir}/firebird/bin/*
|
||||||
%dir %{_localstatedir}/lib/firebird
|
%dir %{_localstatedir}/lib/firebird
|
||||||
|
%dir %{_localstatedir}/lib/firebird/data
|
||||||
|
%{_localstatedir}/lib/firebird/data/*
|
||||||
%dir %{_localstatedir}/lib/firebird/tzdata
|
%dir %{_localstatedir}/lib/firebird/tzdata
|
||||||
%{_localstatedir}/lib/firebird/tzdata/*
|
%{_localstatedir}/lib/firebird/tzdata/*
|
||||||
|
%dir %{_datadir}/firebird/misc
|
||||||
|
%{_datadir}/firebird/misc/*
|
||||||
%doc doc/license/IDPL.txt
|
%doc doc/license/IDPL.txt
|
||||||
%doc doc/license/README.license.usage.txt
|
%doc doc/license/README.license.usage.txt
|
||||||
|
|
||||||
@ -235,6 +262,7 @@ fi
|
|||||||
%{_includedir}/firebird/*
|
%{_includedir}/firebird/*
|
||||||
%{_libdir}/libfbclient.so
|
%{_libdir}/libfbclient.so
|
||||||
%{_libdir}/libib_util.so
|
%{_libdir}/libib_util.so
|
||||||
|
%{_libdir}/pkgconfig/fbclient.pc
|
||||||
|
|
||||||
%files -n libfbclient
|
%files -n libfbclient
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
@ -250,6 +278,10 @@ fi
|
|||||||
%{_datadir}/doc/firebird/*
|
%{_datadir}/doc/firebird/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Nov 28 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 4.0.0.2496-2mamba
|
||||||
|
- added patches from Fedora, including pkg-config file
|
||||||
|
- fix includes installation directory
|
||||||
|
|
||||||
* Thu Jun 17 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 4.0.0.2496-1mamba
|
* Thu Jun 17 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 4.0.0.2496-1mamba
|
||||||
- update to 4.0.0.2496
|
- update to 4.0.0.2496
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user