Я использую clang для компиляции кода C в LLVM, а затем llc для создания файла ELF BPF для загрузки с gobpf .
Когда мой код на C содержит "длинную" строку ("/var/run/containerd/containerd.sock"), llc помещает строку в свой собственный раздел ELF (.rodata.str1.16
), который, похоже, gobpf не поддерживает:
map location not supported: map ".Lbpf_prog1.socket" is in section ".rodata.str1.16" instead of "maps/.Lbpf_prog1.socket"
Этого не происходит с более короткой строкой ("/var/run/docker.sock"). Есть ли способ использовать llc
для создания файла ELF без создания этого отдельного раздела .rodata.str1.16
?
uname -a
: Linux ubuntu-bionic 4.18.0-17-generic # 18 ~ 18.04.1-Ubuntu SMP пт 15 марта, 15:27:12 UTC 2019 x86_64 x86_64 x86_64 GNU / Linux