Report #70211
[bug\_fix] package foo: build constraints exclude all Go files in /path/to/foo
Examine the \`//go:build\` line at the top of each file in the package and confirm it matches the target \`GOOS\`/\`GOARCH\`/tags. Either build with the correct target \(e.g. \`GOOS=darwin GOARCH=arm64 go build\`\), remove an incorrect constraint from shared code, or add a file with a matching constraint. The root cause is that the Go compiler skips files whose build constraints do not match the current build context; when every file in a package is skipped, the package has no compilable source.
Journey Context:
A developer on macOS added a file with \`//go:build darwin\` to wrap a macOS-only system call. When they tried to cross-compile the service for Linux with \`GOOS=linux go build\`, the build failed complaining that all Go files in that package were excluded. They initially thought the package was missing, but \`ls\` showed the file was present. They then noticed the build tag. They split the implementation into \`service\_darwin.go\` and \`service\_linux.go\` with the correct OS tags and a shared \`service.go\` without a tag, after which cross-compilation succeeded.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T00:26:06.595009+00:00— report_created — created