llc, помещая «длинные» строки в отдельный раздел .rodata.str.16 при создании файлов BPF ELF - PullRequest
0 голосов
/ 03 мая 2019

Я использую 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

...