aboutsummaryrefslogtreecommitdiff
path: root/src/syscall
AgeCommit message (Collapse)Author
2018-06-14syscall, internal/syscall: follow convention for generated code commentTobias Klauser
Follow the convertion (https://golang.org/s/generatedcode) for generated code. Change-Id: I4ac8b99ac45f25dd2399d048ea831489e5394984 Reviewed-on: https://go-review.googlesource.com/118821 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Alex Brainman <alex.brainman@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-06-13syscall: check Fchmodat flags parameter on LinuxTobias Klauser
As mentioned in #25845, port CL 46474 from golang.org/x/sys/unix to the syscall package. Currently Linux' fchmodat(2) syscall implementation doesn't support the flags parameter (though it might in future versions [1]). Fchmodat in the syscall package takes the parameter and (wrongly) passes it on to the syscall which will ignore it. According to the POSIX.1-2008 manual page [2], AT_SYMLINK_NOFOLLOW is the only valid value for the flags parameter and EOPNOTSUPP should be returned in case changing the mode of a symbolic link is not supported by the underlying system. EINVAL should be returned for any other value of the flags parameter. [1] https://patchwork.kernel.org/patch/9596301/ [2] http://pubs.opengroup.org/onlinepubs/9699919799/functions/chmod.html Updates #20130 Updates #25845 Change-Id: I1021dd0e6a4f4cb3557cb1c1b34dd618c378cda6 Reviewed-on: https://go-review.googlesource.com/118658 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-06-13syscall: support Linux syscalls without error return on mipsx/mips64xTobias Klauser
Like on other architectures, use rawSyscallNoError for Linux syscalls that don't return an error and convert all applicable occurences of RawSyscall to use it instead. This was missed in CL 84485 because mkall.sh doesn't support mipsx/mips64x, so add the corresponding entries as well. Updates #22924 Change-Id: I762cbee0827140b9890c4a10830e0b4cd33de92f Reviewed-on: https://go-review.googlesource.com/118655 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-11syscall: update TOKEN_ALL_ACCESS according to WinNT.hThanabodee Charoenpiriyakij
TOKEN_ALL_ACCESS was changed at some stage by Microsoft. Updates #25775 Change-Id: I3e18914207a0020b2ebfb99f4e57aa55f9de813b Reviewed-on: https://go-review.googlesource.com/117635 TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
2018-06-04net: add js/wasm architectureRichard Musiol
This commit adds the js/wasm architecture to the net package. The net package is not supported by js/wasm, but a simple fake networking is available so tests of other packages that require basic TCP sockets can pass. The tests of the net package itself are mostly disabled. Updates #18892 Change-Id: Id287200c39f0a3e23d20ef17260ca15ccdcca032 Reviewed-on: https://go-review.googlesource.com/109995 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-04syscall: fix EpollWait for arm64Wei Xiao
The SYS_EPOLL_WAIT syscall doesn't exist on arm64. This CL implements EpollWait with SYS_EPOLL_PWAIT syscall. Change-Id: Ica9107a58d7da45351fe2e900f59bec5b7b18f39 Reviewed-on: https://go-review.googlesource.com/115735 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-06-01all: update comment URLs from HTTP to HTTPS, where possibleTim Cooper
Each URL was manually verified to ensure it did not serve up incorrect content. Change-Id: I4dc846227af95a73ee9a3074d0c379ff0fa955df Reviewed-on: https://go-review.googlesource.com/115798 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org>
2018-06-01os: add js/wasm architectureRichard Musiol
This commit adds the js/wasm architecture to the os package. Access to the actual file system is supported through Node.js. Updates #18892 Change-Id: I6fa642fb294ca020b2c545649d4324d981aa0408 Reviewed-on: https://go-review.googlesource.com/109977 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-05-23syscall: partially revert "enable some nacl code to be shared with js/wasm"Richard Musiol
This partially reverts commit 3bdbb5df7692142c13cf93f6d80b2a907e3f396b. The latest CL of js/wasm's file system support does not use file descriptor mapping any more. Change-Id: Iaec9c84b392366282cddc69acc75c8a3eb556824 Reviewed-on: https://go-review.googlesource.com/114195 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-05-15misc/wasm: fix passing large negative integers from JS to GoRichard Musiol
This commit addresses a FIXME left in the code of wasm_exec.js to properly get the upper 32 bit of a JS number to be stored as an 64-bit integer. A bitshift operation is not possible, because in JavaScript bitshift operations only operate on the lower 32 bits. Change-Id: I8f627fd604e592682d9d322942a4852db64a7f66 Reviewed-on: https://go-review.googlesource.com/113076 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-05-08syscall: eliminate aliasing of syscall error strings in Plan 9Richard Miller
To avoid allocation between entersyscall and exitsyscall in Plan 9, syscall error strings retrieved from the OS were being stored in a shared buffer for each M, leading to overwriting of error strings by subsequent syscalls, and potential confusion if exitsyscall switched to a different M. Instead, the error string is now retrieved to the G stack and then copied to a new allocated array after exitsyscall. A new test TestPlan9Syserr is provided to confirm the correction. Fixes #13770 Fixes #24921 Change-Id: I013c4a42baae80d03a5b61d828396527189f5551 Reviewed-on: https://go-review.googlesource.com/111195 Reviewed-by: David du Colombier <0intro@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: David du Colombier <0intro@gmail.com>
2018-05-03syscall/js: add packageRichard Musiol
This commit adds the syscall/js package, which is used by the wasm architecture to access the WebAssembly host environment (and the operating system through it). Currently, web browsers and Node.js are supported hosts, which is why the API is based on JavaScript APIs. There is no common API standardized in the WebAssembly ecosystem yet. This package is experimental. Its current scope is only to allow tests to run, but not yet to provide a comprehensive API for users. Updates #18892 Change-Id: I236ea10a70d95cdd50562212f2c18c3db5009230 Reviewed-on: https://go-review.googlesource.com/109195 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-05-01net, syscall: make ECONNRESET/ECONNABORTED only temporary for AcceptIan Lance Taylor
Updates #6163 Fixes #24808 Change-Id: I4f5c686ebf60f72f71f566199ee3e946076202bb Reviewed-on: https://go-review.googlesource.com/110439 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-04-30all: skip unsupported tests for js/wasmRichard Musiol
The general policy for the current state of js/wasm is that it only has to support tests that are also supported by nacl. The test nilptr3.go makes assumptions about which nil checks can be removed. Since WebAssembly does not signal on reading a null pointer, all nil checks have to be explicit. Updates #18892 Change-Id: I06a687860b8d22ae26b1c391499c0f5183e4c485 Reviewed-on: https://go-review.googlesource.com/110096 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-04-30syscall: enable some nacl code to be shared with js/wasmRichard Musiol
This commit only moves code in preparation for the following commit which adds the js/wasm architecture to the os package. There are no semantic changes in this commit. Updates #18892 Change-Id: Ia44484216f905c25395c565c34cfe6996c305ed6 Reviewed-on: https://go-review.googlesource.com/109976 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-04-26syscall: 32-bit MIPS splice system call returns int, not int64Ian Lance Taylor
Fixes #25106 Change-Id: I315817543b44aa581980828a32ecc224f8c0a44d Reviewed-on: https://go-review.googlesource.com/109316 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-04-19syscall: avoid extra syscall on send/recvmsg on LinuxJason A. Donenfeld
By simply rearranging the logic, we avoid the overhead of a superfluous call to getsockopt. For, if p is already non empty, there's no point in having to check if we need to attach dummy payload. This has performance benefits when using send/recvmsg for high speed communications. Change-Id: Id85cff17328ecbf6d09dd52fbeeaa691dbe69b75 Reviewed-on: https://go-review.googlesource.com/108338 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-04-18syscall: introduce Pointer type and use it instead of uintptrAlex Brainman
Some syscall structures used by crypto/x509 have uintptr fields that store pointers. These pointers are set with a pointer to another Go structure. But the pointers are not visible by garbage collector, and GC does not update the fields after they were set. So when structure with invalid uintptr pointers passed to Windows, we get memory corruption. This CL introduces CertInfo, CertTrustListInfo and CertRevocationCrlInfo types. It uses pointers to new types instead of uintptr in CertContext, CertSimpleChain and CertRevocationInfo. CertRevocationInfo, CertChainPolicyPara and CertChainPolicyStatus types have uintptr field that can be pointer to many different things (according to Windows API). So this CL introduces Pointer type to be used for those cases. As suggested by Austin Clements. Fixes #21376 Updates #24820 Change-Id: If95cd9eee3c69e4cfc35b7b25b1b40c2dc8f0df7 Reviewed-on: https://go-review.googlesource.com/106275 Reviewed-by: Austin Clements <austin@google.com> Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-04-14syscall: remove WSAEMSGSIZEAlex Brainman
CL 92475 added WSAEMSGSIZE const to syscall package. But there is already copy of WSAEMSGSIZE in internal/syscall/windows. So delete syscall.WSAEMSGSIZE Change-Id: I0b81fa5dcf846887a0cb27d8bbd7e250860627b5 Reviewed-on: https://go-review.googlesource.com/106956 Run-TryBot: Alex Brainman <alex.brainman@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-04-13time: add wasm architectureRichard Musiol
This commit adds the wasm architecture to the time package. Updates #18892 Change-Id: I86841e096894eacf7f972add9a532491e4d00014 Reviewed-on: https://go-review.googlesource.com/106997 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-04-11os: document that Chown with -1 means to leave values unchanged, like POSIXBrad Fitzpatrick
And fix the nacl implementation. Fixes #24710 Change-Id: I31ffeea03a72dac5021ffb183fde31e9ffd060ad Reviewed-on: https://go-review.googlesource.com/106464 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-03-30syscall: remove double Unlock from Dup2 on naclFilippo Valsorda
Fixes #24610 Change-Id: I76dee97db7cd77fe03e4a224f679a5efd061a2b5 Reviewed-on: https://go-review.googlesource.com/103775 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-03-15syscall: use Android O friendly fstatat syscall to implement Stat on linux/amd64Tobias Klauser
The Android O seccomp policy disallows the stat syscall on amd64, see https://android.googlesource.com/platform/bionic/+/android-4.2.2_r1.2/libc/SYSCALLS.TXT Use the fstatat syscall with AT_FDCWD and zero flags instead to achieve the same behavior. Fixes #24403 Change-Id: I36fc9ec9bc938cd8e9de30f66c0eb9d2e24debf6 Reviewed-on: https://go-review.googlesource.com/100878 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-03-14runtime, syscall: add RawSyscall6 on Solaris and make it panicTobias Klauser
The syscall package currently declares RawSyscall6 for every GOOS, but does not define it on Solaris. This leads to code using said function to compile but it will not link. Fix it by adding RawSyscall6 and make it panic. Also remove the obsolete comment above runtime.syscall_syscall as pointed out by Aram. Updates #24357 Change-Id: I1b1423121d1c99de2ecc61cd9a935dba9b39e3a4 Reviewed-on: https://go-review.googlesource.com/100655 Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
2018-03-05runtime: rename vdso symbols to use camel caseIan Lance Taylor
This was originally C code using names with underscores, which were retained when the code was rewritten into Go. Change the code to use Go-like camel case names. The names that come from the ELF ABI are left unchanged. Change-Id: I181bc5dd81284c07bc67b7df4635f4734b41d646 Reviewed-on: https://go-review.googlesource.com/98520 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-03-02syscall: fix nil pointer dereference in Select on linux/{arm64,mips64x}Tobias Klauser
The timeout parameter might be nil, don't dereference it unconditionally. Fixes #24189 Change-Id: I03e6a1ab74fe30322ce6bcfd3d6c42130b6d61be Reviewed-on: https://go-review.googlesource.com/97819 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-02-28syscall: reduce redundant getwd tracking in Plan 9Richard Miller
In Plan 9, each M is implemented as a separate OS process with its own working directory. To keep the wd consistent across goroutines (or rescheduling of the same goroutine), CL 6350 introduced a Fixwd procedure which checks using getwd and calls chdir if necessary before any syscall operating on a pathname. This wd checking will not be necessary if the pathname is absolute (starts with '/' or '#'). Getwd is a fairly expensive operation in Plan 9 (implemented by opening "." and calling Fd2path on the file descriptor). Eliminating the redundant getwd calls can significantly reduce overhead for common operations like "dist test --list" which perform many syscalls on absolute pathnames. Updates #9428. Change-Id: I13fd9380779de27b0ac2f2b488229778d6839255 Reviewed-on: https://go-review.googlesource.com/97675 Reviewed-by: David du Colombier <0intro@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: David du Colombier <0intro@gmail.com>
2018-02-27os, syscall: use pipe2 instead of pipe syscall on OpenBSDTobias Klauser
The pipe2 syscall is part of OpenBSD since version 5.7 and thus exists in all officially supported versions. Follows CL 38426 and CL 94035 Change-Id: I8f93ecbc89664241f1b6b0d069e948776941b1d0 Reviewed-on: https://go-review.googlesource.com/97356 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-02-26syscall: remove/update outdated TODO commentsTobias Klauser
Error returns for linux/arm syscalls are handled since a long time. Remove another list of unimplemented syscalls, following CL 96315. The root-only check in TestSyscallNoError was shown to be sufficient as part of CL 84485 already. NetBSD and OpenBSD do not implement the sendfile syscall (yet), so add a link to golang.org/issue/5847 Change-Id: I07efc3c3203537a4142707385f31b59dc0ecca42 Reviewed-on: https://go-review.googlesource.com/97115 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-02-26net, internal/poll, net/internal/socktest: use SOCK_{CLOEXEC,NONBLOCK} ↵Tobias Klauser
accept4/socket flags on OpenBSD The SOCK_CLOEXEC and SOCK_NONBLOCK flags to the socket syscall and the accept4 syscall are supported since OpenBSD 5.7. Follows CL 40895 and CL 94295 Change-Id: Icaf35ace2ef5e73279a70d4f1a9fbf3be9371e6c Reviewed-on: https://go-review.googlesource.com/97196 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-02-22syscall: remove list of unimplemented syscallsTobias Klauser
The syscall package is frozen and we don't want to encourage anyone to implement these syscalls. Change-Id: I6b6e33e32a4b097da6012226aa15300735e50e9f Reviewed-on: https://go-review.googlesource.com/96315 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-02-21net: fix UDPConn readers to return truncated payload size instead of 0Mansour Rahimi
Calling UDPConn readers (Read, ReadFrom, ReadMsgUDP) to read part of datagram returns error (in Windows), mentioning there is more data available, and 0 as size of read data, even though part of data is already read. This fix makes UDPConn readers to return truncated payload size, even there is error due more data available to read. Fixes #14074 Updates #18056 Change-Id: Id7eec7f544dd759b2d970fa2561eef2937ec4662 Reviewed-on: https://go-review.googlesource.com/92475 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com>
2018-02-20syscall: ensure Mkdir(path) on Plan 9 fails if path existsRichard Miller
On Plan 9, the underlying create() syscall with DMDIR flag, which is used to implement Mkdir, will fail silently if the path exists and is not a directory. Work around this by checking for existence first and rejecting Mkdir with error EEXIST if the path is found. Fixes #23918 Change-Id: I439115662307923c9f498d3e7b1f32c6d205e1ad Reviewed-on: https://go-review.googlesource.com/94777 Reviewed-by: David du Colombier <0intro@gmail.com>
2018-02-15net, internal/poll, net/internal/socktest: set SOCK_{CLOEXEC,NONBLOCK} ↵Tobias Klauser
atomically on NetBSD NetBSD supports the SOCK_CLOEXEC and SOCK_NONBLOCK flags to the socket syscall since version 6.0. The same version also introduced the paccept syscall which can be used to implement syscall.Accept4. Follows CL 40895 Change-Id: I9e4e1829b0382744c7799f4e58929a53b4e193f7 Reviewed-on: https://go-review.googlesource.com/94295 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Benny Siegert <bsiegert@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-02-14syscall, os: use pipe2 syscall on NetBSD instead of pipeTobias Klauser
The pipe2 syscall is part of NetBSD since version 6.0 and thus exists in all officially supported versions (6.0 through 6.1 and 7.0+). Follows CL 38426 Change-Id: I7b62b507300c3dfbcc6ae56408a7d7088ddccc77 Reviewed-on: https://go-review.googlesource.com/94035 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Benny Siegert <bsiegert@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-02-13syscall: support syscalls without error return on LinuxTobias Klauser
Add the rawSyscallNoError wrapper function which is used for Linux syscalls that don't return an error and convert all applicable occurences of RawSyscall to use it instead. Fixes #22924 Change-Id: Iff1eddb54573d459faa01471f10398b3d38528dd Reviewed-on: https://go-review.googlesource.com/84485 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-02-13syscall: support Getwd on all BSDsTobias Klauser
All supported BSDs provide the SYS___GETCWD syscall which can be used to implement syscall.Getwd. With this change os.Getwd can use a single syscall instead of falling back to the current kludge solution on the BSDs. This doesn't add any new exported functions to the frozen syscall package, only ImplementsGetwd changes to true for dragonfly, freebsd, netbsd and openbsd. As suggested by Ian, this follows CL 83755 which did the same for golang.org/x/sys/unix. Also, an entry for netbsd/arm is added to mkall.sh which was used to generate the syscall wrappers there. Change-Id: I84da1ec61a6b8625443699a63cde556b6442ad41 Reviewed-on: https://go-review.googlesource.com/84484 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-02-13syscall: reuse BSD forkExecPipe for SolarisTobias Klauser
The function was duplicated for Solaris. Reuse the BSD version instead. Change-Id: Ibc812bcf36d21f4a7ceeef7b4fb091fa9479bfa8 Reviewed-on: https://go-review.googlesource.com/81395 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-01-31syscall: use SYS_GETDENTS64 on linux/mips64{,le}Tobias Klauser
The getdents64 syscall is only available for mips64/mips64le starting with Linux kernel 3.10. Since mips64le requires at least 4.8 according to [1] (regarding #16848) using it should be fine. [1] https://golang.org/wiki/MinimumRequirements This CL changes the binary layout of type Dirent for mips64/mips64le, but not the public API. But since the currently used layout doesn't match the struct linux_dirent returned by the getdents syscall this should be fine as well. Fixes #23624 Change-Id: Iaa7306fa6e4442ad2fed41c60b37627a7314f117 Reviewed-on: https://go-review.googlesource.com/91055 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
2017-12-07syscall: make Seek use SetFilePointerEx on Windows, allowing large seek offsetsBrad Fitzpatrick
Fixes #21681 Updates #21728 Change-Id: I79cf4564c1355ecab891102d4215cbbffd8eb0ce Reviewed-on: https://go-review.googlesource.com/82535 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-12-01Revert "go/printer: forbid empty line before first comment in block"Joe Tsai
This reverts commit 08f19bbde1b01227fdc2fa2d326e4029bb74dd96. Reason for revert: The changed transformation takes effect on a larger set of code snippets than expected. For example, this: func foo() { // Comment bar() } becomes: func foo() { // Comment bar() } This is an unintended consequence. Change-Id: Ifca88d6267dab8a8170791f7205124712bf8ace8 Reviewed-on: https://go-review.googlesource.com/81335 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Joe Tsai <joetsai@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
2017-11-29syscall: add missing err check in testTobias Klauser
Follow CL 75810 which did the same for x/sys/unix. Change-Id: I6314a97989631d589369c7b6001d1523ec2cc242 Reviewed-on: https://go-review.googlesource.com/80555 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-11-28all: drop support for FreeBSD 9 or belowMikio Hara
This change drops the support for FreeBSD 9 or below and simplifies platform-dependent code for the sake of maintenance. Updates #7187. Fixes #11412. Updates #16064. Updates #18854. Fixes #19072. Change-Id: I9129130aafbfc7d0d7e9b674b6fc6cb31b7381be Reviewed-on: https://go-review.googlesource.com/64910 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-11-23syscall: remove dragonfly/386 from mkall.shTobias Klauser
dragonfly/386 isn't a valid GOOS/GOARCH pair and there are no generated files for this pair in syscall. Change-Id: Ibea2103c2f5e139139d850df3aac9b5a9c4ac9ab Reviewed-on: https://go-review.googlesource.com/79675 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-11-22syscall: add missing fs locking in Link, Rename on naclTim Wright
Per the comments at the head of fs_nacl.go, unexported methods expect the fs mutex to have been taken by the caller. This change brings Link and Rename into line with the other exported functions wrt fs locking. Fixes #22690 Change-Id: I46d08f7d227f23ff49bb0099d218214364a45e1a Reviewed-on: https://go-review.googlesource.com/79295 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
2017-11-07syscall: change SysProcAttr.Token type to TokenAlex Brainman
CL 75253 introduced new SysProcAttr.Token field as Handle. But we already have exact type for it - Token. Use Token instead of Handle everywhere - it saves few type conversions and provides better documentation for new API. Change-Id: Ibc5407a234a1f49804de15a24b27c8e6a6eba7e0 Reviewed-on: https://go-review.googlesource.com/76314 Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-11-06syscall: fix NaCl Link syscall error handlingTim Wright
The existing NaCl filesystem Link system call erroneously allowed a caller to call Link on an existing target which violates the POSIX standard and effectively corrupted the internal filesystem representation. Fixes #22383 Change-Id: I77b16c37af9bf00a1799fa84277f066180edac47 Reviewed-on: https://go-review.googlesource.com/76110 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2017-11-06syscall: add Token to Windows SysProcAttrPaul Querna
Fixes #21105 Change-Id: Ia2dea9b82a356795f581ce75616198b46e97abb6 Reviewed-on: https://go-review.googlesource.com/75253 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
2017-11-02go/printer: forbid empty line before first comment in blockJoe Tsai
To improve readability when exported fields are removed, forbid the printer from emitting an empty line before the first comment in a const, var, or type block. Also, when printing the "Has filtered or unexported fields." message, add an empty line before it to separate the message from the struct or interfact contents. Before the change: <<< type NamedArg struct { // Name is the name of the parameter placeholder. // // If empty, the ordinal position in the argument list will be // used. // // Name must omit any symbol prefix. Name string // Value is the value of the parameter. // It may be assigned the same value types as the query // arguments. Value interface{} // contains filtered or unexported fields } >>> After the change: <<< type NamedArg struct { // Name is the name of the parameter placeholder. // // If empty, the ordinal position in the argument list will be // used. // // Name must omit any symbol prefix. Name string // Value is the value of the parameter. // It may be assigned the same value types as the query // arguments. Value interface{} // contains filtered or unexported fields } >>> Fixes #18264 Change-Id: I9fe17ca39cf92fcdfea55064bd2eaa784ce48c88 Reviewed-on: https://go-review.googlesource.com/71990 Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
2017-11-02syscall: rename ztypes_windows* to types_windows*Tobias Klauser
The ztypes_windows* file names indicate that these are auto-generated but they aren't. Rename them to types_windows* to avoid this confusion. This follows CL 52950 which did the same for golang.org/x/sys. Change-Id: Ia557ec5d4bcfb6bae20e34e71b5f3f190285794f Reviewed-on: https://go-review.googlesource.com/75390 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>