From 4d0f8cae5a89fa3bc5ed577b6e758e2ffe92b77e Mon Sep 17 00:00:00 2001 From: Brahmajit Das Date: Sun, 1 Sep 2024 09:51:15 +0000 Subject: [PATCH] libsemanage: Mimic GNU basename() API for non-glibc library e.g. musl musl only provides POSIX version of basename and it has also removed providing it via string.h header [1] which now results in compile errors with newer compilers e.g. clang-18 [1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 Signed-off-by: Brahmajit Das --- libsemanage/src/direct_api.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libsemanage/src/direct_api.c b/libsemanage/src/direct_api.c index d740070d53..609c32d53d 100644 --- a/libsemanage/src/direct_api.c +++ b/libsemanage/src/direct_api.c @@ -63,6 +63,9 @@ #define PIPE_READ 0 #define PIPE_WRITE 1 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +#if !defined(__GLIBC__) +#define basename(src) (strrchr(src, '/') ? strrchr(src, '/') + 1 : src) +#endif static void semanage_direct_destroy(semanage_handle_t * sh); static int semanage_direct_disconnect(semanage_handle_t * sh);