diff options
| author | Keith Randall <keithr@alum.mit.edu> | 2019-03-20 10:47:17 -0700 |
|---|---|---|
| committer | Keith Randall <khr@golang.org> | 2019-04-03 21:27:05 +0000 |
| commit | 9da6530faab0a58c4c4e02b2f3f4a5c754dcbd4e (patch) | |
| tree | a49cee6c873b4854bb64ae252f11dc6051869647 /src/runtime/sys_darwin_arm64.s | |
| parent | 48ef01051ae58265088ee87f3a408224d2cfaec3 (diff) | |
| download | go-9da6530faab0a58c4c4e02b2f3f4a5c754dcbd4e.tar.xz | |
syscall: avoid _getdirentries64 on darwin
Getdirentries is implemented with the __getdirentries64 function
in libSystem.dylib. That function works, but it's on Apple's
can't-be-used-in-an-app-store-application list.
Implement Getdirentries using the underlying fdopendir/readdir_r/closedir.
The simulation isn't faithful, and could be slow, but it should handle
common cases.
Don't use Getdirentries in the stdlib, use fdopendir/readdir_r/closedir
instead (via (*os.File).readdirnames).
Fixes #30933
Update #28984
RELNOTE=yes
Change-Id: Ia6b5d003e5bfe43ba54b1e1d9cfa792cc6511717
Reviewed-on: https://go-review.googlesource.com/c/go/+/168479
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/runtime/sys_darwin_arm64.s')
| -rw-r--r-- | src/runtime/sys_darwin_arm64.s | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/runtime/sys_darwin_arm64.s b/src/runtime/sys_darwin_arm64.s index 29951d8ad7..89a2b8a054 100644 --- a/src/runtime/sys_darwin_arm64.s +++ b/src/runtime/sys_darwin_arm64.s @@ -465,9 +465,9 @@ TEXT runtime·syscallX(SB),NOSPLIT,$0 ok: RET -// syscallXPtr is like syscallX except that the libc function reports an -// error by returning NULL. -TEXT runtime·syscallXPtr(SB),NOSPLIT,$0 +// syscallPtr is like syscallX except that the libc function reports an +// error by returning NULL and setting errno. +TEXT runtime·syscallPtr(SB),NOSPLIT,$0 SUB $16, RSP // push structure pointer MOVD R0, (RSP) |
