From d22f287f12f4782082cd93785ad91e78dbe0d4d6 Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Tue, 11 Apr 2023 14:27:45 +0000 Subject: cmd/dist: refactor generated cgo-support logic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit During bootstrapping, cmd/dist writes a file indicating which GOOS/GOARCH combinations are valid, and which support cgo-enabled builds. That information previously went into the go/build package, but today it fits in more naturally in the internal/platform package (which already has a number of functions indicating feature support for GOOS/GOARCH combinations). Moreover, as of CL 450739 the cmd/go logic for determining whether to use cgo is somewhat more nuanced than the go/build logic: cmd/go checks for the presence of a C compiler, whereas go/build does not (mostly because it determines its configuration at package-init time, and checking $PATH for a C compiler is somewhat expensive). To simplify this situation, this change: - consolidates the “cgo supported” check in internal/platform (alongside many other platform-support checks) instead of making it a one-off in go/build, - and updates a couple of tests to use testenv.HasCGO instead of build.Default.CgoEnabled to decide whether to test a cgo-specific behavior. For #58884. For #59500. Change-Id: I0bb2502dba4545a3d98c9e915727382ce536a0f3 Reviewed-on: https://go-review.googlesource.com/c/go/+/483695 Auto-Submit: Bryan Mills Reviewed-by: Ian Lance Taylor TryBot-Result: Gopher Robot Run-TryBot: Bryan Mills --- src/cmd/objdump/objdump_test.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/cmd/objdump') diff --git a/src/cmd/objdump/objdump_test.go b/src/cmd/objdump/objdump_test.go index 3abfb1461c..6e781c924d 100644 --- a/src/cmd/objdump/objdump_test.go +++ b/src/cmd/objdump/objdump_test.go @@ -8,7 +8,6 @@ import ( "cmd/internal/notsha256" "flag" "fmt" - "go/build" "internal/platform" "internal/testenv" "os" @@ -253,7 +252,7 @@ func testDisasm(t *testing.T, srcfname string, printCode bool, printGnuAsm bool, func testGoAndCgoDisasm(t *testing.T, printCode bool, printGnuAsm bool) { t.Parallel() testDisasm(t, "fmthello.go", printCode, printGnuAsm) - if build.Default.CgoEnabled { + if testenv.HasCGO() { testDisasm(t, "fmthellocgo.go", printCode, printGnuAsm) } } -- cgit v1.3-5-g9baa