Files
systemd/src/basic/meson.build
Zbigniew Jędrzejewski-Szmek 87501ac0eb meson: drop libseccomp and libselinux from libbasic linkage
This means libsystemd.so is without them now. This is important
because countless programs link to libsystemd.so, and do not need
to pull in selinux now. And libselinux.so pulls in libpcre2, so
we trim a nice dependency tree.

I'm not sure why libseccomp was listed there. No code seems to
refer to it.

$ diff -u <(ldd ../systemd/build/libsystemd.so|sed 's/0x.*/0x…/') <(ldd build/libsystemd.so|sed 's/0x.*/0x…/')
@@ -4,11 +4,9 @@
 	libzstd.so.1 => /lib64/libzstd.so.1 (0x…
 	liblz4.so.1 => /lib64/liblz4.so.1 (0x…
 	libcap.so.2 => /lib64/libcap.so.2 (0x…
-	libselinux.so.1 => /lib64/libselinux.so.1 (0x…
 	libgcrypt.so.20 => /lib64/libgcrypt.so.20 (0x…
 	libpthread.so.0 => /lib64/libpthread.so.0 (0x…
 	libc.so.6 => /lib64/libc.so.6 (0x…
 	/lib64/ld-linux-x86-64.so.2 (0x…
-	libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x…
 	libdl.so.2 => /lib64/libdl.so.2 (0x…
 	libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x…

$ diff -u <(ldd ../systemd/build/libudev.so|sed 's/0x.*/0x…/') <(ldd build/libudev.so|sed 's/0x.*/0x…/')
@@ -1,8 +1,5 @@
 	linux-vdso.so.1 (0x…
 	librt.so.1 => /lib64/librt.so.1 (0x…
-	libselinux.so.1 => /lib64/libselinux.so.1 (0x…
 	libpthread.so.0 => /lib64/libpthread.so.0 (0x…
 	libc.so.6 => /lib64/libc.so.6 (0x…
 	/lib64/ld-linux-x86-64.so.2 (0x…
-	libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x…
-	libdl.so.2 => /lib64/libdl.so.2 (0x…
2021-06-24 10:11:16 +02:00

395 lines
9.5 KiB
Meson

# SPDX-License-Identifier: LGPL-2.1-or-later
basic_sources = files('''
MurmurHash2.c
MurmurHash2.h
af-list.c
af-list.h
alloc-util.c
alloc-util.h
architecture.c
architecture.h
arphrd-list.c
arphrd-list.h
async.c
async.h
audit-util.c
audit-util.h
build.c
build.h
bus-label.c
bus-label.h
cap-list.c
cap-list.h
capability-util.c
capability-util.h
cgroup-util.c
cgroup-util.h
chattr-util.c
chattr-util.h
conf-files.c
conf-files.h
creds-util.c
creds-util.h
def.h
dirent-util.c
dirent-util.h
dns-def.h
efivars.c
efivars.h
env-file.c
env-file.h
env-util.c
env-util.h
errno-list.c
errno-list.h
errno-util.h
escape.c
escape.h
ether-addr-util.c
ether-addr-util.h
extract-word.c
extract-word.h
fd-util.c
fd-util.h
fileio.c
fileio.h
format-util.c
format-util.h
fs-util.c
fs-util.h
glob-util.c
glob-util.h
gunicode.c
gunicode.h
hash-funcs.c
hash-funcs.h
hashmap.c
hashmap.h
hexdecoct.c
hexdecoct.h
hostname-util.c
hostname-util.h
in-addr-util.c
in-addr-util.h
io-util.c
io-util.h
ioprio.h
khash.c
khash.h
limits-util.c
limits-util.h
linux/btrfs.h
linux/btrfs_tree.h
linux/can/netlink.h
linux/can/vxcan.h
linux/fib_rules.h
linux/fou.h
linux/hdlc/ioctl.h
linux/if.h
linux/if_addr.h
linux/if_arp.h
linux/if_bonding.h
linux/if_bridge.h
linux/if_ether.h
linux/if_link.h
linux/if_macsec.h
linux/if_tun.h
linux/if_tunnel.h
linux/in.h
linux/in6.h
linux/ipv6_route.h
linux/l2tp.h
linux/libc-compat.h
linux/loadavg.h
linux/netdevice.h
linux/netfilter/nf_tables.h
linux/netfilter/nfnetlink.h
linux/netlink.h
linux/nexthop.h
linux/nl80211.h
linux/pkt_sched.h
linux/rtnetlink.h
linux/wireguard.h
list.h
locale-util.c
locale-util.h
log.c
log.h
login-util.c
login-util.h
macro.h
memfd-util.c
memfd-util.h
memory-util.c
memory-util.h
mempool.c
mempool.h
missing_audit.h
missing_capability.h
missing_drm.h
missing_fcntl.h
missing_fs.h
missing_input.h
missing_keyctl.h
missing_magic.h
missing_mman.h
missing_mount.h
missing_network.h
missing_prctl.h
missing_random.h
missing_resource.h
missing_sched.h
missing_securebits.h
missing_socket.h
missing_stat.h
missing_stdlib.h
missing_syscall.h
missing_timerfd.h
missing_type.h
mkdir.c
mkdir.h
mountpoint-util.c
mountpoint-util.h
namespace-util.c
namespace-util.h
nss-util.h
nulstr-util.c
nulstr-util.h
ordered-set.c
ordered-set.h
os-util.c
os-util.h
parse-util.c
parse-util.h
path-lookup.c
path-lookup.h
path-util.c
path-util.h
percent-util.c
percent-util.h
prioq.c
prioq.h
proc-cmdline.c
proc-cmdline.h
process-util.c
process-util.h
procfs-util.c
procfs-util.h
pthread-util.h
random-util.c
random-util.h
ratelimit.c
ratelimit.h
raw-clone.h
raw-reboot.h
recovery-key.c
recovery-key.h
replace-var.c
replace-var.h
rlimit-util.c
rlimit-util.h
set.h
sigbus.c
sigbus.h
signal-util.c
signal-util.h
siphash24.c
siphash24.h
socket-util.c
socket-util.h
sort-util.c
sort-util.h
sparse-endian.h
special.h
stat-util.c
stat-util.h
static-destruct.h
stdio-util.h
strbuf.c
strbuf.h
string-table.c
string-table.h
string-util.c
string-util.h
strv.c
strv.h
strxcpyx.c
strxcpyx.h
sysctl-util.c
sysctl-util.h
syslog-util.c
syslog-util.h
terminal-util.c
terminal-util.h
time-util.c
time-util.h
tmpfile-util.c
tmpfile-util.h
umask-util.h
unaligned.h
unit-def.c
unit-def.h
unit-file.c
unit-file.h
unit-name.c
unit-name.h
user-util.c
user-util.h
utf8.c
utf8.h
util.c
util.h
virt.c
virt.h
xattr-util.c
xattr-util.h
'''.split())
missing_audit_h = files('missing_audit.h')
missing_capability_h = files('missing_capability.h')
missing_socket_h = files('missing_socket.h')
missing_syscall_def_h = files('missing_syscall_def.h')
basic_sources += missing_syscall_def_h
generate_af_list = find_program('generate-af-list.sh')
af_list_txt = custom_target(
'af-list.txt',
output : 'af-list.txt',
command : [generate_af_list, cpp, config_h, missing_socket_h],
capture : true)
generate_arphrd_list = find_program('generate-arphrd-list.sh')
arphrd_list_txt = custom_target(
'arphrd-list.txt',
output : 'arphrd-list.txt',
command : [generate_arphrd_list, cpp, config_h],
capture : true)
generate_cap_list = find_program('generate-cap-list.sh')
cap_list_txt = custom_target(
'cap-list.txt',
output : 'cap-list.txt',
command : [generate_cap_list, cpp, config_h, missing_capability_h],
capture : true)
generate_errno_list = find_program('generate-errno-list.sh')
errno_list_txt = custom_target(
'errno-list.txt',
output : 'errno-list.txt',
command : [generate_errno_list, cpp],
capture : true)
generated_gperf_headers = []
foreach item : [['af', af_list_txt, 'af', ''],
['arphrd', arphrd_list_txt, 'arphrd', 'ARPHRD_'],
['cap', cap_list_txt, 'capability', ''],
['errno', errno_list_txt, 'errno', '']]
fname = '@0@-from-name.gperf'.format(item[0])
gperf_file = custom_target(
fname,
input : item[1],
output : fname,
command : [generate_gperfs, item[2], item[3], '@INPUT@'],
capture : true)
fname = '@0@-from-name.h'.format(item[0])
target1 = custom_target(
fname,
input : gperf_file,
output : fname,
command : [gperf,
'-L', 'ANSI-C', '-t', '--ignore-case',
'-N', 'lookup_@0@'.format(item[2]),
'-H', 'hash_@0@_name'.format(item[2]),
'-p', '-C',
'@INPUT@'],
capture : true)
fname = '@0@-to-name.h'.format(item[0])
awkscript = '@0@-to-name.awk'.format(item[0])
target2 = custom_target(
fname,
input : [awkscript, item[1]],
output : fname,
command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
capture : true)
generated_gperf_headers += [target1, target2]
endforeach
basic_sources += generated_gperf_headers
############################################################
arch_list = [
'alpha',
'arc',
'arm',
'arm64',
'i386',
'ia64',
'm68k',
'mips64',
'mips64n32',
'mipso32',
'powerpc',
'powerpc64',
'riscv32',
'riscv64',
's390',
's390x',
'sparc',
'x86_64'
]
run_target(
'update-syscall-tables',
command : [update_syscall_tables_sh, meson.current_source_dir()] + arch_list)
syscall_list_txt = files('syscall-list.txt')
syscall_lists = []
foreach arch: arch_list
syscall_lists += files('syscalls-@0@.txt'.format(arch))
endforeach
missing_syscalls_py = find_program('missing_syscalls.py')
run_target(
'update-syscall-header',
command : [missing_syscalls_py,
missing_syscall_def_h,
syscall_lists])
############################################################
libbasic = static_library(
'basic',
basic_sources,
fundamental_sources,
include_directories : basic_includes,
dependencies : [versiondep,
threads,
libcap,
libm],
c_args : ['-fvisibility=default'],
install : false)
############################################################
basic_gcrypt_sources = files(
'gcrypt-util.c',
'gcrypt-util.h')
# A convenience library that is separate from libbasic to avoid
# unnecessary linking to libgcrypt.
libbasic_gcrypt = static_library(
'basic-gcrypt',
basic_gcrypt_sources,
include_directories : basic_includes,
dependencies : [libgcrypt],
c_args : ['-fvisibility=default'])