Skip to content
This repository has been archived by the owner on Jul 11, 2023. It is now read-only.

cargo install cargo-bpf fails at bpf-sys dependency #285

Open
taladar opened this issue Feb 11, 2022 · 6 comments
Open

cargo install cargo-bpf fails at bpf-sys dependency #285

taladar opened this issue Feb 11, 2022 · 6 comments

Comments

@taladar
Copy link

taladar commented Feb 11, 2022

I am trying to install cargo-bpf (on Gentoo) but it seems to fail when trying to install the bpf-sys 2.3.0 dependency because it can not find a libbpf.pc file in the bundled source code

error: failed to compile `cargo-bpf v2.3.0`, intermediate artifacts can be found at `/tmp/cargo-installXtaDvf`

Caused by:
  failed to run custom build command for `bpf-sys v2.3.0`

Caused by:
  process didn't exit successfully: `/tmp/cargo-installXtaDvf/release/build/bpf-sys-097b0fb1fc2e9b8a/build-script-build` (exit status: 101)
  --- stdout
  cargo:rustc-link-search=native=/tmp/cargo-installXtaDvf/release/build/bpf-sys-79ed847212a8ee7c/out
  cargo:rustc-link-lib=static=bpf
  cargo:rustc-link-lib=elf
  cargo:rustc-link-lib=z
  cargo:rerun-if-changed=libbpf/
  cargo:rerun-if-changed=libbpf/src/bpf.c
  cargo:rerun-if-changed=libbpf/src/bpf_prog_linfo.c
  cargo:rerun-if-changed=libbpf/src/btf.c
  cargo:rerun-if-changed=libbpf/src/btf_dump.c
  cargo:rerun-if-changed=libbpf/src/gen_loader.c
  cargo:rerun-if-changed=libbpf/src/hashmap.c
  cargo:rerun-if-changed=libbpf/src/libbpf.c
  cargo:rerun-if-changed=libbpf/src/libbpf_errno.c
  cargo:rerun-if-changed=libbpf/src/libbpf_probes.c
  cargo:rerun-if-changed=libbpf/src/linker.c
  cargo:rerun-if-changed=libbpf/src/netlink.c
  cargo:rerun-if-changed=libbpf/src/nlattr.c
  cargo:rerun-if-changed=libbpf/src/ringbuf.c
  cargo:rerun-if-changed=libbpf/src/str_error.c
  cargo:rerun-if-changed=libbpf/src/strset.c
  cargo:rerun-if-changed=libbpf/src/xsk.c
  cargo:rerun-if-changed=libbpf/include/asm/barrier.h
  cargo:rerun-if-changed=libbpf/include/linux/compiler.h
  cargo:rerun-if-changed=libbpf/include/linux/err.h
  cargo:rerun-if-changed=libbpf/include/linux/filter.h
  cargo:rerun-if-changed=libbpf/include/linux/kernel.h
  cargo:rerun-if-changed=libbpf/include/linux/list.h
  cargo:rerun-if-changed=libbpf/include/linux/overflow.h
  cargo:rerun-if-changed=libbpf/include/linux/ring_buffer.h
  cargo:rerun-if-changed=libbpf/include/linux/types.h
  cargo:rerun-if-changed=libbpf/include/uapi/linux/bpf.h
  cargo:rerun-if-changed=libbpf/include/uapi/linux/bpf_common.h
  cargo:rerun-if-changed=libbpf/include/uapi/linux/btf.h
  cargo:rerun-if-changed=libbpf/include/uapi/linux/if_link.h
  cargo:rerun-if-changed=libbpf/include/uapi/linux/if_xdp.h
  cargo:rerun-if-changed=libbpf/include/uapi/linux/netlink.h
  cargo:rerun-if-changed=libbpf/include/uapi/linux/pkt_cls.h
  cargo:rerun-if-changed=libbpf/include/uapi/linux/pkt_sched.h
  cargo:rerun-if-changed=libbpf/src/bpf.h
  cargo:rerun-if-changed=libbpf/src/bpf_core_read.h
  cargo:rerun-if-changed=libbpf/src/bpf_endian.h
  cargo:rerun-if-changed=libbpf/src/bpf_gen_internal.h
  cargo:rerun-if-changed=libbpf/src/bpf_helper_defs.h
  cargo:rerun-if-changed=libbpf/src/bpf_helpers.h
  cargo:rerun-if-changed=libbpf/src/bpf_tracing.h
  cargo:rerun-if-changed=libbpf/src/btf.h
  cargo:rerun-if-changed=libbpf/src/hashmap.h
  cargo:rerun-if-changed=libbpf/src/libbpf.h
  cargo:rerun-if-changed=libbpf/src/libbpf_common.h
  cargo:rerun-if-changed=libbpf/src/libbpf_internal.h
  cargo:rerun-if-changed=libbpf/src/libbpf_legacy.h
  cargo:rerun-if-changed=libbpf/src/nlattr.h
  cargo:rerun-if-changed=libbpf/src/skel_internal.h
  cargo:rerun-if-changed=libbpf/src/str_error.h
  cargo:rerun-if-changed=libbpf/src/strset.h
  cargo:rerun-if-changed=libbpf/src/xsk.h
  cargo:rerun-if-changed=libbpf/travis-ci/vmtest/vmlinux.h
  cargo:rerun-if-changed=libbpf/travis-ci/managers/travis_wait.bash
  cargo:rerun-if-changed=libbpf/src/libbpf.map
  cargo:rerun-if-changed=libbpf/README.md
  cargo:rerun-if-changed=libbpf/scripts/coverity.sh
  cargo:rerun-if-changed=libbpf/scripts/sync-kernel.sh
  cargo:rerun-if-changed=libbpf/travis-ci/managers/debian.sh
  cargo:rerun-if-changed=libbpf/travis-ci/managers/ubuntu.sh
  cargo:rerun-if-changed=libbpf/travis-ci/vmtest/build_pahole.sh
  cargo:rerun-if-changed=libbpf/travis-ci/vmtest/build_selftests.sh
  cargo:rerun-if-changed=libbpf/travis-ci/vmtest/checkout_latest_kernel.sh
  cargo:rerun-if-changed=libbpf/travis-ci/vmtest/helpers.sh
  cargo:rerun-if-changed=libbpf/travis-ci/vmtest/mkrootfs.sh
  cargo:rerun-if-changed=libbpf/travis-ci/vmtest/prepare_selftests-4.9.0.sh
  cargo:rerun-if-changed=libbpf/travis-ci/vmtest/prepare_selftests-5.5.0.sh
  cargo:rerun-if-changed=libbpf/travis-ci/vmtest/prepare_selftests.sh
  cargo:rerun-if-changed=libbpf/travis-ci/vmtest/run.sh
  cargo:rerun-if-changed=libbpf/travis-ci/vmtest/run_selftests.sh
  cargo:rerun-if-changed=libbpf/travis-ci/vmtest/run_vmtest.sh
  cargo:rerun-if-changed=libbpf/src/libbpf.pc.template
  cargo:rerun-if-changed=bpfsys-musl.h
  cargo:rerun-if-changed=libbpf_xdp.h
  make: Entering directory '/home/taladar/.cargo/registry/src/github.com-1ecc6299db9ec823/bpf-sys-2.3.0/libbpf/src'
    MKDIR    staticobjs
    INSTALL  bpf.h libbpf.h btf.h libbpf_common.h libbpf_legacy.h xsk.h bpf_helpers.h bpf_helper_defs.h bpf_tracing.h bpf_endian.h bpf_core_read.h skel_internal.h
  make: Leaving directory '/home/taladar/.cargo/registry/src/github.com-1ecc6299db9ec823/bpf-sys-2.3.0/libbpf/src'

  --- stderr
  /bin/sh: line 1: /tmp/cargo-installXtaDvf/release/build/bpf-sys-79ed847212a8ee7c/out/libbpf/libbpf.pc: No such file or directory
  make: *** [Makefile:102: /tmp/cargo-installXtaDvf/release/build/bpf-sys-79ed847212a8ee7c/out/libbpf/libbpf.pc] Error 1
  make: *** Waiting for unfinished jobs....
  thread 'main' panicked at 'failed to build `libbpf` static library', /home/taladar/.cargo/registry/src/github.com-1ecc6299db9ec823/bpf-sys-2.3.0/build.rs:56:9
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

The contents of the ~/.cargo/registry/src/github.com-1ecc6299db9ec823/bpf-sys-2.3.0 directory is

.
./.cargo_vcs_info.json
./Cargo.toml
./Cargo.toml.orig
./bpfsys-musl.h
./build.rs
./libbpf
./libbpf/.github
./libbpf/.github/actions
./libbpf/.github/actions/debian
./libbpf/.github/actions/debian/action.yml
./libbpf/.github/actions/setup
./libbpf/.github/actions/setup/action.yml
./libbpf/.github/actions/vmtest
./libbpf/.github/actions/vmtest/action.yml
./libbpf/.github/workflows
./libbpf/.github/workflows/coverity.yml
./libbpf/.github/workflows/ondemand.yml
./libbpf/.github/workflows/pahole.yml
./libbpf/.github/workflows/test.yml
./libbpf/.lgtm.yml
./libbpf/.travis.yml
./libbpf/BPF-CHECKPOINT-COMMIT
./libbpf/CHECKPOINT-COMMIT
./libbpf/LICENSE
./libbpf/LICENSE.BSD-2-Clause
./libbpf/LICENSE.LGPL-2.1
./libbpf/README.md
./libbpf/include
./libbpf/include/asm
./libbpf/include/asm/barrier.h
./libbpf/include/linux
./libbpf/include/linux/compiler.h
./libbpf/include/linux/err.h
./libbpf/include/linux/filter.h
./libbpf/include/linux/kernel.h
./libbpf/include/linux/list.h
./libbpf/include/linux/overflow.h
./libbpf/include/linux/ring_buffer.h
./libbpf/include/linux/types.h
./libbpf/include/uapi
./libbpf/include/uapi/linux
./libbpf/include/uapi/linux/bpf.h
./libbpf/include/uapi/linux/bpf_common.h
./libbpf/include/uapi/linux/btf.h
./libbpf/include/uapi/linux/if_link.h
./libbpf/include/uapi/linux/if_xdp.h
./libbpf/include/uapi/linux/netlink.h
./libbpf/include/uapi/linux/pkt_cls.h
./libbpf/include/uapi/linux/pkt_sched.h
./libbpf/scripts
./libbpf/scripts/coverity.sh
./libbpf/scripts/sync-kernel.sh
./libbpf/src
./libbpf/src/.gitignore
./libbpf/src/Makefile
./libbpf/src/bpf.c
./libbpf/src/bpf.h
./libbpf/src/bpf_core_read.h
./libbpf/src/bpf_endian.h
./libbpf/src/bpf_gen_internal.h
./libbpf/src/bpf_helper_defs.h
./libbpf/src/bpf_helpers.h
./libbpf/src/bpf_prog_linfo.c
./libbpf/src/bpf_tracing.h
./libbpf/src/btf.c
./libbpf/src/btf.h
./libbpf/src/btf_dump.c
./libbpf/src/gen_loader.c
./libbpf/src/hashmap.c
./libbpf/src/hashmap.h
./libbpf/src/libbpf.c
./libbpf/src/libbpf.h
./libbpf/src/libbpf.map
./libbpf/src/libbpf.pc.template
./libbpf/src/libbpf_common.h
./libbpf/src/libbpf_errno.c
./libbpf/src/libbpf_internal.h
./libbpf/src/libbpf_legacy.h
./libbpf/src/libbpf_probes.c
./libbpf/src/linker.c
./libbpf/src/netlink.c
./libbpf/src/nlattr.c
./libbpf/src/nlattr.h
./libbpf/src/ringbuf.c
./libbpf/src/skel_internal.h
./libbpf/src/str_error.c
./libbpf/src/str_error.h
./libbpf/src/strset.c
./libbpf/src/strset.h
./libbpf/src/xsk.c
./libbpf/src/xsk.h
./libbpf/travis-ci
./libbpf/travis-ci/managers
./libbpf/travis-ci/managers/debian.sh
./libbpf/travis-ci/managers/travis_wait.bash
./libbpf/travis-ci/managers/ubuntu.sh
./libbpf/travis-ci/vmtest
./libbpf/travis-ci/vmtest/build_pahole.sh
./libbpf/travis-ci/vmtest/build_selftests.sh
./libbpf/travis-ci/vmtest/checkout_latest_kernel.sh
./libbpf/travis-ci/vmtest/configs
./libbpf/travis-ci/vmtest/configs/INDEX
./libbpf/travis-ci/vmtest/configs/blacklist
./libbpf/travis-ci/vmtest/configs/blacklist/BLACKLIST-5.5.0
./libbpf/travis-ci/vmtest/configs/blacklist/BLACKLIST-latest
./libbpf/travis-ci/vmtest/configs/latest.config
./libbpf/travis-ci/vmtest/configs/whitelist
./libbpf/travis-ci/vmtest/configs/whitelist/WHITELIST-4.9.0
./libbpf/travis-ci/vmtest/helpers.sh
./libbpf/travis-ci/vmtest/mkrootfs.sh
./libbpf/travis-ci/vmtest/prepare_selftests-4.9.0.sh
./libbpf/travis-ci/vmtest/prepare_selftests-5.5.0.sh
./libbpf/travis-ci/vmtest/prepare_selftests.sh
./libbpf/travis-ci/vmtest/run.sh
./libbpf/travis-ci/vmtest/run_selftests.sh
./libbpf/travis-ci/vmtest/run_vmtest.sh
./libbpf/travis-ci/vmtest/vmlinux.h
./libbpf_xdp.h
./src
./src/headers.rs
./src/lib.rs
./src/perf_reader.rs
./src/type_gen.rs
./src/uname.rs
./.cargo-ok

The libbpf.pc file is mentioned in the Makefile and if I just run Make in that directory it is generated (among other files) without errors.

@rhdxmr
Copy link
Collaborator

rhdxmr commented Feb 13, 2022

@taladar
Hi

I'm trying to reproduce this problem but I am encountered another problem in gentoo..

I made a docker image from gentoo/stage3 and installed some required packages.

FROM gentoo/stage3

RUN emerge --sync \
    && emerge -v sys-devel/llvm \
    sys-devel/clang \
    dev-libs/libelf

RUN curl https://sh.rustup.rs -sSf > rustup.sh \
    && sh rustup.sh -y \
          --default-toolchain stable \
          --profile minimal \
          --no-modify-path \
    && rm -f rustup.sh \
    && rustup component add rustfmt \
    && rustup --version \
    && cargo -vV \
    && rustc -vV

And I executed cargo install --features=llvm13 cargo-bpf but I encountered another error not like yours..
It prints lots of undefined reference errors.
Did you solve this problem?

   Compiling cargo-bpf v2.3.0                                                                                                                                                                                                                                 
error: linking with `cc` failed: exit status: 1                                                                                                                                                                                                               
  |                                                                                                                                                                                                                                                           
  = note: "cc" "-m64" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.0.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.1.rcgu.o" "/tmp/cargo-installXCIjK4/release/
deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.10.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.11.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu
.12.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.13.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.14.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/car
go_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.15.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.2.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.3.rcgu.o
" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.4.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.5.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b
40b086a07f0.cargo_bpf.4170e204-cgu.6.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.7.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.8.rcgu.o" "/tmp/cargo
-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.cargo_bpf.4170e204-cgu.9.rcgu.o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0.45qnxy2pmmc0xisv.rcgu.o" "-Wl,--as-needed" "-L" "/tmp/cargo-installXCIjK4/release/deps" "-L" "/tmp/c
argo-installXCIjK4/release/build/bpf-sys-76471523999f729b/out" "-L" "/tmp/cargo-installXCIjK4/release/build/llvm-sys-637d2333f9e94cbf/out" "-L" "/usr/lib/llvm/13/lib64" "-L" "/tmp/cargo-installXCIjK4/release/build/llvm-sys-f7e54766c4b79f4c/out" "-L" "/us
r/lib/llvm/13/lib64" "-L" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/tmp/cargo-installXCIjK4/release/deps/libcargo_bpf_lib-827d47185e8c7c77.rlib" "/tmp/cargo-installXCIjK4/release/
deps/libtempfile-be5edf57b7a029a8.rlib" "/tmp/cargo-installXCIjK4/release/deps/libfastrand-ec8b9eb54b2d7071.rlib" "/tmp/cargo-installXCIjK4/release/deps/libremove_dir_all-ea2620ff39ee9a1d.rlib" "/tmp/cargo-installXCIjK4/release/deps/libllvm_sys-9864d9652
4ec2dcf.rlib" "/tmp/cargo-installXCIjK4/release/deps/libhexdump-7a51e81ced1bd5b6.rlib" "/tmp/cargo-installXCIjK4/release/deps/libitertools-c998de136bdacf69.rlib" "/tmp/cargo-installXCIjK4/release/deps/libarrayvec-c9e1b713a7c70c79.rlib" "/tmp/cargo-instal
lXCIjK4/release/deps/libanyhow-841564568f3d0e5d.rlib" "/tmp/cargo-installXCIjK4/release/deps/libredbpf-7d476c6f5a03c2ad.rlib" "/tmp/cargo-installXCIjK4/release/deps/libbyteorder-cad022f0a4b2bacf.rlib" "/tmp/cargo-installXCIjK4/release/deps/libtokio-c08eb
fe5b3279aa9.rlib" "/tmp/cargo-installXCIjK4/release/deps/libsignal_hook_registry-a72f56d6f0e5091d.rlib" "/tmp/cargo-installXCIjK4/release/deps/libonce_cell-44def6ef7d8ea6f6.rlib" "/tmp/cargo-installXCIjK4/release/deps/libmio-595d8a10fe580e9c.rlib" "/tmp/
cargo-installXCIjK4/release/deps/libfutures-f58962fb01c21bc4.rlib" "/tmp/cargo-installXCIjK4/release/deps/libfutures_executor-0548c8e8798fc7b1.rlib" "/tmp/cargo-installXCIjK4/release/deps/libfutures_util-0a94ce98663ce037.rlib" "/tmp/cargo-installXCIjK4/r
elease/deps/libfutures_io-a5d69ec77bf8e762.rlib" "/tmp/cargo-installXCIjK4/release/deps/libslab-658843b2b04c62da.rlib" "/tmp/cargo-installXCIjK4/release/deps/libfutures_channel-d74c5f21a99bdd6a.rlib" "/tmp/cargo-installXCIjK4/release/deps/libfutures_sink
-b769f2ae07a7effc.rlib" "/tmp/cargo-installXCIjK4/release/deps/libfutures_task-9316bacda4aef17f.rlib" "/tmp/cargo-installXCIjK4/release/deps/libpin_utils-6b3a247f6caeb3b5.rlib" "/tmp/cargo-installXCIjK4/release/deps/libfutures_core-6ff583a2c4ceba0a.rlib"
 "/tmp/cargo-installXCIjK4/release/deps/libtracing-1bf2c4a132c081e8.rlib" "/tmp/cargo-installXCIjK4/release/deps/libpin_project_lite-abe305da8337f851.rlib" "/tmp/cargo-installXCIjK4/release/deps/libtracing_core-6befd87193e76128.rlib" "/tmp/cargo-installX
CIjK4/release/deps/libgoblin-54702c64589acbb6.rlib" "/tmp/cargo-installXCIjK4/release/deps/libplain-74c616a23aa13460.rlib" "/tmp/cargo-installXCIjK4/release/deps/liblog-663f33774815f2eb.rlib" "/tmp/cargo-installXCIjK4/release/deps/libscroll-bd565fd89804d
0ab.rlib" "/tmp/cargo-installXCIjK4/release/deps/libtoml_edit-febe94988e5616f6.rlib" "/tmp/cargo-installXCIjK4/release/deps/libchrono-429986ce59e0cdce.rlib" "/tmp/cargo-installXCIjK4/release/deps/libnum_integer-6fe2d79d102543d8.rlib" "/tmp/cargo-installX
CIjK4/release/deps/libnum_traits-b7526ae77ac73d91.rlib" "/tmp/cargo-installXCIjK4/release/deps/libtime-15f6f5782589f7da.rlib" "/tmp/cargo-installXCIjK4/release/deps/liblinked_hash_map-eb614f414624845c.rlib" "/tmp/cargo-installXCIjK4/release/deps/libcombi
ne-5fcc73c417b26493.rlib" "/tmp/cargo-installXCIjK4/release/deps/libbytes-f5edbb50d8871b74.rlib" "/tmp/cargo-installXCIjK4/release/deps/libbindgen-00f93e6fb64f7a9d.rlib" "/tmp/cargo-installXCIjK4/release/deps/libshlex-24c85c16c78af89b.rlib" "/tmp/cargo-i
nstallXCIjK4/release/deps/librustc_hash-5380e80ad2dda345.rlib" "/tmp/cargo-installXCIjK4/release/deps/liblazycell-0a5f353194a63947.rlib" "/tmp/cargo-installXCIjK4/release/deps/libpeeking_take_while-4a0c9b99e4c1e85c.rlib" "/tmp/cargo-installXCIjK4/release
/deps/libcexpr-1d80728851f44bfd.rlib" "/tmp/cargo-installXCIjK4/release/deps/libnom-37f5447b0e2fe20f.rlib" "/tmp/cargo-installXCIjK4/release/deps/libclang_sys-a752ef2c39dba0a6.rlib" "/tmp/cargo-installXCIjK4/release/deps/liblibloading-bc6e3726ba0dea39.rl
ib" "/tmp/cargo-installXCIjK4/release/deps/libcfg_if-7513cd0fdc9b8182.rlib" "/tmp/cargo-installXCIjK4/release/deps/libsyn-d32b38d8a484422e.rlib" "/tmp/cargo-installXCIjK4/release/deps/libquote-130a0716c872d584.rlib" "/tmp/cargo-installXCIjK4/release/deps
/libproc_macro2-b75a7e4f22028207.rlib" "/tmp/cargo-installXCIjK4/release/deps/libunicode_xid-38c914c50c1d762b.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libproc_macro-b961a3f930b2d0eb.rlib" "/
tmp/cargo-installXCIjK4/release/deps/liblazy_static-5d57db6815621f76.rlib" "/tmp/cargo-installXCIjK4/release/deps/libbpf_sys-35d18514a99999df.rlib" "/tmp/cargo-installXCIjK4/release/deps/libregex-3e1c314d2b275ac0.rlib" "/tmp/cargo-installXCIjK4/release/d
eps/libaho_corasick-380ab43bfe00623e.rlib" "/tmp/cargo-installXCIjK4/release/deps/libmemchr-474c6931f4e1149a.rlib" "/tmp/cargo-installXCIjK4/release/deps/libregex_syntax-a00680a54188855d.rlib" "/tmp/cargo-installXCIjK4/release/deps/libglob-c22c6cb31626d0
13.rlib" "/tmp/cargo-installXCIjK4/release/deps/libzero-f7f839e7f5a3ba01.rlib" "/tmp/cargo-installXCIjK4/release/deps/libclap-5579d7f3a8b1de95.rlib" "/tmp/cargo-installXCIjK4/release/deps/libvec_map-c206f45b50fc806f.rlib" "/tmp/cargo-installXCIjK4/releas
e/deps/libtextwrap-065adf31422d6776.rlib" "/tmp/cargo-installXCIjK4/release/deps/libunicode_width-59bfe9eb1e06738e.rlib" "/tmp/cargo-installXCIjK4/release/deps/libstrsim-d2a7096443eba89e.rlib" "/tmp/cargo-installXCIjK4/release/deps/libbitflags-345cb7eb64
111788.rlib" "/tmp/cargo-installXCIjK4/release/deps/libatty-33704f84732f3468.rlib" "/tmp/cargo-installXCIjK4/release/deps/liblibc-242ba9a552970ee6.rlib" "/tmp/cargo-installXCIjK4/release/deps/libansi_term-ba1360bc3b7bec54.rlib" "-Wl,--start-group" "/root
/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-4c74cbab78ec4891.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-0ef58120f7b95253
.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-e35e56ad39c7e20e.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-67
1a9f10c55c6c87.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-ee577127549b7793.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/li
bmemchr-bed369233e55d851.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-e8504b1ed73d6c6f.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-lin
ux-gnu/lib/libgimli-411eeeec028606dc.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-0ddec007a0883060.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_6
4-unknown-linux-gnu/lib/librustc_demangle-7c5cb27d99d10614.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-6c448d94453f4d95.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-
gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-22835d1ac5e3244b.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-84878e033904a7a4.rlib" "/root/.rustup/toolchains
/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-c0badcb9f7c5eab7.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-b4424726f33da388.rlib" "/root/.rustup/to
olchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-aa0bad4c4d134922.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-483ad457673e0
f5c.rlib" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-6cfcec236d576603.rlib" "-Wl,--end-group" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/l
ib/libcompiler_builtins-5667a4a7e2c48d47.rlib" "-Wl,-Bdynamic" "-lstdc++" "-ldl" "-lelf" "-lz" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/root/.rustup/toolchains/stable-x86_64-unknown-linux-gn
u/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/tmp/cargo-installXCIjK4/release/deps/cargo_bpf-1c93b40b086a07f0" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-Wl,-O1" "-nodefaultlibs"
  = note: /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /tmp/cargo-installXCIjK4/release/deps/libcargo_bpf_lib-827d47185e8c7c77.rlib(cargo_bpf_lib-827d47185e8c7c77.cargo_bpf_lib.339c3f2d-cgu.4.rcgu.o): in function `cargo
_bpf_lib::llvm::init':
          cargo_bpf_lib.339c3f2d-cgu.4:(.text._ZN13cargo_bpf_lib4llvm4init17h7bd51e73fc2ebe19E+0x314): undefined reference to `LLVMParseCommandLineOptions'
          /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /tmp/cargo-installXCIjK4/release/deps/libcargo_bpf_lib-827d47185e8c7c77.rlib(cargo_bpf_lib-827d47185e8c7c77.cargo_bpf_lib.339c3f2d-cgu.4.rcgu.o): in function `cargo
_bpf_lib::llvm::load_module':
          cargo_bpf_lib.339c3f2d-cgu.4:(.text._ZN13cargo_bpf_lib4llvm11load_module17hfd0f70298d4f187aE+0x8c): undefined reference to `LLVMCreateMemoryBufferWithContentsOfFile'
          /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cargo_bpf_lib.339c3f2d-cgu.4:(.text._ZN13cargo_bpf_lib4llvm11load_module17hfd0f70298d4f187aE+0x100): undefined reference to `LLVMParseIRInContext'
          /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /tmp/cargo-installXCIjK4/release/deps/libcargo_bpf_lib-827d47185e8c7c77.rlib(cargo_bpf_lib-827d47185e8c7c77.cargo_bpf_lib.339c3f2d-cgu.4.rcgu.o): in function `cargo
_bpf_lib::llvm::compile':
          cargo_bpf_lib.339c3f2d-cgu.4:(.text._ZN13cargo_bpf_lib4llvm7compile17h398ba87d320deb78E+0x2a): undefined reference to `LLVMGetGlobalContext'
          /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cargo_bpf_lib.339c3f2d-cgu.4:(.text._ZN13cargo_bpf_lib4llvm7compile17h398ba87d320deb78E+0x95): undefined reference to `LLVMGetFirstFunction'
          /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cargo_bpf_lib.339c3f2d-cgu.4:(.text._ZN13cargo_bpf_lib4llvm7compile17h398ba87d320deb78E+0xa8): undefined reference to `LLVMIsADbgVariableIntrinsic'
          /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cargo_bpf_lib.339c3f2d-cgu.4:(.text._ZN13cargo_bpf_lib4llvm7compile17h398ba87d320deb78E+0xaf): undefined reference to `LLVMGetCalledValue'
          /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cargo_bpf_lib.339c3f2d-cgu.4:(.text._ZN13cargo_bpf_lib4llvm7compile17h398ba87d320deb78E+0xb6): undefined reference to `LLVMGetNextInstruction'
          /usr/lib/gcc/x86_64-pc-linux-gnu/11.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cargo_bpf_lib.339c3f2d-cgu.4:(.text._ZN13cargo_bpf_lib4llvm7compile17h398ba87d320deb78E+0xd6): undefined reference to `LLVMGetFirstBasicBlock'

... omitted...

@taladar
Copy link
Author

taladar commented Feb 13, 2022

I got that one when I tried to compile the source from the repository. I haven't solved it yet, no. It looks to me like it is missing some linker option to include the LLVM library or possibly the directory where that is installed. Gentoo installs LLVM to version-specific directories so it might be necessary to include the llvm-config provided --ldflags?

@rhdxmr
Copy link
Collaborator

rhdxmr commented Feb 13, 2022

Thanks,
I could fix the error I encountered before. See #286 for more info.
But I didn't encountered the problem you mentioned..

Could you try installing cargo-bpf using the source of fix-gentoo branch?
You can do that by checkout to that branch and then run

cargo install --path ./cargo-bpf cargo-bpf

@rhdxmr
Copy link
Collaborator

rhdxmr commented Feb 13, 2022

@taladar
Can I ask a question related to gentoo linux?
Does the gentoo linux use sys-kernel/gentoo-kernel by default?
Or it uses sys-kernel/vanilla-kernel?
I am not a gentoo user and docker image does not contain kernel so I don't know which one is preferred kernel.

@taladar
Copy link
Author

taladar commented Feb 13, 2022

Gentoo doesn't really use defaults since you can decide what to use at install time yourself.

Personally I just use a kernel configured and compiled manually from the kernel git repositories (cloned to /usr/src/linux if paths are relevant).

@taladar
Copy link
Author

taladar commented Feb 13, 2022

Seems to work fine with other BPF stuff like the bcc and bpftrace tools.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants