gentoo-overlay/sys-apps/systemd/files/0021-Don-t-use-malloc_trim-...

75 lines
2.4 KiB
Diff

From aa166c09ba2b70fa093a6ca1d2995e461b16a4c0 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Sun, 18 Aug 2024 03:08:13 -0500
Subject: [PATCH 21/34] Don't use malloc_trim or malloc_info
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
The musl allocator does not define these functions.
This probably cannot be upstreamed.
Signed-off-by: Alexander Miroshnichenko <alex@millerson.name>
---
src/libsystemd/sd-event/sd-event.c | 2 +-
src/shared/bus-util.c | 4 +++-
src/shared/common-signal.c | 2 ++
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
index 73a95e7fa135..c62dc07165ab 100644
--- a/src/libsystemd/sd-event/sd-event.c
+++ b/src/libsystemd/sd-event/sd-event.c
@@ -1891,7 +1891,7 @@ _public_ int sd_event_trim_memory(void) {
usec_t before_timestamp = now(CLOCK_MONOTONIC);
hashmap_trim_pools();
- r = malloc_trim(0);
+ r = 0;
usec_t after_timestamp = now(CLOCK_MONOTONIC);
if (r > 0)
diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
index 30f9602b1edb..b1a8da36612b 100644
--- a/src/shared/bus-util.c
+++ b/src/shared/bus-util.c
@@ -755,7 +755,7 @@ static int method_dump_memory_state_by_fd(sd_bus_message *message, void *userdat
_cleanup_close_ int fd = -EBADF;
size_t dump_size;
FILE *f;
- int r;
+ int r = 0;
assert(message);
@@ -763,7 +763,9 @@ static int method_dump_memory_state_by_fd(sd_bus_message *message, void *userdat
if (!f)
return -ENOMEM;
+#ifdef __GLIBC__
r = RET_NERRNO(malloc_info(/* options= */ 0, f));
+#endif
if (r < 0)
return r;
diff --git a/src/shared/common-signal.c b/src/shared/common-signal.c
index 8e70e365dd69..bb68fc56b664 100644
--- a/src/shared/common-signal.c
+++ b/src/shared/common-signal.c
@@ -66,10 +66,12 @@ int sigrtmin18_handler(sd_event_source *s, const struct signalfd_siginfo *si, vo
break;
}
+#ifdef __GLIBC__
if (malloc_info(0, f) < 0) {
log_error_errno(errno, "Failed to invoke malloc_info(): %m");
break;
}
+#endif
(void) memstream_dump(LOG_INFO, &m);
break;
--
2.41.0