diff options
author | Peter Eisentraut | 2024-08-12 06:30:39 +0000 |
---|---|---|
committer | Peter Eisentraut | 2024-08-12 06:30:39 +0000 |
commit | f1976df5eaf277f6f761306ce06ae32141438096 (patch) | |
tree | 0653c1935bb2fbe9c86b600e91a5b4c24061df56 | |
parent | 94980c45674fc2d1125f3ba7ce0bb5d34f770e00 (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/Makefile | 5 | ||||
-rw-r--r-- | src/common/meson.build | 5 |
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', ) |