From 3f8f929d60a90c4e4e2b07c8d1972166c1a783b1 Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Wed, 1 Mar 2023 16:11:07 +0000 Subject: cmd/link/internal/ld: move more of mustLinkExternal into internal/platform internal/platform.MustLinkExternal is used in various places to determine whether external linking is required. It should always match what the linker actually requires, but today does not match because the linker imposes additional constraints. Updates #31544. Change-Id: I0cc6ad587e95c607329dea5d60d29a5fb2a9e722 Reviewed-on: https://go-review.googlesource.com/c/go/+/472515 Run-TryBot: Bryan Mills TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- src/cmd/nm/nm_cgo_test.go | 41 +++++------------------------------------ 1 file changed, 5 insertions(+), 36 deletions(-) (limited to 'src/cmd/nm') diff --git a/src/cmd/nm/nm_cgo_test.go b/src/cmd/nm/nm_cgo_test.go index 210577e6f7..face58c311 100644 --- a/src/cmd/nm/nm_cgo_test.go +++ b/src/cmd/nm/nm_cgo_test.go @@ -2,56 +2,25 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build cgo - package main import ( - "runtime" + "internal/testenv" "testing" ) -func canInternalLink() bool { - switch runtime.GOOS { - case "aix": - return false - case "dragonfly": - return false - case "freebsd": - switch runtime.GOARCH { - case "arm64", "riscv64": - return false - } - case "linux": - switch runtime.GOARCH { - case "arm64", "loong64", "mips64", "mips64le", "mips", "mipsle", "ppc64", "ppc64le", "riscv64": - return false - } - case "openbsd": - switch runtime.GOARCH { - case "arm64", "mips64": - return false - } - case "windows": - switch runtime.GOARCH { - case "arm64": - return false - } - } - return true -} - func TestInternalLinkerCgoExec(t *testing.T) { - if !canInternalLink() { - t.Skip("skipping; internal linking is not supported") - } + testenv.MustHaveCGO(t) + testenv.MustInternalLink(t, true) testGoExec(t, true, false) } func TestExternalLinkerCgoExec(t *testing.T) { + testenv.MustHaveCGO(t) testGoExec(t, true, true) } func TestCgoLib(t *testing.T) { + testenv.MustHaveCGO(t) testGoLib(t, true) } -- cgit v1.3