| # golang.org/issue/46347: a stale runtime/cgo should only force a single rebuild |
| |
| [!cgo] skip |
| [short] skip |
| |
| |
| # If we set a unique CGO_CFLAGS, the installed copy of runtime/cgo |
| # should be reported as stale. |
| |
| env CGO_CFLAGS=-DTestScript_cgo_stale=true |
| stale runtime/cgo |
| |
| |
| # If we then build a package that uses cgo, runtime/cgo should be rebuilt and |
| # cached with the new flag, but not installed to GOROOT (and thus still stale). |
| |
| env GOCACHE=$WORK/cache # Use a fresh cache to avoid interference between runs. |
| |
| go build -x . |
| stderr '[/\\]cgo'$GOEXE'["]? .* -importpath runtime/cgo' |
| stale runtime/cgo |
| |
| |
| # After runtime/cgo has been rebuilt and cached, it should not be rebuilt again |
| # even though it is still reported as stale. |
| |
| go build -x . |
| ! stderr '[/\\]cgo'$GOEXE'["]? .* -importpath runtime/cgo' |
| stale runtime/cgo |
| |
| |
| -- go.mod -- |
| module example.com/m |
| |
| go 1.17 |
| -- m.go -- |
| package m |
| |
| import "C" |