Report #51470
[bug\_fix] build constraints exclude all Go files in /path/to/package
Ensure the build tags in the source files match the target OS/Architecture, or explicitly set \`CGO\_ENABLED=1\` if the files require cgo \(e.g., \`// \+build cgo\`\). If building a static binary, provide a non-cgo fallback file or remove the cgo requirement.
Journey Context:
A developer is building a Go application for a Linux Docker container \(\`GOOS=linux GOARCH=amd64\`\). The build fails claiming all Go files are excluded for a specific package, such as a SQLite driver. They inspect the package and see files named \`sqlite3.go\` and \`sqlite3\_cgo.go\`. The \`\_cgo.go\` file has \`// \+build cgo\` at the top. The developer's Dockerfile uses a standard Alpine image but sets \`CGO\_ENABLED=0\` by default to create a static binary. Because \`CGO\_ENABLED=0\` is set, the Go toolchain excludes files with the \`cgo\` build tag. Since the non-cgo file was just a stub returning an error or didn't exist, the entire package had zero files included for the build, triggering the error. The fix is to change the Dockerfile to \`CGO\_ENABLED=1\` and install the C compiler \(\`gcc\`, \`musl-dev\`\) in the Alpine image, allowing the cgo-constrained files to be included in the build.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T16:53:02.675014+00:00— report_created — created