diff options
author | Cherry Mui <cherryyz@google.com> | 2023-07-10 18:50:06 -0400 |
---|---|---|
committer | Cherry Mui <cherryyz@google.com> | 2023-09-21 22:22:16 +0000 |
commit | 83dce45959669a3b090d6701605a7ba408a10587 (patch) | |
tree | ab75fc86743acb515e3b410c74b329cbf0d8454a | |
parent | 08c544db98da4292edfc5da7ceca17808fd41168 (diff) | |
download | go-83dce45959669a3b090d6701605a7ba408a10587.tar.gz go-83dce45959669a3b090d6701605a7ba408a10587.zip |
[release-branch.go1.20] cmd/link: suppress -bind_at_load deprecation warning for ld-prime
ld-prime emits a deprecation warning for -bind_at_load. The flag
is needed for plugins to not deadlock (#38824) when linking with
older darwin linker. It is supposedly not needed with newer linker
when chained fixups are used. For now, we always pass it, and
suppress the warning.
Updates #61229.
For #62597.
Change-Id: I4b8a6f864a460c40dc38adbb533f664f7fd5343c
Reviewed-on: https://go-review.googlesource.com/c/go/+/508696
Reviewed-by: Than McIntosh <thanm@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Cherry Mui <cherryyz@google.com>
(cherry picked from commit 040dbf9c181a0e3ea9f7bd3ebe3f75acdc878aaf)
Reviewed-on: https://go-review.googlesource.com/c/go/+/527798
-rw-r--r-- | src/cmd/link/internal/ld/lib.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index c44983144d..6eae9002b5 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -1842,6 +1842,16 @@ func (ctxt *Link) hostlink() { out = append(out[:i], out[i+len(noPieWarning):]...) } } + if ctxt.IsDarwin() { + const bindAtLoadWarning = "ld: warning: -bind_at_load is deprecated on macOS\n" + if i := bytes.Index(out, []byte(bindAtLoadWarning)); i >= 0 { + // -bind_at_load is deprecated with ld-prime, but needed for + // correctness with older versions of ld64. Swallow the warning. + // TODO: maybe pass -bind_at_load conditionally based on C + // linker version. + out = append(out[:i], out[i+len(bindAtLoadWarning):]...) + } + } ctxt.Logf("%s", out) } |