aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/internal/obj
diff options
context:
space:
mode:
authorCherry Mui <cherryyz@google.com>2025-03-25 15:09:31 -0400
committerCherry Mui <cherryyz@google.com>2025-03-28 14:35:41 -0700
commit5fb9e5dc19c48c8de09720bd4cb64eccd933153d (patch)
tree4653d87c5bbf4e06784423b9efd7768a59476dfe /src/cmd/internal/obj
parentb9934d855c4635edf02092a72802017676abd8eb (diff)
downloadgo-5fb9e5dc19c48c8de09720bd4cb64eccd933153d.tar.xz
cmd/link: handle Mach-O X86_64_RELOC_SUBTRACTOR in internal linking
With recent LLVM toolchain, on macOS/AMD64, the race detector syso file built from it contains X86_64_RELOC_SUBTRACTOR relocations, which the Go linker currently doesn't handle in internal linking mode. To ensure internal linking mode continue to work with the race detector syso, this CL adds support of X86_64_RELOC_SUBTRACTOR relocations. X86_64_RELOC_SUBTRACTOR is actually a pair of relocations that resolves to the difference between two symbol addresses (each relocation specifies a symbol). For the cases we care (the race syso), the symbol being subtracted out is always in the current section, so we can just convert it to a PC-relative relocation, with the addend adjusted. If later we need the more general form, we can introduce a new mechanism (say, objabi.R_DIFF) that works as a pair of relocations like the Mach-O one. As we expect the pair of relocations be consecutive, don't reorder (sort) relocation records when loading Mach-O objects. Change-Id: I757456b07270fb4b2a41fd0fef67a2b39dd6b238 Reviewed-on: https://go-review.googlesource.com/c/go/+/660715 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Than McIntosh <thanm@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Diffstat (limited to 'src/cmd/internal/obj')
0 files changed, 0 insertions, 0 deletions