• Elias Naur's avatar
    cmd/link/internal/ld: skip DWARF combining for iOS binaries · bcdbd58c
    Elias Naur authored
    The macOS and iOS external linker strips DWARF information from
    binaries because it assumes the information will go into separate
    DWARF information .dSYM files. To preserve the embedded debugging
    information, the Go linker re-combines the separate DWARF
    information into the unmapped __DWARF segment of the final
    executable.
    
    However, the iOS dyld linker does not allow unmapped segments, so
    use the presence of the LC_VERSION_MIN_IPHONEOS linker command to
    skip DWARF combining. Note that we can't use GOARCH for detection
    since the iOS emulator runs on  GOARCH=386 and GOARCH=amd64 and we
    will run into https://golang.org/issues/25148.
    
    Updates #25148.
    
    Change-Id: I29a1bc468fdee74ab3b27c46931501a0a8120c66
    Reviewed-on: https://go-review.googlesource.com/111275
    Run-TryBot: Elias Naur <elias.naur@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarCherry Zhang <cherryyz@google.com>
    bcdbd58c
dwarf_test.go 4.47 KB