From: Ryan Brown Date: Wed, 8 Apr 2015 19:55:34 +0000 (-0700) Subject: cmd/link/internal/ld: Skip combining dwarf for darwin/arm. X-Git-Tag: go1.5beta1~455 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5ee552815ceaa5874b73125df07265bee34d1cc1;p=gostls13.git cmd/link/internal/ld: Skip combining dwarf for darwin/arm. Change-Id: I3a6df0a76d57db7cb6910f4179a6ce380f219a37 Reviewed-on: https://go-review.googlesource.com/10442 Reviewed-by: David Crawshaw Run-TryBot: David Crawshaw TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 32ee45bcec..d87f1801f0 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -1055,21 +1055,24 @@ func hostlink() { } if Debug['s'] == 0 && debug_s == 0 && HEADTYPE == obj.Hdarwin { - dsym := fmt.Sprintf("%s/go.dwarf", tmpdir) - if out, err := exec.Command("dsymutil", "-f", outfile, "-o", dsym).CombinedOutput(); err != nil { - Ctxt.Cursym = nil - Exitf("%s: running dsymutil failed: %v\n%s", os.Args[0], err, out) - } - combinedOutput := fmt.Sprintf("%s/go.combined", tmpdir) - if err := machoCombineDwarf(outfile, dsym, combinedOutput); err != nil { - Ctxt.Cursym = nil - Exitf("%s: combining dwarf failed: %v", os.Args[0], err) - } - origOutput := fmt.Sprintf("%s/go.orig", tmpdir) - os.Rename(outfile, origOutput) - if err := os.Rename(combinedOutput, outfile); err != nil { - Ctxt.Cursym = nil - Exitf("%s: rename(%s, %s) failed: %v", os.Args[0], combinedOutput, outfile, err) + // Skip combining dwarf on arm. + if Thearch.Thechar != '5' && Thearch.Thechar != '7' { + dsym := fmt.Sprintf("%s/go.dwarf", tmpdir) + if out, err := exec.Command("dsymutil", "-f", outfile, "-o", dsym).CombinedOutput(); err != nil { + Ctxt.Cursym = nil + Exitf("%s: running dsymutil failed: %v\n%s", os.Args[0], err, out) + } + combinedOutput := fmt.Sprintf("%s/go.combined", tmpdir) + if err := machoCombineDwarf(outfile, dsym, combinedOutput); err != nil { + Ctxt.Cursym = nil + Exitf("%s: combining dwarf failed: %v", os.Args[0], err) + } + origOutput := fmt.Sprintf("%s/go.orig", tmpdir) + os.Rename(outfile, origOutput) + if err := os.Rename(combinedOutput, outfile); err != nil { + Ctxt.Cursym = nil + Exitf("%s: rename(%s, %s) failed: %v", os.Args[0], combinedOutput, outfile, err) + } } } }