diff options
| author | Dmitri Goutnik <dgoutnik@gmail.com> | 2019-10-27 12:22:02 -0500 |
|---|---|---|
| committer | Tobias Klauser <tobias.klauser@gmail.com> | 2019-10-28 09:26:37 +0000 |
| commit | 152dddee7ec08e0bcf9acc41487a826f468ba8ab (patch) | |
| tree | f3a3f4c05288ab60f41166606199015969e2a468 /src | |
| parent | 1f3339f441e2053f8efd7ead417761ea319fe790 (diff) | |
| download | go-152dddee7ec08e0bcf9acc41487a826f468ba8ab.tar.xz | |
cmd/link: switch to ld.bfd on freebsd/arm64
Updates golang/go#35197
Change-Id: I4fd85c84475761d71d2c17e62796e0a411cf91d8
Reviewed-on: https://go-review.googlesource.com/c/go/+/203519
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/link/internal/ld/lib.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 1edf8cf407..a6fa14cc74 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -1294,6 +1294,19 @@ func (ctxt *Link) hostlink() { } } + if ctxt.Arch.Family == sys.ARM64 && objabi.GOOS == "freebsd" { + // Switch to ld.bfd on freebsd/arm64. + argv = append(argv, "-fuse-ld=bfd") + + // Provide a useful error if ld.bfd is missing. + cmd := exec.Command(*flagExtld, "-fuse-ld=bfd", "-Wl,--version") + if out, err := cmd.CombinedOutput(); err == nil { + if !bytes.Contains(out, []byte("GNU ld")) { + log.Fatalf("ARM64 external linker must be ld.bfd (issue #35197), please install devel/binutils") + } + } + } + if ctxt.IsELF && len(buildinfo) > 0 { argv = append(argv, fmt.Sprintf("-Wl,--build-id=0x%x", buildinfo)) } |
