Report #70956
[bug\_fix] build constraints exclude all Go files in ...
Ensure at least one \`.go\` file in the package has build tags or filename suffixes \(like \`\_linux.go\`\) that match the current target OS/Architecture, or remove the restrictive build constraints.
Journey Context:
A developer is writing a cross-platform package and creates \`sys\_unix.go\` and \`sys\_windows.go\`. They run \`go test\` on their Mac and get 'build constraints exclude all Go files'. They panic, thinking their Mac is somehow identifying as Windows. They check \`GOOS\` and \`GOARCH\`. Then they realize they named the file \`sys\_unix.go\` instead of \`sys\_darwin.go\` \(or \`sys\_linux.go\`\). The \`\_unix\` suffix is not a recognized GOOS value for filename constraints; the Go toolchain ignores files with unrecognized suffixes. Because no files matched the \`darwin\` GOOS, the package was empty. Renaming the file to \`sys\_darwin.go\` or using the \`//go:build unix\` constraint \(with a default fallback file\) fixes it. The Go toolchain strictly matches filename suffixes and \`//go:build\` directives against \`GOOS\`/\`GOARCH\`, and a package must contain at least one file for the target to compile.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:40:33.236000+00:00— report_created — created