diff options
author | Felipe Sateler <fsateler@debian.org> | 2018-05-22 15:08:57 -0400 |
---|---|---|
committer | Sven Eden <yamakuzure@gmx.net> | 2018-08-24 16:47:08 +0200 |
commit | 81f6f7b349ab6573efcb0ef5c5994b0e7e8c8d10 (patch) | |
tree | 19493551324e8a053b4b1d7acb46039f826af411 /meson.build | |
parent | a6aa5c9e8f623797c3868ab0bc5805543b4ef1b7 (diff) |
build-sys: Add option to link systemctl statically
Systemctl is special because it is required for many tasks that may need to
be performed when the system is not fully configured and/or partially
broken:
1. Installing/Uninstalling services during OS installs and upgrades
2. Shutting down the system
Therefore reduce the number of dependencies that systemctl pulls in, by
not linking to systemd-shared. This brings a bit of resilience to
systemctl (and its aliases shutdown, reboot, etc), by linking against
less external libraries.
Because this extra resilience comes at a cost of approximately 580 KB
extra space, this is done behind a meson build option.
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/meson.build b/meson.build index 40f2e21b4..c226dfaed 100644 --- a/meson.build +++ b/meson.build @@ -1927,6 +1927,7 @@ executable('elogind-user-runtime-dir', executable('elogind-user-runtime-dir', executable('elogind-user-runtime-dir', executable('elogind-user-runtime-dir', +executable('elogind-user-runtime-dir', user_runtime_dir_sources, include_directories : includes, link_with : [libshared, liblogind_core], @@ -1986,9 +1987,19 @@ endif # install : true) # public_programs += [exe] # +# +# if get_option('link-systemctl-shared') +# systemctl_link_with = [libshared] +# else +# systemctl_link_with = [libsystemd_static, +# libshared_static, +# libjournal_client, +# libbasic_gcrypt] +# endif +# # exe = executable('systemctl', 'src/systemctl/systemctl.c', # include_directories : includes, -# link_with : [libshared], +# link_with : systemctl_link_with, # dependencies : [threads, # libcap, # libselinux, |