cmd/link/internal/ld, cmd/go: -buildmode=c-shared support for darwin/amd64

All of the heavy-lifting was done by minux@, with his external-linking support
for darwin/arm64: golang.org/cl/8781

Change-Id: I7c9fbc19246f418c065c92fb2c13c00026ff0f82
Reviewed-on: https://go-review.googlesource.com/11127
Run-TryBot: Srdjan Petrovic <spetrovic@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Srdjan Petrovic 2015-06-16 10:07:45 -07:00 committed by Ian Lance Taylor
parent dc89350fed
commit cc6554f750
6 changed files with 38 additions and 18 deletions

View file

@ -926,7 +926,7 @@ func hostlink() {
}
if HEADTYPE == obj.Hdarwin {
argv = append(argv, "-Wl,-no_pie,-pagezero_size,4000000,-headerpad,1144")
argv = append(argv, "-Wl,-no_pie,-headerpad,1144")
}
if HEADTYPE == obj.Hopenbsd {
argv = append(argv, "-Wl,-nopie")
@ -944,9 +944,17 @@ func hostlink() {
}
switch Buildmode {
case BuildmodeExe:
if HEADTYPE == obj.Hdarwin {
argv = append(argv, "-Wl,-pagezero_size,4000000")
}
case BuildmodeCShared:
argv = append(argv, "-Wl,-Bsymbolic")
argv = append(argv, "-shared")
if HEADTYPE == obj.Hdarwin {
argv = append(argv, "-dynamiclib")
} else {
argv = append(argv, "-Wl,-Bsymbolic")
argv = append(argv, "-shared")
}
case BuildmodeShared:
// TODO(mwhudson): unless you do this, dynamic relocations fill
// out the findfunctab table and for some reason shared libraries