Rare parallel build issue (`bpf-unknown-none-ld: cannot open output file build/dlibs/bpf_dlib.o: No such file or directory`)
Open
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 189
- Forks
- 23
- PR merge metrics
- No merged PRs in 30d
Description
I've only hit this a few times with MAKEOPTS=-j32 -l32.
bpf-unknown-none-ld -o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/dlibs/bpf_dlib.o -r /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--agg_lqbin.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--agg_qbin.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--basename.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--cleanpath.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--dirname.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--get_agg.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--get_bvar.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--get_dvar.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--index.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--inet_ntoa.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--inet_ntoa6.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--link_ntop.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--lltostr.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--mutex_owned.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--mutex_owner.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--progenyof.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--probe_error.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--rindex.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--rw_iswriter.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--rw_read_held.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--rw_write_held.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--speculation.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--strchr.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--strcmp.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--strjoin.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--strlen.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--strrchr.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--strtok.o /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/bpf--substr.o
bpf-unknown-none-ld: cannot open output file /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/dlibs/bpf_dlib.o: No such file or directory
make: *** [Makerules:23: /var/tmp/portage/dev-debug/dtrace-9999/work/dtrace-9999/build/dlibs/bpf_dlib.o] Error 1
* ERROR: dev-debug/dtrace-9999::gentoo failed (compile phase):
* emake failed
I'm going to try hit it with make --shuffle to get a seed. Full log attached: build.log.gz.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with Makerules:23 and inspect the target that creates build/dlibs/bpf_dlib.o. Use the attached build.log.gz and try reproducing the race with make --shuffle; done means highly parallel builds reliably create the output without the missing-directory failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100