Commit Graph

35 Commits

Author SHA1 Message Date
Shenghou Ma
ea75526483 unix: fix build for linux/386 and linux/arm
Because ARM ABI requires 64-bit argument to be passed in even
register pairs, to avoid wasting one register between fd and
advise in the usual fadvise64 syscall signature, linux/arm
has its own variation that reorders the argument so that the
arguments fit in six registers.

While we're at it, also fix build for linux/386.

Fixes golang/go#10294.

Change-Id: I322e2226619c5aa9c096a1d5cb7ae1e94fd4a5a1
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/8282
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-03-31 06:30:55 +00:00
Brad Fitzpatrick
46ba3e7a19 unix: re-run mksyscall on freebsd and linux after previous merge
The previous cherry-pick merge of fadvice from Gerrit added the
fadvise system calls, but from before the errno CL, which went in
concurrently.

Change-Id: I6f01e020bfe2930a8ea2fdbe4998ab9e2669ce14
Reviewed-on: https://go-review.googlesource.com/8199
Reviewed-by: Rob Pike <r@golang.org>
2015-03-27 17:05:09 +00:00
Eric
ea745763b1 unix: Added posix_fadvise support for Linux and FreeBSD
Support includes 386, amd64, and arm for both Linux and FreeBSD.
FreeBSD changes courtesy Dave Chapeskie <dchapeskie@gmail.com>

Change-Id: I89dc18533d7178e74ae6c442a2e6272c9bd9692c
Reviewed-on: https://go-review.googlesource.com/8055
Reviewed-by: Rob Pike <r@golang.org>
2015-03-27 16:47:22 +00:00
Brad Fitzpatrick
71c96e4240 unix: don't allocate putting common errno values in error interfaces
From main repo: https://go-review.googlesource.com/#/c/6701/3

Fixes golang/go#10266

Change-Id: I141fefe7f317edcea19b588b1569fa8772237f56
Reviewed-on: https://go-review.googlesource.com/8190
Reviewed-by: Rob Pike <r@golang.org>
2015-03-27 16:15:35 +00:00
Ian Lance Taylor
5829c74886 unix: change Dup,Dup2,Dup3 to use Syscall, not RawSyscall
This avoids hanging when a Go program uses a FUSE filesystem and the
dup system call has to close a file descriptor.  When dup uses
RawSyscall then the goroutine calling dup will occupy a scheduler slot
(a p structure) during the call, and may block waiting for some other
goroutine to respond to the close call on the FUSE filesystem.
Changing to Syscall avoids the problem.  This makes Dup a tiny bit
slower but is quite unlikely to make a difference for any real
programs.

Update golang/go#10202.

Change-Id: I590c5c9a04e0a1281a85dc553c7592fa83949ac7
Reviewed-on: https://go-review.googlesource.com/8056
Reviewed-by: Rob Pike <r@golang.org>
2015-03-26 17:59:35 +00:00
Shenghou Ma
2cb975bb60 unix: use Getpgid to emulate Getpgrp on linux
Some Linux architectures (e.g. arm64) don't have the getpgrp syscall,
use getpgid(0) to emulate it.

Update golang/go#10150.

This brings CL 8022 that has been applied to the syscall package to
x/sys.

Change-Id: I24c6d7e8b5b2f075ca4e68b142b2e03ab8a43342
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/8023
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-03-24 20:03:14 +00:00
Dirk Gadsden
bfff0ae28b unix: Add UnlinkAt on Linux with third flags argument
For golang/go#9923

Change-Id: I7562d32f1bfcc35fe86d2e5fff26845737fd9ecb
Reviewed-on: https://go-review.googlesource.com/7917
Reviewed-by: Rob Pike <r@golang.org>
2015-03-23 23:07:57 +00:00
Tim Hockin
8642817a1a unix: Add [RWX]_OK constants for Access
POSIX defines [FRWX]_OK flags as the second arg to access() (Access()
here). Only F_OK was defined heretofore. This adds the missing
[RWX]_OK constants.

Fixes golang/go#6262

Change-Id: Ie96273db19aa21af92c46affea9509afe0efe63f
Reviewed-on: https://go-review.googlesource.com/7852
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-03-20 06:12:11 +00:00
Mikio Hara
dcbb823943 unix: drop small networking libraries
Those libraries, routing message parsers, netlink message parsers,
berkeley packat filter are linux packet filter, are subsets and just for
the net package of standard library. It would be better keeping,
extending them at the net sub repository instead of here.

Updates golang/go#10150.

Change-Id: I1ca437bea2e2be7f7f8f6496d4db291629f49136
Reviewed-on: https://go-review.googlesource.com/7581
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
2015-03-20 01:30:45 +00:00
Mikio Hara
4a3569769a unix: add missing Syscall9 for darwin/amd64
Updates golang/go#10068.

Change-Id: Ide71d7dfd2ad95387c1914b89bc743cbcda7d1de
Reviewed-on: https://go-review.googlesource.com/7582
Reviewed-by: Rob Pike <r@golang.org>
2015-03-14 23:35:45 +00:00
William Orr
fb0c33c555 unix: Update zerrors and zsysnum on FreeBSD based on 10.1-RELEASE
Fixes golang/go#9705

Change-Id: Ie236633e0e6912de1fbf1274fa5cb3ada6ce3055
Reviewed-on: https://go-review.googlesource.com/6370
Reviewed-by: Minux Ma <minux@golang.org>
2015-03-02 01:40:34 +00:00
William Orr
853bdd547a unix: add mlock/munlock/mlockall/munlockall/mprotect to *BSD
Change-Id: I01c5dd902bbc349b860600ec2b3d556e2dc406c9
Reviewed-on: https://go-review.googlesource.com/1921
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2015-01-06 02:05:08 +00:00
William Orr
c31551b2f3 unix: fix uri for openbsd's syscall numbers
Change-Id: Ibc189f7e27ccdde94fd7da25a155636ee6bd6b25
Reviewed-on: https://go-review.googlesource.com/1920
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2014-12-22 04:34:25 +00:00
David Symonds
1da8e6ee6d sys: add import comments.
Change-Id: I0ebbb4f2da41bea7871f893332f2e4847b1bfefa
Reviewed-on: https://go-review.googlesource.com/1241
Reviewed-by: Andrew Gerrand <adg@golang.org>
2014-12-09 22:46:33 +00:00
Dave Cheney
bd7f565490 x/sys/unix: regenerate zsyscall_* files
Fixes build breakage due to missing syscall import.

LGTM=adg, r
R=r, adg
CC=golang-codereviews
https://golang.org/cl/162650044
2014-11-10 11:48:04 +00:00
Andrew Gerrand
dea3d764c2 go.sys: use golang.org/x/... import paths
LGTM=bradfitz, rsc
R=rsc, bradfitz
CC=golang-codereviews
https://golang.org/cl/171050043
2014-11-10 08:56:17 +11:00
William Orr
ac22431096 go.sys/unix: add support for *xattr functions on FreeBSD
Add wrappers that provide Linux-y behavior around the FreeBSD extattr(2)
functions. This allows certain packages, like the fuse package to run
under FreeBSD.

LGTM=iant
R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/147850043
2014-10-08 07:29:25 -07:00
Ian Lance Taylor
7f1554891e mksyscall.pl, types_linux.go: regenerate linux {386,amd64} files
Import syscall so that Kill can refer to syscall.Signal.  Drop
termios constants from types_linux.go--all other systems get
them from mkerrors.sh.

Fixes golang/go#8865.

LGTM=r
R=r
CC=golang-codereviews
https://golang.org/cl/152980044
2014-10-06 12:02:17 -07:00
Brad Fitzpatrick
c65f27ffe6 go.sys: add Unsetenv
LGTM=r
R=r
CC=golang-codereviews
https://golang.org/cl/153810043
2014-10-01 12:10:37 -07:00
Rob Pike
c1f6f8bcc5 go.sys/unix: use "use" in syscall interface
LGTM=iant
R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/144980043
2014-09-16 13:36:53 -07:00
Rob Pike
c83757ae5b go.sys/unix/mkerrors.sh: restore missing include blocks
Dropped (or not moved) for some unknown reason. Restore them.

LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/140680044
2014-09-16 10:48:40 -07:00
Rob Pike
6d0305dc7d go.sys/unix: undo CL 119530044's effects in go.sys for BSD
That CL worked around a bug present in the
OS X Yosemite Public Beta versions 1 and 2.
Beta 3 (released today) has fixed the bug.

LGTM=bradfitz
R=golang-codereviews, bradfitz
CC=golang-codereviews
https://golang.org/cl/144010043
2014-09-16 10:39:57 -07:00
Rob Pike
866b9d8a48 go.sys/unix: delete Fork and Exec etc.
These are being deleted from go.sys because in general they can
only be implemented in close coordination with the runtime.

LGTM=dave
R=rsc, dave, josharian
CC=golang-codereviews
https://golang.org/cl/129500043
2014-08-21 16:14:51 -07:00
Rob Pike
dc3c21c62b go.sys/unix: use syscall.Errno for errors
If we use a local type, it won't compare properly with errors from
the rest of the standard library. Errors are the one type from syscall
that propagates through the system, so it's important to have only
one type for them.

Ditto for syscall.Signal.

LGTM=dave
R=rsc, dave
CC=golang-codereviews
https://golang.org/cl/123490043
2014-08-15 09:57:24 -07:00
Rob Pike
96cf2ceb2c go.sys/unix: arm uses B not JMP
Fix build.

LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/123510043
2014-08-14 17:39:12 -07:00
Rob Pike
aec3c6a331 go.sys/unix: just jump to syscall.Syscall etc.
Don't re-implement these functions.

LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/124390043
2014-08-14 12:30:17 -07:00
Rob Pike
0c07981137 go.sys/unix: add asm hooks for solaris to runtime-resident syscall help
also: race is supported on freebsd, so fix a couple of build tags

LGTM=minux
R=rsc, minux
CC=golang-codereviews
https://golang.org/cl/124330043
2014-08-13 20:54:29 -07:00
Rob Pike
9828c4dfac go.sys/unix: fix creds_test.go
For this particular system call, which uses the net package,
the expected error is syscall.EPERM not unix.EPERM.

With this change, go test passes on my linux.

LGTM=iant, rsc
R=rsc, iant
CC=golang-codereviews
https://golang.org/cl/125270043
2014-08-13 21:07:22 +00:00
Rob Pike
9e072b55ca go.sys: add solaris build tags
They were missed yesterday when adding the tags for all the other unix variants.

LGTM=aram
R=rsc, aram
CC=golang-codereviews
https://golang.org/cl/126150043
2014-08-13 10:02:35 -07:00
Rob Pike
11f12da052 go.sys/unix: implement the environment functions by wrapping syscall
The environment is global state that is owned by the standard syscall package.
With this change, go test passes on darwin in the unix directory.

LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/129900043
2014-08-13 09:00:28 -07:00
Rob Pike
279b3782ad go.sys: fix imports to cgc/p/go.sys, add build tags
Approach but probably not achieve a green build.

LGTM=adg
R=golang-codereviews, adg
CC=golang-codereviews
https://golang.org/cl/126120043
2014-08-12 22:59:00 -07:00
Rob Pike
55e2a23348 go.sys/unix: delete nacl
It's a peculiar environment that probably doesn't belong here.
We can bring it back easily if we need it.

LGTM=dave, rsc
R=rsc, dave
CC=golang-codereviews
https://golang.org/cl/128110043
2014-08-12 17:00:33 -07:00
Rob Pike
8768103c90 go.sys/all: update #includes to new location
Darwin/amd64 now builds. No others tested yet.
mkall.sh also runs correctly. The updates, which are
substantial, are not yet applied to avoid unnecessary churn.
Restore mkerrors.sh, which is needed in the unix directory.

LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/122410044
2014-08-12 14:05:03 -07:00
Rob Pike
8442dd2c63 go.sys: update package names
Semi-automatic migration from package syscall to package {plan9,windows,unix}.
No builds attempted yet, but this gets a lot of noise behind us so subsequent
CLs will be more concise and easier to follow.
Subsequent CLs will have semantic content.

LGTM=rsc
R=golang-codereviews, rsc
CC=golang-codereviews
https://golang.org/cl/121520043
2014-08-11 15:58:26 -07:00
Rob Pike
20acc5cf31 go.sys: copy files from syscall package to go.sys/{plan9,windows,unix}
This CL copies to each package of go.sys the files from syscall it will need.
Different directories have different files, but these:
        mkall.sh
        str.go
        syscall.go
        mksyscall.pl
        race.go
        race0.go
        syscall_test.go
are copied to all three.
No changes yet, these are just copies. They are not ready to use yet:
package names are wrong, for starters. But this clean copy will make
it easier to follow the changes as the packages are enabled.

LGTM=rsc
R=golang-codereviews, rsc
CC=golang-codereviews
https://golang.org/cl/126960043
2014-08-11 14:48:46 -07:00