mirror of
https://github.com/golang/go
synced 2024-11-23 16:10:05 -07:00
cmd/link: add LC_VERSION_MIN_MACOSX to linkmode=internal OS X binaries
This makes lldb willing to debug them. The minimum version is hard-coded at OS X 10.7, because that is the minimum that Go requires. For more control over the version, users can use linkmode=external and pass the relevant flags to the host linker. Fixes #12941. Change-Id: I20027be8aa034d07dd2a3326828f75170afe905f Reviewed-on: https://go-review.googlesource.com/18588 Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
dd6753a6f2
commit
4a0eee2faa
@ -566,6 +566,25 @@ func Asmbmacho() {
|
||||
}
|
||||
}
|
||||
|
||||
if Linkmode == LinkInternal {
|
||||
// For lldb, must say LC_VERSION_MIN_MACOSX or else
|
||||
// it won't know that this Mach-O binary is from OS X
|
||||
// (could be iOS or WatchOS intead).
|
||||
// Go on iOS uses linkmode=external, and linkmode=external
|
||||
// adds this itself. So we only need this code for linkmode=internal
|
||||
// and we can assume OS X.
|
||||
//
|
||||
// See golang.org/issues/12941.
|
||||
const (
|
||||
LC_VERSION_MIN_MACOSX = 0x24
|
||||
LC_VERSION_MIN_IPHONEOS = 0x25
|
||||
LC_VERSION_MIN_WATCHOS = 0x30
|
||||
)
|
||||
ml := newMachoLoad(LC_VERSION_MIN_MACOSX, 2)
|
||||
ml.data[0] = 10<<16 | 7<<8 | 0<<0 // OS X version 10.7.0
|
||||
ml.data[1] = 10<<16 | 7<<8 | 0<<0 // SDK 10.7.0
|
||||
}
|
||||
|
||||
// TODO: dwarf headers go in ms too
|
||||
if Debug['s'] == 0 {
|
||||
dwarfaddmachoheaders(ms)
|
||||
|
Loading…
Reference in New Issue
Block a user