commit | 3421d5a6bb1c214d7aec16aac9fe24627beb5dfd | [log] [tgz] |
---|---|---|
author | Tobias Klauser <tklauser@distanz.ch> | Thu Sep 19 16:44:10 2019 +0200 |
committer | Tobias Klauser <tobias.klauser@gmail.com> | Wed Oct 02 06:39:06 2019 +0000 |
tree | 192f55211f07cc8694206fd875e63b77504adb34 | |
parent | 34b0ac8f0d71aea5a7f5c20d6a7c2cd85534553c [diff] |
unix: avoid __getdirentries64 on darwin Getdirentries is implemented with the __getdirentries64 function in libSystem.dylib on darwin/{386,amd64}. That function can't be used in an app store application. Implement Getdirentries using the underlying fdopendir/readdir_r/closedir for Go 1.13. The simulation isn't faithful, and could be slow, but it should handle common cases. For Go 1.12, fall back to raw syscalls since syscall.syscallPtr needed to use fdopendir from libSystem.dylib is not available. Follow CL 168479 and CL 170892 which did the same for syscall in the stdlib. Tested on darwin/amd64 with Go 1.11, Go 1.12 and Go 1.13 Fixes golang/go#34400 Change-Id: I631382aaea9ee7e0c4ed09e06ad5427efc620769 Reviewed-on: https://go-review.googlesource.com/c/sys/+/196478 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
This repository holds supplemental Go packages for low-level interactions with the operating system.
The easiest way to install is to run go get -u golang.org/x/sys
. You can also manually git clone the repository to $GOPATH/src/golang.org/x/sys
.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.
The main issue tracker for the sys repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/sys:” in the subject line, so it is easy to find.