build: point macOS BPF builds at a Linux VM instead of "install bpftool"#30
Open
necco-c wants to merge 1 commit into
Open
build: point macOS BPF builds at a Linux VM instead of "install bpftool"#30necco-c wants to merge 1 commit into
necco-c wants to merge 1 commit into
Conversation
BPF objects only build on Linux. The vendored toolchain is Linux musl-static and there's no macOS bpftool or kernel BTF. On a Mac the build fell through to PATH and died at "bpftool not found, install bpftool / linux-tools", advice that can't be followed there. Guard the BPF/veristat rules behind uname -s. On Darwin, `make bpf` (and thus the default `all`, which yeet run invokes) fails fast with the real fix: build inside the Lima VM, then run there. clean-bpf and clangd stay on both platforms (rm/mkdir/printf need no toolchain, and clangd editor support is useful while editing .bpf.c on a Mac). Linux builds are unchanged; verified the object still links there.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
BPF objects only build on Linux. The vendored toolchain is Linux musl-static and there is no macOS
bpftoolor kernel BTF, so on a Macmake bpffell through to PATH and died at:That advice can't be followed on macOS. This guards the BPF/veristat rules behind
uname -s: on Darwin,make bpf(and thus the defaultall, whichyeet runinvokes) fails fast with the real fix instead:clean-bpfandclangdstay on both platforms (rm/mkdir/printf need no toolchain, andclangdeditor support is useful while editing.bpf.con a Mac).Why it matters
yeet newclones this template from the remote, so this message is what a freshly-scaffolded project shows a macOS user on their first build. Today that's the impossible "install bpftool" hint.Verified
make/make bpffail fast with the VM instructions;make bundleandmake clean-bpfstill work.yeet.debian-13): unchanged — the object still links (bin/probe.bpf.o, 54KB) and the bundle builds.Unmarked commit, so this releases as a minor bump per the release convention.