meson: prepend sys_root to bpf isystem

These sort of absolute include paths are generally unsafe when cross compiling.
This commit is contained in:
James Hilliard
2025-07-21 13:04:49 -06:00
committed by Yu Watanabe
parent 3eb5402b5c
commit 28575ac014

View File

@@ -1775,11 +1775,21 @@ if conf.get('BPF_FRAMEWORK') == 1
target_triplet_cmd = run_command('gcc', '-print-multiarch', check: false)
endif
if target_triplet_cmd.returncode() == 0
sysroot = meson.get_external_property('sys_root', '/')
target_triplet = target_triplet_cmd.stdout().strip()
bpf_o_unstripped_cmd += [
'-isystem',
'/usr/include/@0@'.format(target_triplet)
]
target_include_dir = sysroot / 'usr' / 'include'
target_triple_include_dir = target_include_dir / target_triplet
isystem_dir = ''
if fs.is_dir(target_triple_include_dir)
isystem_dir = target_triple_include_dir
elif fs.is_dir(target_include_dir)
isystem_dir = target_include_dir
endif
if isystem_dir != ''
bpf_o_unstripped_cmd += [
'-isystem', isystem_dir
]
endif
endif
bpf_o_unstripped_cmd += [