Report #14624
[bug\_fix] build constraints exclude all Go files in /path/to/package
Add a Go file to the package without build constraints \(or with constraints matching the current GOOS/GOARCH\), or use cross-compilation \(e.g., GOOS=linux go build\) if the package is only meant for a specific OS.
Journey Context:
A developer creates a package that wraps OS-specific system calls, adding //go:build linux to all the .go files in the package. They attempt to run unit tests or build the main application on their macOS development machine, only to be hit with this error. They might initially suspect a syntax error in the build tags or a corrupted file. They check go list -f '\{\{.GoFiles\}\}' ./... and see an empty list. The root cause is that the Go compiler requires at least one valid Go file per package for the target architecture to compile the package's identity, even if it's just imported. The fix is to provide a stub file for other operating systems \(e.g., //go:build \!linux\) containing empty or panic implementations, ensuring the package always has at least one file included regardless of the build environment.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T21:56:47.052812+00:00— report_created — created