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 <crawshaw@golang.org>
Run-TryBot: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
index 32ee45b..d87f180 100644
--- a/src/cmd/link/internal/ld/lib.go
+++ b/src/cmd/link/internal/ld/lib.go
@@ -1055,21 +1055,24 @@
 	}
 
 	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)
+			}
 		}
 	}
 }