64 lines
2.3 KiB
Diff
64 lines
2.3 KiB
Diff
|
From 9eccd6c09f06979003eb2ae1f159defc40213fe0 Mon Sep 17 00:00:00 2001
|
||
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||
|
Date: Wed, 3 Jul 2024 17:03:26 +0200
|
||
|
Subject: [PATCH] meson: build libsystemd-core via an intermediate static
|
||
|
library
|
||
|
|
||
|
By itself, this is not useful. I'm making this a separate commit to
|
||
|
make debugging easier. It turns out that meson does static libraries
|
||
|
using references, so the "static library" a tiny stub stub that refers
|
||
|
to the object files on disk and this has negligible cost:
|
||
|
$ ls -lhd build/src/core/libsystemd-core-257.{a,so}
|
||
|
-rw-r--r-- 1 zbyszek zbyszek 36K Jul 3 16:54 build/src/core/libsystemd-core-257.a
|
||
|
-rwxr-xr-x 1 zbyszek zbyszek 6.1M Jul 3 16:54 build/src/core/libsystemd-core-257.so
|
||
|
|
||
|
see currently unmerged https://github.com/systemd/systemd/pull/33599
|
||
|
|
||
|
RHEL-only workaround
|
||
|
|
||
|
Resolves: RHEL-46020
|
||
|
---
|
||
|
src/core/meson.build | 16 +++++++++++-----
|
||
|
1 file changed, 11 insertions(+), 5 deletions(-)
|
||
|
|
||
|
diff --git a/src/core/meson.build b/src/core/meson.build
|
||
|
index 7a2012a372..1ef31cc529 100644
|
||
|
--- a/src/core/meson.build
|
||
|
+++ b/src/core/meson.build
|
||
|
@@ -110,17 +110,13 @@ load_fragment_gperf_nulstr_c = custom_target(
|
||
|
|
||
|
libcore_name = 'systemd-core-@0@'.format(shared_lib_tag)
|
||
|
|
||
|
-libcore = shared_library(
|
||
|
+libcore_static = static_library(
|
||
|
libcore_name,
|
||
|
libcore_sources,
|
||
|
load_fragment_gperf_c,
|
||
|
load_fragment_gperf_nulstr_c,
|
||
|
include_directories : includes,
|
||
|
c_args : ['-fvisibility=default'],
|
||
|
- link_args : ['-shared',
|
||
|
- '-Wl,--version-script=' + libshared_sym_path],
|
||
|
- link_depends : libshared_sym_path,
|
||
|
- link_with : libshared,
|
||
|
dependencies : [libacl,
|
||
|
libapparmor,
|
||
|
libaudit,
|
||
|
@@ -135,6 +131,16 @@ libcore = shared_library(
|
||
|
libselinux,
|
||
|
threads,
|
||
|
userspace],
|
||
|
+ build_by_default : false)
|
||
|
+
|
||
|
+libcore = shared_library(
|
||
|
+ libcore_name,
|
||
|
+ c_args : ['-fvisibility=default'],
|
||
|
+ link_args : ['-shared',
|
||
|
+ '-Wl,--version-script=' + libshared_sym_path],
|
||
|
+ link_depends : libshared_sym_path,
|
||
|
+ link_whole: libcore_static,
|
||
|
+ link_with : libshared,
|
||
|
install : true,
|
||
|
install_dir : pkglibdir)
|
||
|
|