journalctl: allow statically linked build

The journalctl tool may be needed on cross compilation hosts in order
to run --update-catalog against a target rootfs.

To avoid reliability issues caused by shared linking allow journalctl
to be linked statically.
This commit is contained in:
James Hilliard 2022-07-27 15:28:09 -06:00 committed by Yu Watanabe
parent 219fa78b5f
commit 0a0d489968
2 changed files with 30 additions and 19 deletions

View file

@ -2263,11 +2263,19 @@ public_programs += executable(
install_rpath : rootpkglibdir,
install : true)
if get_option('link-journalctl-shared')
journalctl_link_with = [libshared]
else
journalctl_link_with = [libsystemd_static,
libshared_static,
libbasic_gcrypt]
endif
public_programs += executable(
'journalctl',
journalctl_sources,
include_directories : includes,
link_with : [libshared],
link_with : [journalctl_link_with],
dependencies : [threads,
libdl,
libxz,
@ -4357,6 +4365,7 @@ foreach tuple : [
['link-systemctl-shared', get_option('link-systemctl-shared')],
['link-networkd-shared', get_option('link-networkd-shared')],
['link-timesyncd-shared', get_option('link-timesyncd-shared')],
['link-journalctl-shared', get_option('link-journalctl-shared')],
['link-boot-shared', get_option('link-boot-shared')],
['first-boot-full-preset'],
['fexecve'],

View file

@ -25,6 +25,8 @@ option('link-networkd-shared', type: 'boolean',
description : 'link systemd-networkd and its helpers to libsystemd-shared.so')
option('link-timesyncd-shared', type: 'boolean',
description : 'link systemd-timesyncd and its helpers to libsystemd-shared.so')
option('link-journalctl-shared', type: 'boolean',
description : 'link journalctl against libsystemd-shared.so')
option('link-boot-shared', type: 'boolean',
description : 'link bootctl and systemd-bless-boot against libsystemd-shared.so')
option('first-boot-full-preset', type: 'boolean', value: false,