]> Cypherpunks repositories - gostls13.git/commit
cmd/link: emit a mach-o dwarf segment that dsymutil will accept
authorRuss Cox <rsc@golang.org>
Thu, 30 Mar 2017 00:50:34 +0000 (20:50 -0400)
committerRuss Cox <rsc@golang.org>
Thu, 30 Mar 2017 17:31:50 +0000 (17:31 +0000)
commit18e77673d85fe8d230b8c2dfffe7cd5341b72c4f
treee355de9ab5d1f1262d2bd13e73c35d37cfedb8d4
parenteca90561c39d4d8cc587fbcc70baa9d90f3f0707
cmd/link: emit a mach-o dwarf segment that dsymutil will accept

Right now, at least with Xcode 8.3, we invoke dsymutil and dutifully
copy what it produces back into the binary, but it has actually dropped
all the DWARF information that we wanted, because it didn't like
the look of go.o.

Make it like the look of go.o.

DWARF is tested in other ways, but typically indirectly and not for cgo programs.
Add a direct test, and one that exercises cgo.
This detects missing dwarf information in cgo-using binaries on macOS,
at least with Xcode 8.3, and possibly earlier versions as well.

Fixes #19772.

Change-Id: I0082e52c0bc8fc4e289770ec3dc02f39fd61e743
Reviewed-on: https://go-review.googlesource.com/38855
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/link/dwarf_test.go [new file with mode: 0644]
src/cmd/link/internal/ld/lib.go
src/cmd/link/internal/ld/macho.go