summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meson.build3
-rw-r--r--src/basic/mempool.c2
-rw-r--r--src/basic/mempool.h3
-rw-r--r--src/libelogind/disable-mempool.c5
-rw-r--r--src/libelogind/meson.build30
-rw-r--r--src/shared/enable-mempool.c5
-rw-r--r--src/shared/meson.build1
7 files changed, 34 insertions, 15 deletions
diff --git a/meson.build b/meson.build
index 36163550b..0351ad820 100644
--- a/meson.build
+++ b/meson.build
@@ -1567,6 +1567,7 @@ libelogind_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libelogind_sy
libelogind = shared_library(
'elogind',
version : libelogind_version,
+ disable_mempool_c,
include_directories : includes,
link_args : ['-shared',
'-Wl,--version-script=' + libelogind_sym_path],
@@ -1673,6 +1674,7 @@ subdir('src/test')
test_dlopen = executable(
'test-dlopen',
test_dlopen_c,
+ disable_mempool_c,
include_directories : includes,
link_with : [libbasic],
dependencies : [libdl])
@@ -1693,6 +1695,7 @@ test_dlopen = executable(
# nss = shared_library(
# 'nss_' + module,
# 'src/nss-@0@/nss-@0@.c'.format(module),
+# disable_mempool_c,
# version : '2',
# include_directories : includes,
# # Note that we link NSS modules with '-z nodelete' so that mempools never get orphaned
diff --git a/src/basic/mempool.c b/src/basic/mempool.c
index aaf46ceda..24a7d2b11 100644
--- a/src/basic/mempool.c
+++ b/src/basic/mempool.c
@@ -78,6 +78,8 @@ bool mempool_enabled(void) {
if (!is_main_thread())
return false;
+ if (!mempool_use_allowed)
+ b = false;
if (b < 0)
b = getenv_bool("SYSTEMD_MEMPOOL") != 0;
diff --git a/src/basic/mempool.h b/src/basic/mempool.h
index e223fc16f..a9d6b4691 100644
--- a/src/basic/mempool.h
+++ b/src/basic/mempool.h
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once
-
+//#include <stdbool.h>
#include <stddef.h>
struct pool;
@@ -23,6 +23,7 @@ static struct mempool pool_name = { \
.at_least = alloc_at_least, \
}
+extern const bool mempool_use_allowed;
bool mempool_enabled(void);
#if VALGRIND
diff --git a/src/libelogind/disable-mempool.c b/src/libelogind/disable-mempool.c
new file mode 100644
index 000000000..c86e55340
--- /dev/null
+++ b/src/libelogind/disable-mempool.c
@@ -0,0 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1+ */
+
+//#include "mempool.h"
+
+const bool mempool_use_allowed = false;
diff --git a/src/libelogind/meson.build b/src/libelogind/meson.build
index dfecea3bc..2e5e8706a 100644
--- a/src/libelogind/meson.build
+++ b/src/libelogind/meson.build
@@ -80,6 +80,14 @@ sd_login_c = files('sd-login/sd-login.c')
# sd-resolve/sd-resolve.c
# sd-utf8/sd-utf8.c
# '''.split()) + id128_sources + sd_daemon_c + sd_event_c + sd_login_c
+#
+# disable_mempool_c = files('disable-mempool.c')
+#
+# libsystemd_c_args = ['-fvisibility=default']
+#
+# libsystemd_static = static_library(
+# 'systemd_static',
+# libsystemd_sources,
#else
libelogind_sources = files('''
sd-bus/bus-common-errors.c
@@ -126,28 +134,22 @@ libelogind_sources = files('''
sd-id128/sd-id128.c
'''.split()) + sd_login_c
#endif // 0
-
-libelogind_c_args = ['-fvisibility=default']
-
-libelogind_static = static_library(
- 'elogind_static',
- libelogind_sources,
install : false,
include_directories : includes,
link_with : libbasic,
#if 0 /// elogind does not need librt
# dependencies : [threads,
# librt],
+# c_args : libsystemd_c_args)
+#
+# libsystemd_sym = 'src/libsystemd/libsystemd.sym'
+#
+# libsystemd_pc = configure_file(
+# input : 'libsystemd.pc.in',
+# output : 'libsystemd.pc',
+# install_data(libsystemd_pc,
#else
dependencies : [threads],
#endif // 0
- c_args : libelogind_c_args)
-
-libelogind_sym = 'src/libelogind/libelogind.sym'
-
-libelogind_pc = configure_file(
- input : 'libelogind.pc.in',
- output : 'libelogind.pc',
configuration : substs)
-install_data(libelogind_pc,
install_dir : pkgconfiglibdir)
diff --git a/src/shared/enable-mempool.c b/src/shared/enable-mempool.c
new file mode 100644
index 000000000..68d817f55
--- /dev/null
+++ b/src/shared/enable-mempool.c
@@ -0,0 +1,5 @@
+/* SPDX-License-Identifier: LGPL-2.1+ */
+
+//#include "mempool.h"
+
+const bool mempool_use_allowed = true;
diff --git a/src/shared/meson.build b/src/shared/meson.build
index e5cd4d60c..a48bee9c7 100644
--- a/src/shared/meson.build
+++ b/src/shared/meson.build
@@ -37,6 +37,7 @@
# dropin.h
# efivars.c
# efivars.h
+# enable-mempool.c
# fdset.c
# fdset.h
# firewall-util.h