Explorar el Código

tool/gocross: add android autoflags (#11465)

Updates tailscale/corp#18202

Signed-off-by: James Tucker <[email protected]>
James Tucker hace 2 años
padre
commit
e37eded256
Se han modificado 2 ficheros con 61 adiciones y 0 borrados
  1. 2 0
      tool/gocross/autoflags.go
  2. 59 0
      tool/gocross/autoflags_test.go

+ 2 - 0
tool/gocross/autoflags.go

@@ -61,6 +61,8 @@ func autoflagsForTest(argv []string, env *Environment, goroot, nativeGOOS, nativ
 	}
 	}
 
 
 	switch targetOS {
 	switch targetOS {
+	case "android":
+		cgo = env.Get("CGO_ENABLED", "0") == "1"
 	case "linux":
 	case "linux":
 		// Getting Go to build a static binary with cgo enabled is a
 		// Getting Go to build a static binary with cgo enabled is a
 		// minor ordeal. The incantations you apparently need are
 		// minor ordeal. The incantations you apparently need are

+ 59 - 0
tool/gocross/autoflags_test.go

@@ -199,6 +199,65 @@ TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
 				"./cmd/tailcontrol",
 				"./cmd/tailcontrol",
 			},
 			},
 		},
 		},
+		{
+			name: "linux_amd64_to_android_amd64",
+			env: map[string]string{
+				"GOOS": "android",
+			},
+			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=0 (was <nil>)
+CGO_LDFLAGS= (was <nil>)
+GOARCH=amd64 (was <nil>)
+GOARM=5 (was <nil>)
+GOMIPS=softfloat (was <nil>)
+GOOS=android (was android)
+GOROOT=/goroot (was <nil>)
+GOTOOLCHAIN=local (was <nil>)
+TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
+			wantArgv: []string{
+				"gocross", "build",
+				"-trimpath",
+				"-tags=tailscale_go",
+				"-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",
+				"./cmd/tailcontrol",
+			},
+		},
+		{
+			name: "linux_amd64_to_android_amd64_cgo",
+			env: map[string]string{
+				"GOOS":        "android",
+				"CGO_ENABLED": "1",
+			},
+			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 1)
+CGO_LDFLAGS= (was <nil>)
+GOARCH=amd64 (was <nil>)
+GOARM=5 (was <nil>)
+GOMIPS=softfloat (was <nil>)
+GOOS=android (was android)
+GOROOT=/goroot (was <nil>)
+GOTOOLCHAIN=local (was <nil>)
+TS_LINK_FAIL_REFLECT=0 (was <nil>)`,
+			wantArgv: []string{
+				"gocross", "build",
+				"-trimpath",
+				"-tags=tailscale_go",
+				"-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",
+				"./cmd/tailcontrol",
+			},
+		},
 		{
 		{
 			name:         "darwin_arm64_to_darwin_arm64",
 			name:         "darwin_arm64_to_darwin_arm64",
 			argv:         []string{"gocross", "build", "./cmd/tailcontrol"},
 			argv:         []string{"gocross", "build", "./cmd/tailcontrol"},