From 55e812c7848d073d6a15f7093a019576c3dcd66c Mon Sep 17 00:00:00 2001
From: Daniel Danzberger
Date: Mon, 2 Dec 2024 15:24:23 +0100
Subject: [PATCH] unix: Fix linker errors when building without sdevent
When building without systemd event support (-DLWS_WITH_SDEVENT=OFF) on
a system that has libsystemd headers installed, lib/plat/unix-systemd.c
is build in anyway.
The final libwebsockets library has then references to symbols from
libsystemd even though it won't be linked.
Resulting in the follwoing linker errros:
--
/usr/bin/ld: /usr/local/lib/libwebsockets.so: undefined reference to `sd_is_socket_inet'
/usr/bin/ld: /usr/local/lib/libwebsockets.so: undefined reference to `sd_is_socket_unix'
/usr/bin/ld: /usr/local/lib/libwebsockets.so: undefined reference to `sd_listen_fds'
--
This commit ensures that unix-system.c is only build when LWS_WITH_SDEVENT is set and
the system has libsystemd headers installed.
Signed-off-by: Daniel Danzberger
---
lib/plat/unix/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/plat/unix/CMakeLists.txt b/lib/plat/unix/CMakeLists.txt
index e3c23c995..bd2922436 100644
--- a/lib/plat/unix/CMakeLists.txt
+++ b/lib/plat/unix/CMakeLists.txt
@@ -63,7 +63,7 @@ if (LWS_WITH_NETWORK)
list(APPEND SOURCES plat/unix/unix-resolv.c)
endif()
endif()
- if (LWS_HAVE_SYSTEMD_H)
+ if (LWS_WITH_SDEVENT AND LWS_HAVE_SYSTEMD_H)
list(APPEND SOURCES
plat/unix/unix-systemd.c
)