diff options
author | Cherry Zhang <cherryyz@google.com> | 2021-01-29 12:03:32 -0500 |
---|---|---|
committer | Cherry Zhang <cherryyz@google.com> | 2021-02-03 22:43:42 +0000 |
commit | bfc7418e6d3a505fe348718fd113473c9d92b135 (patch) | |
tree | c014e16187e5498691e90c0e49f086de1a4ebefa /src/cmd/dist | |
parent | 23b0c1f76e647a615fd0911df26f2ddf241607a1 (diff) | |
download | go-bfc7418e6d3a505fe348718fd113473c9d92b135.tar.gz go-bfc7418e6d3a505fe348718fd113473c9d92b135.zip |
[dev.regabi] runtime, syscall, etc.: mark Darwin syscall wrappers as ABIInternal
Mark the syscall wrappers as ABIInternal, as they have addresses
taken from Go code, and it is important to call to them without
wrappers.
Previously, the wrapper is just a single JMP instruction, which
makes it not matter. In the next CL we'll make the wrapper
actually have a frame. The real wrappers will mess up things
such as stack alignment for C ABI.
This doesn't look really nice, but I don't know how we can do
better...
TODO: other OSes.
Change-Id: Ifb3920494990a7775e3e6902fbcaf137df3cc653
Reviewed-on: https://go-review.googlesource.com/c/go/+/288092
Trust: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
Diffstat (limited to 'src/cmd/dist')
-rw-r--r-- | src/cmd/dist/build.go | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go index c8c3212d16..332f2fab58 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -1765,6 +1765,8 @@ func IsRuntimePackagePath(pkgpath string) bool { rval = true case "syscall": rval = true + case "crypto/x509/internal/macos": // libc function wrappers need to be ABIInternal + rval = true default: rval = strings.HasPrefix(pkgpath, "runtime/internal") } |