summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut2024-08-12 06:30:39 +0000
committerPeter Eisentraut2024-08-12 06:30:39 +0000
commitf1976df5eaf277f6f761306ce06ae32141438096 (patch)
tree0653c1935bb2fbe9c86b600e91a5b4c24061df56
parent94980c45674fc2d1125f3ba7ce0bb5d34f770e00 (diff)
Remove fe_memutils from libpgcommon_shlib
libpq must not use palloc/pfree. It's not allowed to exit on allocation failure, and mixing the frontend pfree with malloc is architecturally unsound. Remove fe_memutils from the shlib build entirely, to keep devs from accidentally depending on it in the future. Author: Jacob Champion <[email protected]> Discussion: https://www.postgresql.org/message-id/CAOYmi+=pg=W5L1h=3MEP_EB24jaBu2FyATrLXqQHGe7cpuvwyg@mail.gmail.com
-rw-r--r--src/common/Makefile5
-rw-r--r--src/common/meson.build5
2 files changed, 6 insertions, 4 deletions
diff --git a/src/common/Makefile b/src/common/Makefile
index 3d83299432b..89ef61c52a6 100644
--- a/src/common/Makefile
+++ b/src/common/Makefile
@@ -102,14 +102,15 @@ endif
# A few files are currently only built for frontend, not server.
# logging.c is excluded from OBJS_FRONTEND_SHLIB (shared library) as
# a matter of policy, because it is not appropriate for general purpose
-# libraries such as libpq to report errors directly.
+# libraries such as libpq to report errors directly. fe_memutils.c is
+# excluded because libpq must not exit() on allocation failure.
OBJS_FRONTEND_SHLIB = \
$(OBJS_COMMON) \
- fe_memutils.o \
restricted_token.o \
sprompt.o
OBJS_FRONTEND = \
$(OBJS_FRONTEND_SHLIB) \
+ fe_memutils.o \
logging.o
# foo.o, foo_shlib.o, and foo_srv.o are all built from foo.c
diff --git a/src/common/meson.build b/src/common/meson.build
index de68e408fa3..1a564e1dce1 100644
--- a/src/common/meson.build
+++ b/src/common/meson.build
@@ -101,17 +101,18 @@ common_sources_cflags = {
# A few files are currently only built for frontend, not server.
# logging.c is excluded from OBJS_FRONTEND_SHLIB (shared library) as
# a matter of policy, because it is not appropriate for general purpose
-# libraries such as libpq to report errors directly.
+# libraries such as libpq to report errors directly. fe_memutils.c is
+# excluded because libpq must not exit() on allocation failure.
common_sources_frontend_shlib = common_sources
common_sources_frontend_shlib += files(
- 'fe_memutils.c',
'restricted_token.c',
'sprompt.c',
)
common_sources_frontend_static = common_sources_frontend_shlib
common_sources_frontend_static += files(
+ 'fe_memutils.c',
'logging.c',
)