summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2023-04-25 18:37:36 +0900
committerGitHub <noreply@github.com>2023-04-25 18:37:36 +0900
commit3d008416d610b0aaeaa5fb5a8a012f6dfc78a83e (patch)
treef30a320d8a01820acb925dc7a9ef959338aa2ef8 /src/core
parentd280bb7e43260e525e3a4f1304c9802e8ec60d6e (diff)
parent906dff812ed444c032e4bc5ad6fbf59e3c133ed9 (diff)
downloadsystemd-3d008416d610b0aaeaa5fb5a8a012f6dfc78a83e.tar.gz
Merge pull request #27380 from poettering/bpf-meson-tweaks
two bpf build system changes
Diffstat (limited to 'src/core')
-rw-r--r--src/core/bpf/meson.build113
-rw-r--r--src/core/meson.build15
2 files changed, 6 insertions, 122 deletions
diff --git a/src/core/bpf/meson.build b/src/core/bpf/meson.build
deleted file mode 100644
index ea9539bc47..0000000000
--- a/src/core/bpf/meson.build
+++ /dev/null
@@ -1,113 +0,0 @@
-# SPDX-License-Identifier: LGPL-2.1-or-later
-
-if conf.get('BPF_FRAMEWORK') != 1
- subdir_done()
-endif
-
-bpf_clang_flags = [
- '-std=gnu11',
- '-Wno-compare-distinct-pointer-types',
- '-fno-stack-protector',
- '-O2',
- '-target',
- 'bpf',
- '-g',
- '-c',
-]
-
-bpf_gcc_flags = [
- '-std=gnu11',
- '-fno-stack-protector',
- '-O2',
- '-mkernel=5.2',
- '-mcpu=v3',
- '-mco-re',
- '-gbtf',
- '-c',
-]
-
-# Generate defines that are appropriate to tell the compiler what architecture
-# we're compiling for. By default we just map meson's cpu_family to __<cpu_family>__.
-# This dictionary contains the exceptions where this doesn't work.
-#
-# C.f. https://mesonbuild.com/Reference-tables.html#cpu-families
-# and src/basic/missing_syscall_def.h.
-cpu_arch_defines = {
- 'ppc' : ['-D__powerpc__'],
- 'ppc64' : ['-D__powerpc64__', '-D_CALL_ELF=2'],
- 'riscv32' : ['-D__riscv', '-D__riscv_xlen=32'],
- 'riscv64' : ['-D__riscv', '-D__riscv_xlen=64'],
- 'x86' : ['-D__i386__'],
-
- # For arm, assume hardware fp is available.
- 'arm' : ['-D__arm__', '-D__ARM_PCS_VFP'],
-}
-
-bpf_arch_flags = cpu_arch_defines.get(host_machine.cpu_family(),
- ['-D__@0@__'.format(host_machine.cpu_family())])
-if bpf_compiler == 'gcc'
- bpf_arch_flags += ['-m' + host_machine.endian() + '-endian']
-endif
-
-libbpf_include_dir = libbpf.get_variable(pkgconfig : 'includedir')
-
-bpf_o_unstripped_cmd = []
-if bpf_compiler == 'clang'
- bpf_o_unstripped_cmd += [
- clang,
- bpf_clang_flags,
- bpf_arch_flags,
- ]
-elif bpf_compiler == 'gcc'
- bpf_o_unstripped_cmd += [
- bpf_gcc,
- bpf_gcc_flags,
- bpf_arch_flags,
- ]
-endif
-
-bpf_o_unstripped_cmd += ['-I.']
-
-if not meson.is_cross_build() and bpf_compiler == 'clang'
- target_triplet_cmd = run_command('gcc', '-dumpmachine', check: false)
- if target_triplet_cmd.returncode() == 0
- target_triplet = target_triplet_cmd.stdout().strip()
- bpf_o_unstripped_cmd += [
- '-isystem',
- '/usr/include/@0@'.format(target_triplet)
- ]
- endif
-endif
-
-bpf_o_unstripped_cmd += [
- '-idirafter',
- libbpf_include_dir,
- '@INPUT@',
- '-o',
- '@OUTPUT@'
-]
-
-if bpftool_strip
- bpf_o_cmd = [
- bpftool,
- 'gen',
- 'object',
- '@OUTPUT@',
- '@INPUT@'
- ]
-elif bpf_compiler == 'clang'
- bpf_o_cmd = [
- llvm_strip,
- '-g',
- '@INPUT@',
- '-o',
- '@OUTPUT@'
- ]
-endif
-
-skel_h_cmd = [
- bpftool,
- 'gen',
- 'skeleton',
- '@INPUT@'
-]
diff --git a/src/core/meson.build b/src/core/meson.build
index af3eaa52d2..1a1b8b310d 100644
--- a/src/core/meson.build
+++ b/src/core/meson.build
@@ -74,18 +74,15 @@ if conf.get('BPF_FRAMEWORK') == 1
)
endif
-subdir('bpf')
-
subdir('bpf/socket_bind')
-if conf.get('BPF_FRAMEWORK') == 1
- libcore_sources += [socket_bind_skel_h]
- subdir('bpf/restrict_fs')
- libcore_sources += [restrict_fs_skel_h]
-endif
-
+subdir('bpf/restrict_fs')
subdir('bpf/restrict_ifaces')
+
if conf.get('BPF_FRAMEWORK') == 1
- libcore_sources += [restrict_ifaces_skel_h]
+ libcore_sources += [
+ socket_bind_skel_h,
+ restrict_fs_skel_h,
+ restrict_ifaces_skel_h]
endif
load_fragment_gperf_gperf = custom_target(