Commit Graph

23 Commits

Author SHA1 Message Date
Tobias Klauser
a13efeb2fd unix: remove dragonfly/386 from mkall.sh
dragonfly/386 isn't a valid GOOS/GOARCH pair and there are no generated
files for this pair in x/sys/unix.

Follows CL 79675 which did the same for syscall.

Change-Id: Ie70937b464fa911a43c26515bcac1c03740dc1fe
Reviewed-on: https://go-review.googlesource.com/79676
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-11-23 18:29:49 +00:00
Tobias Klauser
ebfc5b4631 unix: generate GOARCH specific zsysctl files on OpenBSD
Since CL 10087 build tags for GOOS and GOARCH are emitted by
mksysctl_openbsd.go but the generated file is always written to
zsysctl_openbsd.go.

Adjust mkall.sh to write to GOOS/GOARCH specific files and create a
zsysctl_openbsd_${GOARCH}.go file for each GOARCH supported on openbsd.

Change-Id: Id2a7b2815081f024de0ca87ba870a672bab32d24
Reviewed-on: https://go-review.googlesource.com/68870
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-10-06 17:50:12 +00:00
Tobias Klauser
2d3e384235 unix: add utimensat and use it for UtimesNano on BSD
Follow golang.org/cl/55130 and add the utimensat syscall on *BSD. Use it
in UtimesNano and UtimesNanoAt (which is added on *BSD, akin to the
already existing implementation on Linux and Solaris).

Also add AT_FDCWD and AT_SYMLINK_NOFOLLOW where they are missing. These
might be used with UtimesNanoAt.

In order to be able to generate the syscalls, also add two missing
$GOOS_$GOARCH patterns to mkall.sh. As a side effect, some additional
syscalls are added for openbsd/arm.

Change-Id: I85351098002209f8454ec328cef0cfe9d12c5214
Reviewed-on: https://go-review.googlesource.com/55071
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2017-08-14 19:17:52 +00:00
Tobias Klauser
89d4068c4f unix: add *at functions (POSIX.1-2008) on darwin/{arm,arm64}
Follow golang.org/cl/50450 and add the Faccessat, Fchmodat, Fchownat,
Linkat, Mkdirat, Openat, Readlinkat, Renameat, Symlinkat and Unlinkat
functions (to conform to POSIX.1-2008) for darwin/arm and darwin/amd64.
Also add the missing AT_* constants.

Generated on Mac OS 10.11 (Darwin 15.6.0). This also regenerates the
syscall numbers for arm and arm64 akin to golang.org/cl/14151

Also fix the mksysnum call in mkall.sh to work for darwin/arm.

Fixes golang/go#14457

Change-Id: Ia3c36dbca9e6f1e4873afdfafcc4f7d8050644f9
Reviewed-on: https://go-review.googlesource.com/54271
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2017-08-09 14:56:55 +00:00
Mikio Hara
9141ece15e unix: fix mkall.sh and mksyscall.pl
Each language has its own operators.

Change-Id: I765d4d56aeafe693d22914de7ee970d7b1928a25
Reviewed-on: https://go-review.googlesource.com/41832
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-04-27 04:04:42 +00:00
Joe Richey
ea9bcade75 unix: generate all Linux go files from source
Right now the process for adding in new constants, errors, or syscalls
for Linux is a pain and unreliable. The scripts are designed to be run
on the target architecture and use the header files installed on the
user's system. This makes it hard to generate files for all the
architectures or to have consistency between users. See golang/go#15282.

This CL fixes this issue by making all of the files for the 11 supported
architectures directly from source checkouts of Linux, glibc, and bluez.
This is done using Docker, the gcc cross-compilers, and qemu emulation.
Previously discussed here:
    https://go-review.googlesource.com/c/37589/

A README.md file is also added to explain how all the parts of the build
system work.

In order to get the build working for all the architectures, I made
some changes to the other scripts called from mkall_linux.go:
  - Files only used for generating linux code, moved to linux/
  - linux/mksysnum.pl supports a specified CC compiler.
  - The generated C code in mkerrors.sh changed to avoid a warning
  - mkerrors.sh headers changed to fix powerpc64 bug in sys/ioctl.h
  - linux/types.go no longer needs to export Ptrace structs in lowercase

Build instructions:
  - Host system needs to be x86-64 Linux
  - Install Docker (https://docs.docker.com/engine/installation/)
  - ./mkall.sh (That's it!!!)

Change-Id: I87067c14442ba12f8d51991349a43a9d73f38ae0
Reviewed-on: https://go-review.googlesource.com/37943
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-04-21 00:52:44 +00:00
Sameer Ajmani
aaabbdc969 x/sys/unix: remove the "use" function and its calls.
Update mksyscall*.pl to skip generating calls to "use".
Make build tag handling match what's used in the syscall package.

See issue https://golang.org/issue/16607
and CL https://golang.org/cl/36616

Change-Id: I2d2e823fe1846d2110c07eb1bf976852706ecf60
Reviewed-on: https://go-review.googlesource.com/36715
Run-TryBot: Sameer Ajmani <sameer@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2017-02-10 16:30:38 +00:00
James Clarke
67f277b6fe unix: Added linux/sparc64 gccgo support
Change-Id: Iff763334a2efbd44af68048d1de700af7d271647
Reviewed-on: https://go-review.googlesource.com/30755
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-10-11 00:35:16 +00:00
kortschak
076b546753 unix: fix typo
Change-Id: Ic7bd0c26cd4ac63861c2ed3541560919d133cd14
Reviewed-on: https://go-review.googlesource.com/23621
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-06-01 13:32:25 +00:00
Michael Munday
33267e036f unix: add s390x support
This commit adds linux/s390x support to the unix package. It is
based on the changes made to the syscall package in
https://golang.org/cl/20961/. It also adds mkpost.go which is
used to cleanup the API generated by cgo -godefs.

The biggest departure that is made with the syscall package is
the use of the -fsigned-char flag to force signed chars. We
couldn't do this in the syscall package because of the need to
maintain compatibility with the gccgo implementation of the syscall
package (gccgo has supported s390x for a longer time than the Go
toolchain). The unix package does not have this constraint.

Using the -fsigned-char flag makes the API look more like the one
generated on amd64 and arm64 and also more consistent with itself
(the syscall package represents chars using both int8 and uint8
types, the sys package will only ever use int8). Unfortunately it
also means that applications transitioning from the syscall package
to the unix package will see a different API on s390x which might
be confusing. I think the tradeoff is worth it though.

Change-Id: I40b90c18ed787e74ba7a2ebd004bd6bd1ba6279a
Reviewed-on: https://go-review.googlesource.com/23045
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-05-13 18:30:25 +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
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
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
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
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
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
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