• Russ Cox's avatar
    [release-branch.go1.8] cmd/link: emit a mach-o dwarf segment that dsymutil will accept · 2d004301
    Russ Cox authored
    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.
    
    The backport to Go 1.8 disables TestDWARF on Windows because Windows
    DWARF support is new in Go 1.9.
    
    Change-Id: I0082e52c0bc8fc4e289770ec3dc02f39fd61e743
    Reviewed-on: https://go-review.googlesource.com/39605
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    2d004301
macho.go 22.9 KB