Commit Graph

92 Commits

Author SHA1 Message Date
Damien Neil
c8bc69bc2d unix: fix uint64->int cast of control message header
Change-Id: I533233a08472b686d03573bcbae664c76919b18e
Reviewed-on: https://go-review.googlesource.com/22527
Run-TryBot: Damien Neil <dneil@google.com>
Reviewed-by: Minux Ma <minux@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-04-27 20:20:20 +00:00
Riku Voipio
f64b50fbea unix: fix Pause on linux-arm64
Pause is a legacy syscall not available on linux-arm64. Use ppoll with
all args as 0 to emulate - this is the way musl libc does Pause when the
pause syscall isn't available.

With the changes in syscall_linux* and regenerating zsyscall_linux*,
this calling Pause on linux-arm64 works and returns EINTR as expected.

Change-Id: I88236290313f18c742d826e759e86ff260a8b383
Reviewed-on: https://go-review.googlesource.com/22014
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-04-15 13:58:44 +00:00
Riku Voipio
324e137580 unix: fix EpollWait for arm64
epoll_wait syscall doesn't exist on arm64. Implement it with
by callign epoll_pwait(). According to man epoll_pwait,
calling epoll_pwait with sigmask of NULL is identical to
epoll_wait.

Testing exposed that EpollEvent needs padding on arm64
like on arm.

This changeset is to fix:
https://github.com/fsnotify/fsnotify/issues/130

Testcase: go test with fsnotify ported from syscall to x/sys:
https://github.com/suihkulokki/fsnotify/tree/go-sys

Change-Id: I76136bf4c82c2ee597549133848f490da46dd488
Reviewed-on: https://go-review.googlesource.com/21971
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-04-13 20:47:32 +00:00
Alexander Neumann
9eef40adf0 unix: Add FADV_* constants
These constants are used for fadvise() on Linux and were missing from
the ztypes_linux_*.go files.

Including the bluetooth headers is necessary so that cgo can resolve
struct sockaddr_hci.

Fixes golang/go#15114

Change-Id: I1538b5a7b9b24f910c0520d446b2fa5bd8a09013
Reviewed-on: https://go-review.googlesource.com/21753
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-04-09 16:46:36 +00:00
Tzu-Jung Lee
a80ff226bd unix: add sockaddr_hci support for linux.
Change-Id: Ic2eb52d4e9f7b80992707b125c11be54d7973314
Reviewed-on: https://go-review.googlesource.com/21674
Reviewed-by: Minux Ma <minux@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
2016-04-08 05:48:20 +00:00
Brad Fitzpatrick
8fdfb00a6a unix: skip failing test on freebsd-386
Updates golang/go#15186

Change-Id: I02403cbc9b3f1c786ee8093e1480edff891ecf13
Reviewed-on: https://go-review.googlesource.com/21676
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-04-08 01:25:32 +00:00
Tzu-Jung Lee
8aa0c605e5 syscall: add bluetooth constants for linux
Tried to generate them with mkerrors.sh by including
bluetooth/bluetooth.h, but it introduces way much more
than necessary stuff.

Change-Id: I380f66892f55dbe4cbfc76a0e3f9817f81d269b9
Reviewed-on: https://go-review.googlesource.com/21675
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-04-08 01:02:42 +00:00
Brad Fitzpatrick
afce3de575 unix: make TimevalToNsec available everywhere
It wasn't in linux/arm.

Tested with:

$ for x in $(go tool dist list ) ; do \
     export GOOS=$(echo $x | cut -d/ -f1); \
     export GOARCH=$(echo $x | cut -d/ -f2); \
     echo "$GOOS; $GOARCH"; go install  .; done

... which all pass, except openbsd/arm which is still broken exactly
how it was broken previously.

Fixes golang/go#14643

Change-Id: Ie7ae861b581b539178de26f15ba3f4bdd0e9b785
Reviewed-on: https://go-review.googlesource.com/21013
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-03-22 23:22:43 +00:00
Caio Marcelo de Oliveira Filho
23999e87b4 x/sys/unix: add support for O_TMPFILE in Linux
Since Linux 3.11, O_TMPFILE flag can be used in open syscall to create
an unnamed file in a directory. The file occupies space in the
filesystem, and can be given a name using linkat syscall. If the file is
closed without being given a name, its contents are deleted.

See the manpage open(2) in Linux for details.

Exports O_TMPFILE for Linux in 386 and amd64 (other architectures
already had it). Exports Linkat syscall and AT_SYMLINK_FOLLOW (used for
giving a name to the file) for all Linux in all architectures.

Fixes golang/go#7830.

Change-Id: Ib82e44f405b227e227b9cbf317c2657b32e046f5
Reviewed-on: https://go-review.googlesource.com/21003
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-03-22 23:15:03 +00:00
Riku Voipio
9d4e42a206 x/sys/unix: add Dup2 wrapper for arm64/ppc64
arm64 doesn't have a Dup2 syscall, instead Dup3 is supposed
to be used. Since Dup3 is linux-specific, provide a wrapper
to make writing portable code easier.

    Updates golang/go#10235

To verify it, added a testcase for Dup and Dup2.

Change-Id: I066bb60d62b2bd64d7ba0fdfbb334ce2213c78e9
Reviewed-on: https://go-review.googlesource.com/20178
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Riku Voipio <riku.voipio@linaro.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-03-15 15:33:18 +00:00
Riku Voipio
7a56174f00 x/sys/unix: fix time/utime/utimes on arm64
In commit "7e44b69 x/sys/unix: fix invalid syscall on linux/arm"
a test was added for time/utime syscall. This test exposed that
neither time/utime work on arm64, because they call the legacy
syscall "utimes". As a new architecture, arm64 doesn't implement
any legacy syscalls.

Implement by first calling utimensat, using UtimesNano as exampple.

Change-Id: Iffed410730c06ac4c8184241d16eebf08c367524
Reviewed-on: https://go-review.googlesource.com/20174
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
2016-03-03 15:45:59 +00:00
Benoit Sigoure
54535356f1 x/sys/unix: Add support for the setns system call.
This system call is used to reassociate the current thread with a Linux
namespace (e.g. a network namespace or a mount namespace).  This system
call is key to interacting with the primitives enabling Linux containers.
The users of this system call will most likely want to wrap their calls
with a pair of LockOSThread / UnlockOSThread calls.  Here is an example
that is a reasonably close approximation of the `ns_exec' program given
as an example in `man 2 setns':

	package main

	import (
		"log"
		"os"
		"os/exec"
		"runtime"

		"golang.org/x/sys/unix"
	)

	func main() {
		if len(os.Args) < 3 {
			log.Fatalf("%s /proc/PID/ns/FILE cmd args...", os.Args[0])
		}
		fd, err := unix.Open(os.Args[1], unix.O_RDONLY, 0)
		if err != nil {
			log.Fatalf("open: %s", err)
		}
		runtime.LockOSThread()
		defer runtime.UnlockOSThread()
		if err = unix.Setns(fd, 0); err != nil {
			log.Fatalf("setns: %s", err)
		}
		cmd := exec.Command(os.Args[2], os.Args[3:]...)
		cmd.Stdin = os.Stdin
		cmd.Stdout = os.Stdout
		cmd.Stderr = os.Stderr
		err = cmd.Run()
		if err != nil {
			log.Fatalf("exec: %s", err)
		}
	}

Fixes golang/go#5968.

Change-Id: I78dc54667cfaef4f9e99a08d48f6e423686f1b22
Reviewed-on: https://go-review.googlesource.com/20054
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-02-29 17:26:46 +00:00
Hiroshi Ioka
7e44b69d78 x/sys/unix: fix invalid syscall on linux/arm
Some system calls are obsolete and no longer available for EABI.
This CL replace such system call usages.

Updates golang/go#14524

Change-Id: Ib99b239455ca677e46d7097911904c45119051bd
Reviewed-on: https://go-review.googlesource.com/19945
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-02-28 22:21:53 +00:00
Yao Zhang
19ced1583f x/sys/unix: added linux/mips64{,le} support
Change-Id: I4bf8d5e7ebc41b5152ce181c83dc3ff94bddae57
Reviewed-on: https://go-review.googlesource.com/16994
Reviewed-by: Minux Ma <minux@golang.org>
Run-TryBot: Minux Ma <minux@golang.org>
2016-02-28 04:28:12 +00:00
Matthew Dempsky
50c6bc5e42 unix: skip broken test on OpenBSD
OpenBSD (and likely NetBSD, but it's not enabled for these tests
anyway) use a different sysctl API for fetching process information
than FreeBSD and its derivatives.

Change-Id: Id2ab10f170b788ba4d9bd45d3347f530555da23b
Reviewed-on: https://go-review.googlesource.com/19232
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-02-04 22:58:17 +00:00
Ian Lance Taylor
eb2c74142f unix: add flags parameter to Unlinkat
The flags parameter was added in https://golang.org/cl/7917.  In that CL
the reviewers discussed adding UnlinkAt and changing Unlinkat, and opted
for the latter.

Unfortunately, I then undid that in https://golang.org/cl/10032, which
was a backport of (among others) https://golang.org/cl/5837.  I didn't
notice that in the syscall package 5837 removed Unlinkat with two
parameters, but the port to the x/sys/unix package removed Unlinkat with
three parameters.  Argh.

This CL effectively restores 7917, by adding the parameter back.

Fixes golang/go#9923.

Change-Id: I8fe218ac637d0eb0346b63b596666671374bd19f
Reviewed-on: https://go-review.googlesource.com/18981
Reviewed-by: Rob Pike <r@golang.org>
2016-01-27 15:07:42 +00:00
Nick Patavalis
2bacc619e3 unix: Fix Termios type definition
- types_linux.go: Use the kernel-defined termios structure, *not* the
  LIBC-defined one. The LIBC termios structure cannot be safely used
  to do tty-related ioctls on all architectures (e.g. ppc64,
  ppc64le). The kernel termios structure, and the associated
  macros/constants, are defined in: "asm/termbits.h" which is included
  by "linux/termios.h". The LIBC termios structure is defined in
  "bits/termios.h" which is included by "termios.h". These structures
  are *not* the same.

  For systems that have both "struct termios" and "struct termios2"
  use the latter to define the Termios type. This is ok, since the
  "struct termios2" memory layout is compatible with "struct termios"
  (with a couple of fields added at the end). This way, type Termios
  can be used with both: the "old-style" TCSETS[FW], TCGETS ioctls,
  *and* with the new TCSETS[FW]2, TCGETS2 ioctls. The new ioctls allow
  configuring arbitrary baudrates.

  The new Termios definitions (kernel-compatible) have the same fields
  as the old ones (LIBC-derived) so there should be no user-code
  compatibility issues.

Change-Id: I3c1484c60f45b28e13404765c01616c33063afd5
Reviewed-on: https://go-review.googlesource.com/17185
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-11-24 18:47:04 +00:00
Nick Patavalis
7486f8ece0 unix: additional termios-related constants
- mkerrors.sh: Included several termios-related constants that were
  missing. Also included definitions of tty-related ioctl numbers for
  linux.

- zerrors_linux_*: the files have been generated using
  "./mkerrors.sh". After their automatic generation the files have
  been manually edited to remove changes that were not due to this
  patch.

Change-Id: I0463112542a5c1c41583007003b652375f9ce572
Reviewed-on: https://go-review.googlesource.com/17184
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-11-23 20:52:33 +00:00
Steven Hartland
d9157a9621 unix: add custom Sysctl args and methods SysctlUint64, SysctlRaw
Add support for optional sysctl arguments which is required to support
sysctls that require more than the mib identifer args as returned from
nametomib such as kern.proc.pid.

Add SysctlUint64 which allows sysctls that return 64 bit ints to be
queried.

Add SysctlRaw which allows sysctls that return structs or other
unsupported types to be queried.

Change-Id: If0fa23935ee09496f2df210364d8988ccd0f3db6
Reviewed-on: https://go-review.googlesource.com/14955
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2015-10-29 18:30:43 +00:00
Matthew Dempsky
354f231ae1 unix: fix vet warning in UnixRights
Same fix as golang.org/cl/15608 for package syscall.

Change-Id: I8de2369220e58140596325d7ea16c015aab90d1b
Reviewed-on: https://go-review.googlesource.com/15609
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2015-10-09 04:16:36 +00:00
Dave Cheney
18d75a3b5e unix: add Prctl for linux platforms
Adds Prctl syscall for linux platforms. syscall and x/sys/unix already
defined the PR_ series of constants.

See discussion: https://groups.google.com/forum/#!topic/golang-nuts/rG6xShds2Dc

Change-Id: Ida5562b46abef574a3f9ac31911142f1e8d7fb4f
Reviewed-on: https://go-review.googlesource.com/15520
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2015-10-08 03:55:53 +00:00
Steven Hartland
342d6a85aa unix: update FreeBSD generated types and errors
Update the generated types and errors for FreeBSD by running mkall.sh
and ensuring no values where removed.

Change-Id: I5b82b1896b64f1b33d569dcaa477bb88641dfa8d
Reviewed-on: https://go-review.googlesource.com/15011
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2015-09-25 17:03:07 +00:00
Steven Hartland
72bfb9c4e8 unix: default CC in mkerrors.sh to cc not gcc
Clang is much more common now so use the OS cc instead of forcing gcc
by default.

Change-Id: I1dd34c7ba56c91794ee57042dd8ac024fdd649d8
Reviewed-on: https://go-review.googlesource.com/15010
Reviewed-by: Rob Pike <r@golang.org>
2015-09-25 16:59:38 +00:00
Kim Shrier
584c5fee74 x/sys/unix: add type specific ioctl functions for termios on solaris
The existing code has no way to manipulate termios or winsize structures
on solaris.  This change adds IoctlGetXXX and IoctlSetXXX functions for
int, termios, termio, and winsize.  The embedded awk script in
mkerrors.sh has additional patterns to generate the needed ioctl
constants for these calls.

Fixes golang/go#12574

Change-Id: Ic62a8c698d42c8ca379c90f71e9f27635e7d03b5
Reviewed-on: https://go-review.googlesource.com/14587
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
2015-09-24 17:12:55 +00:00
Shawn Walker-Salas
68a71b6be5 unix: add various missing syscalls available on Linux
Various syscalls offered by x/sys/unix on Linux are not available on
Solaris and should be, such as Mkfifo, Getwd(), Futimes() and others.
In particular, all of the *at() variants of existing functions were
added where appropriate.

Getgroups() was fixed to use the correct value for its sanity check on
the maximum number of groups.

Utimesnano() was updated to use the native Solaris utimensat function
for setting nanosecond-precision time.

Utimes() was updated to have the same error semantics and checking as
other platforms.

Getgroups(), anysocktoaddr(), and Recvmsg() were fixed to check the
return value before assuming syscall failure instead of relying solely
on errno being set.

mksyscall_solaris.pl needed some updates to better match the output of
the one found in syscall.

mkerrors.sh needed some updates to work out of the box on Solaris,
matching those recently done to the one in syscall.

The signatures (names) of some function parameters were changed to be
consistent with other platforms for the sake of documentation.

Fixes #8609

Change-Id: I9e4e2fee6d3ecfad9f4d845a5702ffde5166e804
Reviewed-on: https://go-review.googlesource.com/14643
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
2015-09-17 18:12:33 +00:00
Shawn Walker-Salas
131454b560 unix: fix Getpagesize to return actual system value on Solaris
In preparation for issues such as #10180, Getpagesize() needs to be
fixed to return the actual system's page size instead of assuming it's
always 4096.

This is particularly important for future platform support on Solaris.

Fixes #12076

Change-Id: I78205165909529215fe93ed6ba56e9c3ee1c2abb
Reviewed-on: https://go-review.googlesource.com/14483
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-09-10 21:42:51 +00:00
Aaron Jacobs
e6e5e023fc x/sys/unix: expose fchmodat(2) and related constants on darwin/amd64
These are already exposed on Linux. I believe they were left out of
darwin because fchmodat didn't exist on older versions of XNU.

Change-Id: I166f2b23270937c1b6cc3bd73e7f7b72d2d488e9
Reviewed-on: https://go-review.googlesource.com/14092
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-09-02 01:16:36 +00:00
Aaron Jacobs
2ac7e53520 x/sys/unix: use xcrun to find OS X and iOS SDKs in mkall.sh.
This makes the script resistant to changes in the SDK location, which
apparently happens from time to time.

While I was at it, made another cosmetic touch-up: use a .gitignore file
to stop `git status` from showing the _obj/ directory generated by
mkall.sh.

Change-Id: Ia706114d94e324ab443f6f5d6aa7c0c9f8a84620
Reviewed-on: https://go-review.googlesource.com/14192
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2015-09-02 01:15:37 +00:00
Aaron Jacobs
9c60d1c508 x/sys/unix: regenerate darwin/386 outputs
I did this on OS X 10.10.5 (14F27) using the OS X 10.10 SDK included in
Xcode 6.4 (6E35b) for syscall numbers. I believe this SDK is intended
for 64-bit Macs, but the syscall numbers aren't likely to vary. See also
the discussion in this thread:

    https://groups.google.com/d/topic/golang-dev/738LXeykFsM/discussion

This commit contains the same SYS_SYSCTL -> SYS___SYSCTL workaround
found in commit 9ef4b6c; see its description for more info.

Change-Id: I952ae56032033b49f8910281c68dcc72abb2d106
Reviewed-on: https://go-review.googlesource.com/14151
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2015-09-01 16:49:45 +00:00
Aaron Jacobs
ec18ccffcd x/sys/unix: regenerate darwin/arm64 outputs with the latest SDK
I did this on OS X 10.10.5 (14F27) using the iOS SDK included in Xcode
6.4 (6E35b). This commit contains the same SYS_SYSCTL -> SYS___SYSCTL
workaround found in commit 9ef4b6c; see its description for more info.

Change-Id: I4dddc2a6d030ce297ee711f4430ec9db3abcda50
Reviewed-on: https://go-review.googlesource.com/14094
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: David Crawshaw <crawshaw@golang.org>
2015-09-01 13:17:12 +00:00
Aaron Jacobs
9ef4b6c1ff x/sys/unix: remove the SYS___SYSCTL manual edit for darwin/amd64.
In commit e3fe6f5 I manually renamed SYS_SYSCTL to SYS___SYSCTL so that
syscall_bsd.go would continue to build, despite a rename of __sysctl to
sysctl somewhere between these two XNU versions:

    http://www.opensource.apple.com/source/xnu/xnu-2422.90.20/bsd/kern/syscalls.master
    http://www.opensource.apple.com/source/xnu/xnu-2782.1.97/bsd/kern/syscalls.master

In this commit I add a workaround that doesn't require manual edits to
autogenerated output, so regenerating the output should now cause no
diffs.

Change-Id: I0286484e7efcf9762ce39e5dcc7a8366e3798a77
Reviewed-on: https://go-review.googlesource.com/14091
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-08-31 05:03:18 +00:00
Aaron Jacobs
e3fe6f5d46 x/sys/unix: regenerate darwin/amd64 outputs with the latest SDK
I did this on OS X 10.10.5 (14F27) using the 10.10 SDK included in Xcode
6.4 (6E35b). This required removing a C include from mkerrors.sh, since
it doesn't exist on either of my two systems.

I spot checked the syscall number changes against this definitive list,
which is for approximately my kernel version:

    http://www.opensource.apple.com/source/xnu/xnu-2782.20.48/bsd/kern/syscalls.master

Everything I examined checked out, including the removed syscalls being
marked as "old" or being described in comments as no longer existing.

There is one exception to the output being cleanly autogenerated: I have
manually renamed SYS_SYSCTL back to SYS___SYSCTL, the name used
previously and still used by syscall_bsd.go. Because it would distract
from this CL, I will fix this in an upcoming CL.

Change-Id: I0168f608cab714aa5981b3e7d08d8fd84888d0d5
Reviewed-on: https://go-review.googlesource.com/14006
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2015-08-31 01:45:38 +00:00
Ken Sedgwick
c6f86e98fe unix: add solaris to mmap test
Fixes golang/go#12255.

Change-Id: Ie920d655de2531e9ddbd0bedcf34eaa8c9cace5a
Reviewed-on: https://go-review.googlesource.com/13816
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2015-08-21 20:53:45 +00:00
Ken Sedgwick
09d970dc3f unix: added solaris mmap, munmap and madvise.
These are needed by boltdb.

Change-Id: Ie6afa51dbf6436bb014f53f6b56ee2de6a06827d
Reviewed-on: https://go-review.googlesource.com/13720
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
2015-08-20 11:07:44 +00:00
Shawn Walker-Salas
339fc2ca4b unix: update to use direct linking on Solaris
CL 9184 changed the runtime and syscall packages to link Solaris binaries
directly instead of using dlopen/dlsym but failed to update sys/unix to
reflect these changes.  This changes the Solaris port to use direct linking
as supported by Go 1.5.

Fixes golang/go#10086

Change-Id: I6747ed939775b18fd967f81853c7d84537aa3842
Reviewed-on: https://go-review.googlesource.com/13400
Reviewed-by: Austin Clements <austin@google.com>
Reviewed-by: Aram Hăvărneanu <aram@mgk.ro>
2015-08-19 10:26:52 +00:00
Dave Cheney
58da1121af unix: use fchownat(2) in place of lchown(2) for linux/arm64
Updates #11918

Replace calls to lchown(2) with fchownat(2) for linux/arm64 as the former
is not suppored.

This is a companion to CL 12833 which is ready to be applied to the main
repo, and verified by CL 12834 which can be applied once this change and
CL 12833 have landed.

Change-Id: I63de3d0da1e4b4e1f253e51e0ed8e0cd0e56d63a
Reviewed-on: https://go-review.googlesource.com/12837
Reviewed-by: Rob Pike <r@golang.org>
2015-07-30 00:44:47 +00:00
Rob Pike
3826714b1e x/sys/unix: allow nil on unix for all variants of Utimes
Fixes golang/go#11830.

Change-Id: Ie6e9f82d05b7c04092b6ee6117238873b746380e
Reviewed-on: https://go-review.googlesource.com/12690
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-07-27 05:51:57 +00:00
Matt Layher
2c41184ab0 x/sys/unix: allow nil argument slice for Utimes on Linux
Fixes golang/go#11830.

Change-Id: Ie7ffd4579a7b8143ca85a30d24acd3e2e7eece78
Reviewed-on: https://go-review.googlesource.com/12648
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
2015-07-24 22:00:13 +00:00
Shenghou Ma
58e109635f unix: add darwin/arm64 support
Fixes golang/go#10239.

Change-Id: I3ae657b57ca7bef31207780477c44939c0bdc8b5
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/10185
Reviewed-by: Rob Pike <r@golang.org>
2015-05-18 19:16:22 +00:00
Shenghou Ma
785372d7b0 unix: add darwin/arm support
Fixes golang/go#10813.

Change-Id: I3ae657b57ca7bef31207780477c44939c0bdc8b4
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/10184
Reviewed-by: Rob Pike <r@golang.org>
2015-05-18 19:16:10 +00:00
Shenghou Ma
379497e3ff unix: add explicit build tags
Change-Id: I62774b8ee0c1a7cc1a3b7009ca860e3fd64a6564
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/10182
Reviewed-by: Rob Pike <r@golang.org>
2015-05-18 19:15:57 +00:00
Shenghou Ma
ca94ffdedb unix: add ppc64/linux support
Built with 3.18 linux kernel headers on Gentoo.

Change-Id: Ic21a315eb7569c6682f5cb2c991f0966245197f9
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/10044
Reviewed-by: Rob Pike <r@golang.org>
2015-05-17 01:16:40 +00:00
Ian Lance Taylor
85f6155b9e unix: emit +build comments in generator scripts
Change-Id: I8ed64dcb1c1a2119ce6f15fa1be55fbe0b0c637e
Reviewed-on: https://go-review.googlesource.com/10087
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: Dave Cheney <dave@cheney.net>
2015-05-15 01:18:51 +00:00
Ian Lance Taylor
8bcc2dbee4 unix: add arm64 and ppc64le build tags as needed for Go 1.4
Go1.4 does not recognize arm64 and ppc64le as valid GOARCH values, so
we need explicit build tags.

Change-Id: I1a886c132ae398d9f92b2c2b33d2a4827bbdb9d4
Reviewed-on: https://go-review.googlesource.com/10083
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-05-14 20:02:06 +00:00
Alex Brainman
76b6ca6286 unix: include export_test.go only during unix build
Fixes plan9 and windows build.

Change-Id: I3d913441a4f3f3f3da82ab74ef165b91d05eb8d3
Reviewed-on: https://go-review.googlesource.com/10078
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-05-14 06:54:30 +00:00
Ian Lance Taylor
4cd067a709 unix: add ppc64le/linux support
This incorporates changes from https://golang.org/cl/123290043 and
https://golang.org/cl/127320043.

Files generated on Ubuntu Trusty.

Change-Id: I669c60714e857ef5f06515cd3b65dfc94785e179
Reviewed-on: https://go-review.googlesource.com/10060
Reviewed-by: Rob Pike <r@golang.org>
2015-05-14 00:30:18 +00:00
Ian Lance Taylor
9907ecf448 unix: add arm64/linux support
This incorporates generation script changes from
http://golang.org/cl/7143.

Files generated on Ubuntu Trusty.

Change-Id: I28cfa0993573e1b280c549a67f453c0fb01dee2f
Reviewed-on: https://go-review.googlesource.com/10038
Reviewed-by: Rob Pike <r@golang.org>
2015-05-13 23:16:16 +00:00
Ian Lance Taylor
f2b45db810 unix: update generation scripts for arm64/ppc64
This applies the following CLs from the syscall package:
http://golang.org/cl/9962
http://golang.org/cl/9966
http://golang.org/cl/9924

It also adds arm64/ppc64 support to mkall.sh and mksysnum_linux.pl.

Change-Id: I84fbfde2a2876dbf6d16c6159e847195c274b396
Reviewed-on: https://go-review.googlesource.com/10037
Reviewed-by: Rob Pike <r@golang.org>
2015-05-13 22:31:45 +00:00
Ian Lance Taylor
04f0f96bfa unix: move InotifyInit into GOARCH specific Linux files
This is a copy of http://golang.org/cl/9870 in the syscall package.

This is in preparation for arm64 support, as the arm64 Linux kernel
does not have an inotify_init system call, only inotify_init1.

Update golang/go#10150.

Change-Id: I9224a094af79adbb2f5714ad977b195d5a941eb0
Reviewed-on: https://go-review.googlesource.com/10036
Reviewed-by: Rob Pike <r@golang.org>
2015-05-13 22:15:23 +00:00
Ian Lance Taylor
44366790d7 unix: correct code for cover cmd
This copies http://golang.org/cl/8723 from the syscall package.

Quoting the original CL:

    This is clumsy, but currently cover tool fails as:

    $ go test -run=none -cover syscall
    syscall_linux_amd64.go:15: can only use //go:noescape with external func imp
    FAIL        syscall [build failed]

    This happens because cover tool mishandles //go: comments.
    r and gri said that fixing cover is infeasible due to go/ast limitations.

    So at least fix the offending code so that coverage works.
    This come up in context of coverage-guided fuzzing which works best
    with program-wide coverage.

Change-Id: Id9e243968a4eb7ae75a585877fdf3192c89e419c
Reviewed-on: https://go-review.googlesource.com/10035
Reviewed-by: Rob Pike <r@golang.org>
2015-05-13 22:08:58 +00:00