tool/gocross: force use of our custom toolchain

The new 'toolchain' directive in go.mod can sometimes force
the use of an upstream toolchain against our wishes. Concurrently,
some of our dependencies have added the 'toolchain' directive, which
transitively adds it to our own go.mod. Force all uses of gocross to
ignore that directive and stick to our customized toolchain.

Updates #cleanup

Signed-off-by: David Anderson <danderson@tailscale.com>
This commit is contained in:
David Anderson 2024-01-19 18:09:42 -08:00 committed by Dave Anderson
parent ae79b2e784
commit 17eae5b0d3
2 changed files with 45 additions and 0 deletions

View File

@ -191,6 +191,7 @@ func autoflagsForTest(argv []string, env *Environment, goroot, nativeGOOS, nativ
env.Set("CC", cc) env.Set("CC", cc)
env.Set("TS_LINK_FAIL_REFLECT", boolStr(failReflect)) env.Set("TS_LINK_FAIL_REFLECT", boolStr(failReflect))
env.Set("GOROOT", goroot) env.Set("GOROOT", goroot)
env.Set("GOTOOLCHAIN", "local")
if subcommand == "env" { if subcommand == "env" {
return argv, env, nil return argv, env, nil

View File

@ -49,6 +49,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=linux (was <nil>) GOOS=linux (was <nil>)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "build", "gocross", "build",
@ -74,6 +75,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=linux (was <nil>) GOOS=linux (was <nil>)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "install", "gocross", "install",
@ -102,6 +104,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=linux (was <nil>) GOOS=linux (was <nil>)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "build", "gocross", "build",
@ -130,6 +133,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=freebsd (was freebsd) GOOS=freebsd (was freebsd)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "build", "gocross", "build",
@ -155,6 +159,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=linux (was <nil>) GOOS=linux (was <nil>)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "test", "gocross", "test",
@ -184,6 +189,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=windows (was windows) GOOS=windows (was windows)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "build", "gocross", "build",
@ -209,6 +215,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=darwin (was <nil>) GOOS=darwin (was <nil>)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "build", "gocross", "build",
@ -237,6 +244,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=darwin (was <nil>) GOOS=darwin (was <nil>)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "build", "gocross", "build",
@ -265,6 +273,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=ios (was ios) GOOS=ios (was ios)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=1 (was <nil>)`, TS_LINK_FAIL_REFLECT=1 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "build", "gocross", "build",
@ -297,6 +306,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=darwin (was darwin) GOOS=darwin (was darwin)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "build", "gocross", "build",
@ -329,6 +339,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=ios (was ios) GOOS=ios (was ios)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=1 (was <nil>)`, TS_LINK_FAIL_REFLECT=1 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "build", "gocross", "build",
@ -354,6 +365,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=linux (was <nil>) GOOS=linux (was <nil>)
GOROOT=/special/toolchain/path (was <nil>) GOROOT=/special/toolchain/path (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"go", "build", "go", "build",
@ -379,6 +391,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=linux (was <nil>) GOOS=linux (was <nil>)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "list", "gocross", "list",
@ -407,6 +420,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=linux (was <nil>) GOOS=linux (was <nil>)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"gocross", "build", "gocross", "build",
@ -433,6 +447,7 @@ GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>) GOMIPS=softfloat (was <nil>)
GOOS=linux (was <nil>) GOOS=linux (was <nil>)
GOROOT=/goroot (was <nil>) GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was <nil>)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`, TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{ wantArgv: []string{
"go", "run", "go", "run",
@ -443,6 +458,35 @@ TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
"--tags=foo", "--tags=foo",
}, },
}, },
{
name: "linux_amd64_to_linux_amd64_custom_toolchain",
env: map[string]string{
"GOTOOLCHAIN": "go1.30rc5",
},
argv: []string{"gocross", "build", "./cmd/tailcontrol"},
goroot: "/goroot",
nativeGOOS: "linux",
nativeGOARCH: "amd64",
envDiff: `CC=cc (was <nil>)
CGO_CFLAGS=-O3 -std=gnu11 (was <nil>)
CGO_ENABLED=1 (was <nil>)
CGO_LDFLAGS= (was <nil>)
GOARCH=amd64 (was <nil>)
GOARM=5 (was <nil>)
GOMIPS=softfloat (was <nil>)
GOOS=linux (was <nil>)
GOROOT=/goroot (was <nil>)
GOTOOLCHAIN=local (was go1.30rc5)
TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
wantArgv: []string{
"gocross", "build",
"-trimpath",
"-tags=tailscale_go,osusergo,netgo",
"-ldflags", "-X tailscale.com/version.longStamp=1.2.3-long -X tailscale.com/version.shortStamp=1.2.3 -X tailscale.com/version.gitCommitStamp=abcd -X tailscale.com/version.extraGitCommitStamp=defg '-extldflags=-static'",
"./cmd/tailcontrol",
},
},
} }
for _, test := range tests { for _, test := range tests {