oracle / oracle/dtrace

"indirect call in function, which are not supported by eBPF" (build failing on Debian Bookworm 12.5.0)

Open
#110 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dependency
Dominant language
C
Stars
189
Forks
23
PR merge metrics
No merged PRs in 30d

Description

I installed libbpf-dev (without which the build failed because of not finding bpf/bpf_helpers.h)

./configure BPFC=bpf-gcc BPFLD=bpf-ld
make BPFC=bpf-gcc BPFLD=bpf-ld

It successfully compiles quite a bit of c, but eventually runs into this eBPF limitation about indirect calls:

CC: libproc/elfish_32.c
CC: libproc/Psymtab.c
CC: libproc/rtld_db.c
CC: libproc/rtld_offsets.c
CC: libproc/wrap.c
CC: libproc/isadep_dispatch.c
CC: libproc/i386/isadep.c
BUILD-AR: libproc.a
CC: test/triggers/libproc-dlmlib.c
BUILD-AR: libproc-dlmlib.a
CC: test/triggers/libproc-lookup-victim-lib.c
BUILD-AR: libproc-lookup-victim-lib.a
AR: libcommon.a
AR: libport.a
AR: libproc.a
SHLINK: libdtrace.so
SHLINK: libproc-dlmlib.so
SHLINK: libproc-lookup-victim-lib.so
bpf/get_bvar.c: In function ‘dt_get_bvar’:
bpf/get_bvar.c:212:1: error: indirect call in function, which are not supported by eBPF
  212 | }
      | ^
bpf/get_bvar.c:212:1: error: indirect call in function, which are not supported by eBPF
BPF-CC: bpf/agg_lqbin.c
BPF-CC: bpf/agg_qbin.c
BPF-CC: bpf/basename.S
BPF-CC: bpf/cleanpath.S
BPF-CC: bpf/dirname.S
BPF-CC: bpf/get_agg.c
bpf/get_agg.c: In function ‘dt_no_agg’:
bpf/get_agg.c:33:1: error: indirect call in function, which are not supported by eBPF
   33 | }
      | ^
make: *** [Makerules:23: /home/blake/try/dtrace-utils/build/bpf--get_agg.o] Error 1

I tried this with the latest commit in devel and also with the tag 2.0.1.1 with the same result.

Any guidance would be appreciated.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure on Debian Bookworm with libbpf-dev using the reported configure and make commands. Start with bpf/get_bvar.c and bpf/get_agg.c, then determine why their builds produce unsupported indirect calls; done means the reported build completes past these errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
build-system, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.