Skip to content

Commit 06b6759

Browse files
committed
cmd/link: default to external linking with cgo std packages
Previously, when a program depends on cgo packages in the standard library (e.g. net, os/user) but not otherwise use cgo, we default to internal linking mode. As we shipped pre-built cgo-using packages in Go distributions, we don't require a C compiler to build those packages. Then, by using internal linking we can link programs using those packages without requiring a C toolchain. As of Go 1.20, we stopped shipping those pre-built packages. If a user doesn't have a C toolchain, they will use the non-cgo version of the package. If they have a C toolchain, they can get cgo-using packages but they can link with the external linker as well. So there is no strong need to be able to link the cgo version of the packages without a C toolchain. This CL makes it default to external linking mode. Fixes #58619. Fixes #58620. Change-Id: I62d3744c2b82ce734813c0e303e417d85dd29868 Reviewed-on: https://go-review.googlesource.com/c/go/+/470298 Run-TryBot: Cherry Mui <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Reviewed-by: Than McIntosh <[email protected]>
1 parent 521d261 commit 06b6759

File tree

1 file changed

+0
-3
lines changed
  • src/cmd/link/internal/ld

1 file changed

+0
-3
lines changed

src/cmd/link/internal/ld/lib.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,9 +1118,6 @@ var hostobj []Hostobj
11181118
var internalpkg = []string{
11191119
"crypto/internal/boring",
11201120
"crypto/internal/boring/syso",
1121-
"crypto/x509",
1122-
"net",
1123-
"os/user",
11241121
"runtime/cgo",
11251122
"runtime/race",
11261123
"runtime/race/internal/amd64v1",

0 commit comments

Comments
 (0)