]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.23] 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)
committerMichael Pratt <mpratt@google.com>
Wed, 30 Oct 2024 17:03:35 +0000 (17:03 +0000)
commit5472853843bd9ae72ddc107a556558d13e39b035
tree1cafc25bd4f39f5ebaa4715971b28227c22e005e
parentcfe0ae0b7070048ceda021988b01fbc6a8589a1b
[release-branch.go1.23] 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 #69992.

Cq-Include-Trybots: luci.golang.try:go1.23-darwin-amd64_14,go1.23-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/+/622595
Reviewed-by: 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
src/cmd/link/internal/ld/main.go
test/fixedbugs/issue14636.go