]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.22] cmd/link: generate Mach-O UUID when -B flag is specified
authorCherry Mui <cherryyz@google.com>
Mon, 7 Oct 2024 15:11:06 +0000 (11:11 -0400)
committerGopher Robot <gobot@golang.org>
Wed, 30 Oct 2024 16:55:37 +0000 (16:55 +0000)
commite3fd4ba7f954d7025b8ba9e3f7961344cccad922
tree9d099abb5acd141c1462804000af96e3df2e4214
parent29252e4c5a6fe19bc90fc8b335b3d1c29ae582cb
[release-branch.go1.22] cmd/link: generate Mach-O UUID when -B flag is specified

Currently, on Mach-O, the Go linker doesn't generate LC_UUID in
internal linking mode. This causes some macOS system tools unable
to track the binary, as well as in some cases the binary unable
to access local network on macOS 15.

This CL makes the linker start generate LC_UUID. Currently, the
UUID is generated if the -B flag is specified. And we'll make it
generate UUID by default in a later CL. The -B flag is currently
for generating GNU build ID on ELF, which is a similar concept to
Mach-O's UUID. Instead of introducing another flag, we just use
the same flag and the same setting. Specifically, "-B gobuildid"
will generate a UUID based on the Go build ID.

Updates #68678.
Fixes #69991.

Cq-Include-Trybots: luci.golang.try:go1.22-darwin-amd64_14,go1.22-darwin-arm64_13
Change-Id: I90089a78ba144110bf06c1c6836daf2d737ff10a
Reviewed-on: https://go-review.googlesource.com/c/go/+/618595
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Ingo Oeser <nightlyone@googlemail.com>
Reviewed-by: Than McIntosh <thanm@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
(cherry picked from commit 20ed60311848ca40e51cb430fa602dd83a9c726f)
Reviewed-on: https://go-review.googlesource.com/c/go/+/622596
Auto-Submit: Michael Pratt <mpratt@google.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
TryBot-Bypass: Michael Pratt <mpratt@google.com>
src/cmd/link/internal/ld/elf.go
src/cmd/link/internal/ld/macho.go
src/cmd/link/internal/ld/macho_update_uuid.go [new file with mode: 0644]
src/cmd/link/internal/ld/main.go
test/fixedbugs/issue14636.go