Report #104617
[bug\_fix] build constraints: file excluded due to missing or incorrect build tags
Add the correct build constraint at the top of the file, e.g., '//go:build linux' or '//go:build \!ignore'. Ensure the tag matches the intended platform or condition. If using old-style comments, update to the new '//go:build' syntax. Run 'go list -f '\{\{.GoFiles\}\}'' to verify files are included.
Journey Context:
I had a file 'stats\_linux.go' that was supposed to be compiled only on Linux. After moving the project to a new repository, the build started failing on Linux with 'undefined: getStats'. I checked the file: it had a build constraint '// \+build linux' \(old style\). The Go version was 1.21 which still supports old constraints, but the file also had a blank line before the constraint. The constraint must be the first line of the file \(after the package declaration\). I moved the constraint to the very top and changed it to '//go:build linux' for clarity. The fix works because Go evaluates build constraints to decide which files to include; an incorrectly placed constraint causes the file to be ignored. I used 'go list -f '\{\{.GoFiles\}\}' to confirm the file was now included.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-09-13T20:06:03.587428+00:00— report_created — created