mirror of
https://github.com/golang/go
synced 2024-11-20 01:54:41 -07:00
cmd/link: use -znocopyreloc when dynamic linking
On ARM, use the gold linker to avoid copy relocations. https://sourceware.org/bugzilla/show_bug.cgi?id=19962 Change-Id: Icf82a38d39495d4518812713b957a03a6652c728 Reviewed-on: https://go-review.googlesource.com/22141 Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
135572eb32
commit
3c8d6af8e0
@ -1117,6 +1117,18 @@ func hostlink() {
|
||||
// because lazy PLT resolution can use large amounts of stack at
|
||||
// times we cannot allow it to do so.
|
||||
argv = append(argv, "-Wl,-znow")
|
||||
|
||||
// Do not let the host linker generate COPY relocations. These
|
||||
// can move symbols out of sections that rely on stable offsets
|
||||
// from the beginning of the section (like STYPE).
|
||||
argv = append(argv, "-Wl,-znocopyreloc")
|
||||
|
||||
if SysArch.Family == sys.ARM {
|
||||
// The GNU linker will generate COPY relocations on ARM
|
||||
// even with -znocopyreloc set. Switch to gold.
|
||||
// https://sourceware.org/bugzilla/show_bug.cgi?id=19962
|
||||
argv = append(argv, "-fuse-ld=gold")
|
||||
}
|
||||
}
|
||||
|
||||
if Iself && len(buildinfo) > 0 {
|
||||
|
Loading…
Reference in New Issue
Block a user