From fff9c9ba4693d6a8fc69e27f321712e357dc87fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 30 Jun 2026 14:06:28 +0200 Subject: [PATCH] meson: allow manager to be linked statically After stripping, in an unoptimized build with glibc, we get a 8.7 MB binary: $ file build-static/systemd build-static/systemd: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=1ec004bf61b775d284d909a818a3c4f63f83f055, for GNU/Linux 3.2.0, stripped $ ls -lh build-static/systemd -rwxr-xr-x 1 zbyszek zbyszek 8.7M Jun 30 14:07 build-static/systemd --- src/core/meson.build | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/meson.build b/src/core/meson.build index 3708caf4e0b..2d3ed4cff2a 100644 --- a/src/core/meson.build +++ b/src/core/meson.build @@ -209,6 +209,9 @@ systemd_deps = [ libselinux_cflags, ] +systemd_link_args = get_option('build-static') ? ['-static'] : [] +systemd_libs = get_option('build-static') ? core_libs_static : core_libs_shared + executor_libs = get_option('link-executor-shared') ? core_libs_shared : core_libs_static if conf.get('SYSTEMD_MULTICALL_BINARY') == 1 @@ -226,7 +229,8 @@ executables += [ 'dbus' : true, 'public' : true, 'sources' : systemd_sources, - 'link_with' : core_libs_shared, + 'link_args' : systemd_link_args, + 'link_with' : systemd_libs, 'dependencies' : systemd_deps, },