From f4ee10a2829e8b10f749de59b2885efb959e7ffa Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sun, 9 Apr 2017 14:08:53 -0400 Subject: [PATCH] meson: create a static version of libshared and link libcore and some tests to it This is what autoconf-based build does, and it makes test-bus-error and test-engine able to access the bus error mapping table. OTOH, this is a heavy price to pay: it would be excellent to link libcore.a to libsystemd-shared-NNN.so. Otherwise we duplicate the same code in 'systemd' and 'libsystemd-shared-NNN.so'. -rwxrwxr-x. 1 4075544 Apr 6 20:30 systemd* <-- libcore linked against libsystemd-shared.so -rwxrwxr-x. 1 5596504 Apr 9 14:07 systemd* <-- libcore linked against libsystemd-shared.a v2: - update for 6b5cf3ea621a5bfd218cd2249e066a52c0e73657 --- meson.build | 6 ++- src/core/meson.build | 2 +- src/libsystemd/meson.build | 4 -- src/shared/meson.build | 18 +++++++ src/test/meson.build | 130 ++++++++++++++++++++++++++++++++------------- 5 files changed, 116 insertions(+), 44 deletions(-) diff --git a/meson.build b/meson.build index ffdd590..e2e2843 100644 --- a/meson.build +++ b/meson.build @@ -1044,7 +1044,8 @@ executable('systemd', librt, libseccomp, libselinux, - libmount], + libmount, + libblkid], install : true, install_dir : rootlibexecdir) @@ -1057,7 +1058,8 @@ executable('systemd-analyze', librt, libseccomp, libselinux, - libmount], + libmount, + libblkid], install : true) executable('systemd-journald', diff --git a/src/core/meson.build b/src/core/meson.build index 3d2f9f3..f6d3e7f 100644 --- a/src/core/meson.build +++ b/src/core/meson.build @@ -146,7 +146,7 @@ libcore = static_library( load_fragment_gperf_c, load_fragment_gperf_nulstr_c, include_directories : includes, - link_with : [libshared], + link_with : [libshared_static], dependencies : [threads, libpam, libaudit, diff --git a/src/libsystemd/meson.build b/src/libsystemd/meson.build index 5df62ac..999347d 100644 --- a/src/libsystemd/meson.build +++ b/src/libsystemd/meson.build @@ -129,10 +129,6 @@ tests += [ [], [threads]], - [['src/libsystemd/sd-bus/test-bus-error.c'], - [], - []], - [['src/libsystemd/sd-bus/test-bus-gvariant.c'], [], [libglib, diff --git a/src/shared/meson.build b/src/shared/meson.build index bbe08e9..3024db6 100644 --- a/src/shared/meson.build +++ b/src/shared/meson.build @@ -144,6 +144,24 @@ libshared = shared_library( install : true, install_dir : rootlibexecdir) +libshared_static = static_library( + libshared_name, + shared_sources, + basic_sources, + include_directories : includes, + dependencies : [threads, + librt, + libcap, + libacl, + libcryptsetup, + libiptc, + libseccomp, + libselinux, + libidn, + libxz, + liblz4, + libblkid]) + if conf.get('HAVE_LIBIPTC', 0) == 1 libfirewall = static_library( 'firewall', diff --git a/src/test/meson.build b/src/test/meson.build index df074d8..e68e6bd 100644 --- a/src/test/meson.build +++ b/src/test/meson.build @@ -23,40 +23,60 @@ tests += [ []], [['src/test/test-engine.c'], - [libcore], - [librt, + [libcore, + libudev, + libsystemd], + [threads, + librt, libseccomp, libselinux, - libmount]], + libmount, + libblkid]], [['src/test/test-job-type.c'], - [libcore], - [librt, + [libcore, + libudev, + libsystemd], + [threads, + librt, libseccomp, libselinux, - libmount]], + libmount, + libblkid]], [['src/test/test-ns.c'], - [libcore], - [librt, + [libcore, + libudev, + libsystemd], + [threads, + librt, libseccomp, libselinux, - libmount], + libmount, + libblkid], '', 'unsafe'], [['src/test/test-loopback.c'], - [libcore], - [librt, + [libcore, + libudev, + libsystemd], + [threads, + librt, libseccomp, libselinux, - libmount]], + libmount, + libblkid]], [['src/test/test-hostname.c'], - [libcore], - [librt, + [libcore, + libudev, + libsystemd], + [threads, + librt, libseccomp, libselinux, - libmount], + libmount, + libblkid], '', 'unsafe'], [['src/test/test-dns-domain.c'], @@ -70,18 +90,26 @@ tests += [ 'ENABLE_EFI'], [['src/test/test-unit-name.c'], - [libcore], - [librt, + [libcore, + libudev, + libsystemd], + [threads, + librt, libseccomp, libselinux, - libmount]], + libmount, + libblkid]], [['src/test/test-unit-file.c'], - [libcore], - [librt, + [libcore, + libudev, + libsystemd], + [threads, + librt, libseccomp, libselinux, - libmount]], + libmount, + libblkid]], [['src/test/test-utf8.c'], [libshared], @@ -100,7 +128,7 @@ tests += [ []], [['src/test/test-copy.c'], - [libshared], + [libshared_static], []], [['src/test/test-sigbus.c'], @@ -237,8 +265,10 @@ tests += [ []], [['src/test/test-namespace.c'], - [libcore], - []], + [libcore, + libudev, + libsystemd], + [libblkid]], [['src/test/test-verbs.c'], [libshared], @@ -407,11 +437,15 @@ tests += [ [['src/test/test-cgroup-mask.c'], - [libcore], - [librt, + [libcore, + libudev, + libsystemd], + [threads, + librt, libseccomp, libselinux, - libmount]], + libmount, + libblkid]], [['src/test/test-cgroup-util.c'], [libshared], @@ -434,18 +468,26 @@ tests += [ []], [['src/test/test-path.c'], - [libcore], - [librt, + [libcore, + libudev, + libsystemd], + [threads, + librt, libseccomp, libselinux, - libmount]], + libmount, + libblkid]], [['src/test/test-execute.c'], - [libcore], - [librt, + [libcore, + libudev, + libsystemd], + [threads, + librt, libseccomp, libselinux, - libmount]], + libmount, + libblkid]], [['src/test/test-siphash24.c'], [libshared], @@ -456,7 +498,8 @@ tests += [ []], [['src/test/test-install.c'], - [libcore], + [libcore, + libsystemd], [], '', 'manual'], @@ -465,11 +508,15 @@ tests += [ []], [['src/test/test-sched-prio.c'], - [libcore], - [librt, + [libcore, + libudev, + libsystemd], + [threads, + librt, libseccomp, libselinux, - libmount]], + libmount, + libblkid]], [['src/test/test-conf-files.c'], [libshared], @@ -612,6 +659,15 @@ tests += [ ############################################################ tests += [ + [['src/libsystemd/sd-bus/test-bus-error.c'], + [libshared_static, + libsystemd], + []], + ] + +############################################################ + +tests += [ [['src/libsystemd-network/test-dhcp-option.c', 'src/libsystemd-network/dhcp-protocol.h', 'src/libsystemd-network/dhcp-internal.h'], -- 2.7.4