libbpf / libbpf-bootstrap

Scaffolding for BPF application development with libbpf and BPF CO-RE

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Make error - poisoned strlcpy

adhy-p opened this issue · comments

➜  c git:(master)  uname -a
Linux thinkpad 6.5.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Tue, 10 Oct 2023 21:10:21 +0000 x86_64 GNU/Linux 
➜  c git:(master)  make minimal
  MKDIR    .output
  MKDIR    .output/libbpf
  LIB      libbpf.a
  MKDIR    /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/bpf.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/btf.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/libbpf.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/libbpf_errno.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/netlink.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/nlattr.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/str_error.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/libbpf_probes.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/bpf_prog_linfo.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/btf_dump.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/hashmap.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/ringbuf.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/strset.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/linker.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/gen_loader.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/relo_core.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/usdt.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/zip.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/staticobjs/elf.o
  AR       /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/libbpf.a
  INSTALL  bpf.h libbpf.h btf.h libbpf_common.h libbpf_legacy.h bpf_helpers.h bpf_helper_defs.h bpf_tracing.h bpf_endian.h bpf_core_read.h skel_internal.h libbpf_version.h usdt.bpf.h
  INSTALL  /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/libbpf.pc
  INSTALL  /home/user/Downloads/libbpf-bootstrap/examples/c/.output//libbpf/libbpf.a
  MKDIR    bpftool
  BPFTOOL  bpftool/bootstrap/bpftool
...                        libbfd: [ OFF ]
...               clang-bpf-co-re: [ on  ]
...                          llvm: [ on  ]
...                        libcap: [ on  ]
mkdir -p /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/include/bpf
mkdir -p /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/
mkdir -p /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/
  MKDIR    /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/bpf.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/btf.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/libbpf.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/libbpf_errno.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/netlink.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/nlattr.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/str_error.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/libbpf_probes.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/bpf_prog_linfo.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/btf_dump.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/hashmap.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/ringbuf.o
  CC       /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/strset.o
In file included from libbpf_common.h:12,
                 from libbpf.h:20,
                 from libbpf_internal.h:26,
                 from strset.c:9:
/usr/include/string.h:506:15: error: attempt to use poisoned "strlcpy"
  506 | extern size_t strlcpy (char *__restrict __dest,
      |               ^
make[2]: *** [Makefile:131: /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/staticobjs/strset.o] Error 1
make[1]: *** [Makefile:52: /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/libbpf/libbpf.a] Error 2
make: *** [Makefile:94: /home/user/Downloads/libbpf-bootstrap/examples/c/.output/bpftool/bootstrap/bpftool] Error 2

Hi all, I am getting this issue when I tried to build the project. Does anyone know how to bypass this issue? Thanks in advance!

Edit: I managed to "fix" this by temporarily commenting out the offending lines on /usr/include/string.h, but I am still wondering what's the best way to fix this issue. 😄

This issue has been fixed a while ago upstream in libbpf by dropping strlcpy poisoning. Current bpftool submodule version doesn't yet have this fix, so I'm updating both bpftool and libbpf submodules to the latest ones in #227. Once that lands, it should fix this issue. Thanks for reporting!