From 580ac2003236e069bce840956e4a977d3e38f65d Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Sun, 3 May 2026 16:03:00 +0000 Subject: [PATCH] docs(readme): call out C toolchain prerequisite for source builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without gcc/clang on PATH, CGO is silently disabled and `go build` / `go install` fails at the call site with `undefined: sqlitevec.LoadInto` rather than a clear toolchain error, because `internal/sqlitevec/load.go` is gated by `//go:build cgo`. The README's "Build from source" section already assumed CGO_ENABLED=1 in the command but never said how to make that actually work — leaving the next from-source builder to chase a misleading "undefined symbol" error. Add a short prerequisites paragraph above the build commands, pointing at the existing comprehensive list in docs/getting-started.md. --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 51c0c79..ab3cd33 100644 --- a/README.md +++ b/README.md @@ -177,6 +177,14 @@ embed or extract) return `503 {"code": "llm_disabled"}`. ## Build from source +**Prerequisites:** Go ≥ 1.25, Node ≥ 22, and a working C toolchain +(`build-essential` on Debian/Ubuntu, `xcode-select --install` on macOS, +MinGW-w64 / MSYS2 on Windows). Without `gcc` on `PATH`, CGO is silently +disabled and the build fails at the call site with a misleading +`undefined: sqlitevec.LoadInto` rather than a clear toolchain error, +because `internal/sqlitevec/load.go` is gated by `//go:build cgo`. Full +list: [`docs/getting-started.md`](docs/getting-started.md#prerequisites). + ```bash # First time on a connected machine npm --prefix ui ci # install UI deps