Commit 3c8d6af8 authored by David Crawshaw's avatar David Crawshaw

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: default avatarIan Lance Taylor <iant@golang.org>
parent 135572eb
......@@ -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 {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment