summaryrefslogtreecommitdiff
path: root/AGENTS.md
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-06 09:35:55 +0300
committerPaul Buetow <paul@buetow.org>2026-05-06 09:35:55 +0300
commitfbb7c9a9ad8d03d5d095ac441a58b37537e0ab8d (patch)
tree2ccb042e90ca3ed99e13d9e7bf36948e7e362936 /AGENTS.md
parent3b20f2c4d16c7b7f583e9ab2b51213e9ddc94fd5 (diff)
add Dockerfile and Rocky Linux 9 build docs
Introduces a Docker-based build path so ior can be compiled on any Linux host without a native Rocky 9 toolchain setup: - Dockerfile: Rocky 9 minimal image with Go (version from ARG, default from go.mod), static libelf/libzstd built from source, libbpfgo at v0.9.2-libbpf-1.5.1, and mage; CMD runs mage generate + mage all against the repo root mounted as a volume. - scripts/build-with-docker.sh: reads GO_VERSION from go.mod, passes it as --build-arg to docker build, mounts tracefs and BTF into the container, writes the binary to the repo root. - Magefile.go: adds BuildDocker target that wraps the script. - README.md: simplified to the two build paths (Docker + native) with links to docs/; removed GOTOOLCHAIN=auto throughout. - docs/build-rocky-linux-9.md: full manual Rocky 9 steps, libbpfgo toolchain setup/rollback, compile-once-run-everywhere explanation, and timing semantics. - docs/tui-reference.md: complete TUI hotkey reference, recording mode details, and the .ior.zst vs Parquet trade-off table. - AGENTS.md: removed GOTOOLCHAIN=auto from all build commands. - internal/c/generated_tracepoints.c: regenerated against the host kernel. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md27
1 files changed, 14 insertions, 13 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 0d65300..11a3618 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -12,22 +12,23 @@ git -C ../libbpfgo submodule update --init --recursive
make -C ../libbpfgo libbpfgo-static
```
-If builds/tests fail with missing libbpf headers (for example `bpf/bpf.h` not found), rerun the commands above and then run `env GOTOOLCHAIN=auto mage world`. Prefer Mage targets over raw `go test` for packages that import `libbpfgo`; Mage wires the required `CGO_CFLAGS`, `CGO_LDFLAGS`, and `LIBBPFGO` values.
+If builds/tests fail with missing libbpf headers (for example `bpf/bpf.h` not found), rerun the commands above and then run `mage world`. Prefer Mage targets over raw `go test` for packages that import `libbpfgo`; Mage wires the required `CGO_CFLAGS`, `CGO_LDFLAGS`, and `LIBBPFGO` values.
```bash
-env GOTOOLCHAIN=auto mage all # Build everything (BPF objects and Go binary)
-env GOTOOLCHAIN=auto mage test # Run all tests
-GOTOOLCHAIN=auto TEST_NAME=TestEventloop mage testWithName # Run specific test
-env GOTOOLCHAIN=auto mage integrationTest # Build + run integration tests (default parallelism is capped)
-GOTOOLCHAIN=auto INTEGRATION_PARALLEL=1 mage integrationTest # Force serial integration tests
-env GOTOOLCHAIN=auto mage generate # Generate code (required after modifying tracepoint definitions)
-env GOTOOLCHAIN=auto mage bench # Run benchmarks
-env GOTOOLCHAIN=auto mage prReview # Run PR review baseline: world + benchProf
-env GOTOOLCHAIN=auto mage clean # Clean build artifacts
-env GOTOOLCHAIN=auto mage world # Clean + generate + test + build (recommended reset path)
-env GOTOOLCHAIN=auto mage demo # Regen demo/ GIFs + screenshots (needs vhs+ttyd, sudo -v warmed)
+mage all # Build everything (BPF objects and Go binary)
+mage buildDocker # Build ior inside a Rocky Linux 9 container (writes binary to repo root)
+mage test # Run all tests
+TEST_NAME=TestEventloop mage testWithName # Run specific test
+mage integrationTest # Build + run integration tests (default parallelism is capped)
+INTEGRATION_PARALLEL=1 mage integrationTest # Force serial integration tests
+mage generate # Generate code (required after modifying tracepoint definitions)
+mage bench # Run benchmarks
+mage prReview # Run PR review baseline: world + benchProf
+mage clean # Clean build artifacts
+mage world # Clean + generate + test + build (recommended reset path)
+mage demo # Regen demo/ GIFs + screenshots (needs vhs+ttyd, sudo -v warmed)
TAPE=07-stream-live mage demoOne # Regen one demo tape only
-env GOTOOLCHAIN=auto mage installDemoTools # One-time: install vhs (go install) and ttyd (dnf)
+mage installDemoTools # One-time: install vhs (go install) and ttyd (dnf)
```
## Demo Pipeline