Commit Graph
61 Commits
Author SHA1 Message Date
Alvar Penning ff98eae2a0 unix: remove absolute path of pwd from mkall.sh
The pwd command does not always reside under /bin for all Linux
distributions. As a $PATH is otherwise always assumed, here too.

Change-Id: I8a9b65fedc0bdd6b963f30e69d5c98b1550326cd
GitHub-Last-Rev: ff9227dbe6029506a932d033feea2059c15b4fec
GitHub-Pull-Request: golang/sys#161
Reviewed-on: https://go-review.googlesource.com/c/sys/+/500656
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
2023-06-04 15:21:17 +00:00
Joel Sing 7c6badcd7c unix: convert openbsd/mips64 to direct libc calls
The current code has continued to work on OpenBSD, since it has been using
syscall(2) via libc. However, the system call numbers are still hardcoded in
golang.org/x/sys/unix. Various system call changes have been made in OpenBSD,
resulting in changes to the system call numbers and arguments, which now
fail when this package is used.

Switch to calling various system calls directly via libc, rather than calling
via libc using syscall(2).

Unfortunately, this will no longer work on upstream Go since the changes
needed to convert it to libc are still blocked pending review. This means
that we're in a less than ideal situation where upstream Go openbsd/mips64
does not work on any supported OpenBSD release (in fact has not since
OpenBSD 6.8, which was EOL over a year ago), however golang.org/x/sys/unix
is now unusable with the Go package that ships with supported releases via
OpenBSD ports. It would seem that being able to actually use Go software on
a supported OpenBSD release trumps maintaining compatibility with the
unusable upstream Go source.

Updates golang/go#36435

Change-Id: Id8947cd0e4e05709e96c3d4478ac8789b924d416
Reviewed-on: https://go-review.googlesource.com/c/sys/+/459497
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
2022-12-30 16:58:14 +00:00
Joel Sing 090e33056c unix: add support for openbsd/ppc64
Updates golang/go#56001

Change-Id: Ic2c7db7a0c2056d3bbc153066c187f27508cb96c
Reviewed-on: https://go-review.googlesource.com/c/sys/+/439978
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Joel Sing <joel@sing.id.au>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
2022-10-10 17:02:43 +00:00
Joel Sing a970992b06 unix: add support for openbsd/riscv64
Updates golang/go#55999

Change-Id: I2ea76f72faaddc46da0c37650de702bc7e90eea2
Reviewed-on: https://go-review.googlesource.com/c/sys/+/439976
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Joel Sing <joel@sing.id.au>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
2022-10-10 17:02:16 +00:00
Tobias Klauser 7b5979e65e unix: remove Go 1.12 compatibility on darwin
Go 1.12 was released more than 3 years ago. Dropping support for it will
simplify generating the wrappers needed for Getdirentries
implementation.

Change-Id: If24bf6ff9076fb4e281948c67bac87744df98d7a
Reviewed-on: https://go-review.googlesource.com/c/sys/+/430176
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>
2022-09-15 20:00:43 +00:00
Joel Sing 5a390386f1 unix: convert openbsd/arm to direct libc calls
The current code has continued to work on OpenBSD, since it has been using
syscall(2) via libc. However, the system call numbers are still hardcoded in
golang.org/x/sys/unix. Various system call changes have been made in OpenBSD,
resulting in changes to the system call numbers and arguments, which now
fail when this package is used.

Switch to calling various system calls directly via libc, rather than calling
via libc using syscall(2).

Updates golang/go#36435

Change-Id: If8e403f0fda7a8b68da71c1f4efba7785b14edf5
Reviewed-on: https://go-review.googlesource.com/c/sys/+/421800
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Joel Sing <joel@sing.id.au>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
2022-08-17 07:08:43 +00:00
Joel Sing fbc7d0a398 unix: convert openbsd/386 to direct libc calls
The current code has continued to work on OpenBSD, since it has been using
syscall(2) via libc. However, the system call numbers are still hardcoded in
golang.org/sys/unix. Various system call changes have been made in OpenBSD,
resulting in changes to the system call numbers and arguments, which now
fail when this package is used.

Switch to calling various system calls directly via libc, rather than calling
via libc using syscall(2).

Updates golang/go#36435

Change-Id: Ib42d5415ef35c7f7b9cbc55adaf7ca15973ab287
Reviewed-on: https://go-review.googlesource.com/c/sys/+/421798
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
2022-08-11 17:12:46 +00:00
Joel Sing 5f8f0205e4 unix: convert openbsd/amd64 to direct libc calls
The current code has continued to work on OpenBSD, since it has been using
syscall(2) via libc. However, the system call numbers are still hardcoded in
golang.org/sys/unix. Various system call changes have been made in OpenBSD,
resulting in changes to the system call numbers and arguments, which now
fail when this package is used.

Switch to calling various system calls directly via libc, rather than calling
via libc using syscall(2).

Updates golang/go#36435

Change-Id: Iadd5734fd4a2421d758883293bd8a6759fc52ca7
Reviewed-on: https://go-review.googlesource.com/c/sys/+/421797
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Joel Sing <joel@sing.id.au>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
2022-08-11 17:12:45 +00:00
Joel Sing 74508daebc unix: convert openbsd/arm64 to direct libc calls
The current code has continued to work on OpenBSD, since it has been using
syscall(2) via libc. However, the system call numbers are still hardcoded in
golang.org/sys/unix. Various system call changes have been made in OpenBSD,
resulting in changes to the system call numbers and arguments, which now
fail when this package is used.

Switch to calling various system calls directly via libc, rather than calling
via libc using syscall(2).

Updates golang/go#36435

Change-Id: I836a484b14e0a427ac565315e27f0de1e9a5d021
Reviewed-on: https://go-review.googlesource.com/c/sys/+/421796
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
2022-08-11 17:12:43 +00:00
Joel Sing 1c4a2a72c6 unix: make mkasm_darwin.go usable with other operating systems
Rename mkasm_darwin.go to mkasm.go and pass the operating system as an
argument. This will allow mkasm to be used to generate assembly for
OpenBSD.

Updates golang/go#36435

Change-Id: I42f54f5c6edc3a18a156e0e8e3c38d07ecf26d0b
Reviewed-on: https://go-review.googlesource.com/c/sys/+/421795
Run-TryBot: Joel Sing <joel@sing.id.au>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
2022-08-08 15:51:32 +00:00
Meng Zhuo 0a85c31ab5 unix: add freebsd/riscv64 support
For golang/go#53466

Change-Id: If5a4dc674cb1856ac580fb87d8030d50fa7c95dd
Reviewed-on: https://go-review.googlesource.com/c/sys/+/416834
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: Meng Zhuo <mzh@golangcn.org>
Reviewed-by: Yuval Pavel Zholkover <paulzhol@gmail.com>
Reviewed-by: Dmitri Goutnik <dgoutnik@gmail.com>
2022-07-12 01:45:10 +00:00
Yuval Pavel Zholkover 05e143d24a unix: regenerate on FreeBSD 12.3
Switch mksysnum to use https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12.
Also remove the SAL 2.0 annotations.

remove FreeBSD 11 and below 64bit inode compatibility shims

Drop the errors_freebsd_GOARCH.go files.

Drop PTRACE_* and additional (arch specific) consts added as part of golang.org/cl/179099 to types_freebsd.
Add <sys/ptrace.h> to mkerror.sh for FreeBSD instead.

Run mkall.sh on FreeBSD 12.3 on amd64 and arm64 hosts with i386 and armv7 jails
for all supported arches.

Updates golang/go#53280

Change-Id: Idd29056829013a1f6eb26376978632645e4018ef
Reviewed-on: https://go-review.googlesource.com/c/sys/+/415714
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
2022-07-04 08:42:25 +00:00
Johan Jansson 7c45f0c2c7 unix: mount Docker-based builder at x/sys
Mount the data volume for the Docker-based builder at x/sys instead of
x/sys/unix.

The x/sys/go.mod file was not included in the data volume when mounting
x/sys/unix. This breaks module-aware go commands that run within the
Docker container.

Fix this problem by mounting the volume at x/sys and updating the
working directory of the builder accordingly.

Updates golang/go#49484

Change-Id: I2346b5320413b48de4984c9d9e31203941336357
Reviewed-on: https://go-review.googlesource.com/c/sys/+/363594
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Trust: Bryan C. Mills <bcmills@google.com>
2021-11-12 16:43:26 +00:00
Cherry Mui 30e306a8bb unix: delete darwin/386 and darwin/arm code
This repo supports two Go releases, Go 1.15 and 1.16 (and tip).
The darwin/386 and darwin/arm ports are dropped in Go 1.15.
And these ports already do not build even with Go 1.14. Delete
them.

Change-Id: Ib15e7c35059967803a1d5f086b00fbfed53a9b33
Reviewed-on: https://go-review.googlesource.com/c/sys/+/316769
Trust: Cherry Mui <cherryyz@google.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2021-05-07 01:43:57 +00:00
Nahum Shalman 390168757d unix: create types_illumos.go
create a new types_illumos.go for illumos specific constants
and structs, bring in those needed for wireguard-go

Change-Id: I68117abcae66127b617faea1f4cc2568b8b28d58
GitHub-Last-Rev: 3003e04e7e1c8d0e0677a98b89dac3f682a1ed22
GitHub-Pull-Request: golang/sys#100
Reviewed-on: https://go-review.googlesource.com/c/sys/+/301713
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
2021-03-17 09:18:45 +00:00
Tobias Klauser 6fcdbc0bbc unix: drop support for pre-1.12 direct syscalls on darwin
Go 1.12 and newer are using libSystem for syscalls on darwin.
Go 1.11 is the last release to use direct syscalls. It hasn't been
supported since the release of Go 1.13 in September 2019, so drop
support for direct syscalls.

Change-Id: I2baf6f3d1031de8e474dc770369a25147e5efe2a
Reviewed-on: https://go-review.googlesource.com/c/sys/+/250437
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2020-08-28 08:09:24 +00:00
Joel Sing f9321e4c35 unix: add support for openbsd/mips64
Update golang/go#40995

Change-Id: Ic5cbeea2a4b54bd047a8bffab8eb84579854fce3
Reviewed-on: https://go-review.googlesource.com/c/sys/+/250119
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
2020-08-26 17:35:25 +00:00
Araragi Hokuto 328b4cd54a unix: add readv/writev for illumos
iovec read/writes (readv, writev, preadv, pwritev) are present on
illumos, but they weren't added to the package. This commit adds
those missing features.

Updates golang/go#36201

Change-Id: Iecf2bab7ef846f5ca5d693e833491d819618c15d
GitHub-Last-Rev: 81a479f4c5f851f81e748cef6eb529c3f89cd1e1
GitHub-Pull-Request: golang/sys#64
Reviewed-on: https://go-review.googlesource.com/c/sys/+/224238
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
2020-03-21 13:42:03 +00:00
Ed Schouten 5766fd39f9 unix: regenerate all definitions on FreeBSD 12.1 on {386,amd64,arm64}
I just created a couple of virtual machines/QEMU instances containing
stock copies of FreeBSD 12.1-RELEASE. On these systems I ran mkall.sh,
thereby bringing the definitions in sync with that version of FreeBSD.

I also attempted to bring the GOOS=freebsd GOARCH=arm port up to date,
but was unfortunately not able to do so. There doesn't seem to be any
documentation on how to bring this port of FreeBSD up on an emulator.
The only option seems to be to use physical hardware.

Change-Id: I54c9f5d15587996ad5fbb535480ab0aa0e723260
GitHub-Last-Rev: ad79b1bda1307eb231b8e034dd15599e333ad25e
GitHub-Pull-Request: golang/sys#63
Reviewed-on: https://go-review.googlesource.com/c/sys/+/223698
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
2020-03-17 11:33:12 +00:00
Umang Parmar eeba5f6aab unix: replace readlink in mkall.sh with portable shell commands
Fixes golang/go#35997

Change-Id: I1c489a126646a0ff4abf9e8b7ba357ff62cb66ac
GitHub-Last-Rev: e01b1c0e8baa28713e7d2235f2f55086a97d709c
GitHub-Pull-Request: golang/sys#49
Reviewed-on: https://go-review.googlesource.com/c/sys/+/210157
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-12-06 22:06:18 +00:00
Tobias Klauser 3421d5a6bb 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>
2019-10-02 06:39:06 +00:00
Yuval Pavel Zholkover b47fdc9379 unix: change the mksysnum master to point to stable/11 on freebsd
Add a COMPAT10 directive to mksysnum.go to keep generating SYS_PIPE.

Updates golang/go#27619

Change-Id: Ifb54a812baf79c9426ce864bb0ef0e66b19d7f3b
Reviewed-on: https://go-review.googlesource.com/c/sys/+/182318
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
2019-06-14 16:08:38 +00:00
Tobias Klauser c0b26311cb unix: support generating netbsd/arm64 files in mkall.sh
CL 155738 added the generated files but didn't update mkall.sh. Do so
now.

Change-Id: I8681ef175547750bea94b06827ef5f4512dc6de3
Reviewed-on: https://go-review.googlesource.com/c/sys/+/174860
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
2019-05-02 14:30:02 +00:00
Visweswara R 804c0c7841 unix: replace "mksysctl_openbsd.pl" script with a Go program
Port mksysctl_openbsd.pl Perl script to mksysctl_openbsd.go.
mkall.sh script is modified to run mksysctl_openbsd.go. Running
mkall.sh does not generate any git diff besides the command
name in comments of generated files. Any missing build tag is
also added in generated files.

Fixes golang/go#27779

Change-Id: I9f946d2818feb31e710029927f089904c5e272cf
Reviewed-on: https://go-review.googlesource.com/c/sys/+/174127
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
Run-TryBot: Benny Siegert <bsiegert@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-04-28 18:31:49 +00:00
Joel Sing 4347357a82 unix: add support for openbsd/arm64
Generated on OpenBSD 6.5.

Updates golang/go#31656

Change-Id: Ie8b5a8ae5ed25517aae2712fa27e62d385813f21
Reviewed-on: https://go-review.googlesource.com/c/sys/+/173678
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-04-24 16:06:41 +00:00
Tobias Klauser c8c8c57fd1 unix: run mkasm independent of mktypes in mkall.sh
Move the $mkasm invocation out of the if [ -n "$mktypes" ]

Change-Id: I6fd34703e2f438b23adceada3161fc4b40ba4fce
Reviewed-on: https://go-review.googlesource.com/c/sys/+/166467
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-03-11 15:21:10 +00:00
Visweswara R cea5d2f6b4 unix: replace "mksyscall_solaris.pl" script with a Go program
Port mksyscall_solaris.pl Perl script to mksyscall_solaris.go.
mkall.sh script is modified to run mksyscall_solaris.go. Running
mkall.sh does not generate any git diff besides the command
name in comments of generated files.

Updates golang/go#27779

Change-Id: I773c9732a882780400a06f578c00e455e133231b
Reviewed-on: https://go-review.googlesource.com/c/162277
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
2019-02-13 11:57:55 +00:00
Visweswara R c6b37f3e92 unix: replace "mksyscall_aix_ppc64.pl" script with a Go program
Port mksyscall_aix_ppc64.pl Perl script to mksyscall_aix_ppc64.go.
mkall.sh script is modified to run mksyscall.go. Running
mkall.sh does not generate any git diff besides the command
name in comments of generated files.

Updates golang/go#27779

Change-Id: Ie888c0df470dcfc75034faa12cf3422b2d426629
Reviewed-on: https://go-review.googlesource.com/c/158699
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
2019-01-23 07:42:12 +00:00
Tobias Klauser 48ac38b7c8 unix: get *BSD syscalls.master files using HTTPS
Use the https:// URLs to get syscalls.master for freebsd, openbsd and
dragonfly. For netbsd, keep using the http:// URL since HTTPS is not
supported.

Change-Id: Ibcbd19d5e3b4585552ea65dcdc742c2e7bfce944
Reviewed-on: https://go-review.googlesource.com/c/157057
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2019-01-09 14:50:17 +00:00
Visweswara R 7fbe1cd0fc unix: replace "mksyscall_aix_ppc.pl" script with a Go program
Port mksyscall_aix_ppc.pl Perl script to mksyscall_aix_ppc.go.
mkall.sh script is modified to run mksyscall.go. Running
mkall.sh does not generate any git diff besides the command
name in comments of generated files.

Updates golang/go#27779

Change-Id: I57b0e5f9fe44dadd96d0e512046bb63e8e1b9f66
Reviewed-on: https://go-review.googlesource.com/c/156778
Reviewed-by: Clément Chigot <clement.chigot@atos.net>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2019-01-08 10:45:31 +00:00
Tobias Klauser a91c4d227e unix: add support for freebsd/arm64
This wasn't actually generated on freebsd/arm64 yet. It's mostly a copy
of the amd64 files for now.

Updates golang/go#24715

Change-Id: If24c3c5803a4708f0b26d738f690cbea1694ca88
Reviewed-on: https://go-review.googlesource.com/c/155978
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2019-01-02 15:55:44 +00:00
Visweswara R 367055b3f9 unix: replace mksysnum_*.pl scripts with Go program
Port mksysnum_{(open|net|free)bsd,dragonfly,darwin}.pl Perl
scripts to mksysnum.go.

mkall.sh script is modified to run mksysnum.go. Running
./mkall.sh generates no git diff besides command name and
function prototype in comments of generated files.

Updates golang/go#27779

Change-Id: I534734a9c7fda186ca133ba19e14481e55832be1
Reviewed-on: https://go-review.googlesource.com/c/152677
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
2018-12-28 11:21:25 +00:00
Tobias Klauser b4a75ba826 unix: generate linux/sparc64 go files using Docker
With cgo supporting sparc64 as of CL 102555 and CL 132155, the Docker
based build system can be used to generate file for linux/sparc64 as
well.

Updates golang/go#15282

Change-Id: I109e55f39d3229b24b0029c42074e439c6c54dc8
Reviewed-on: https://go-review.googlesource.com/c/102655
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-12-21 14:31:28 +00:00
Keith Randall 9fbf701fc3 unix: reverse default for 1.11/1.12 split
Make 1.11 the explicitly named case, and 1.12 the default.

Change-Id: Ic3674860eb9e8a5bb1cf1da12c5ac583cc0b0633
Reviewed-on: https://go-review.googlesource.com/c/155397
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2018-12-21 06:53:00 +00:00
Keith Randall 45d26eb94b unix: convert Darwin syscalls from raw to libSystem
Call into libSystem (Darwin's libc equivalent) to do system calls.
Raw syscalls are not a supported ABI on Darwin, they want us to use
libSystem calls instead.

The stdlib has already been converted to this new regime.  This
package is vendored into the stdlib, so we need to fix it also, then
vendor it in again.

Because this package isn't tied to a Go release, we need to keep the
old code around and use the new code only for 1.12 and up.

Update golang/go#17490

Change-Id: Idbcacff096b5bfeac871aa75dfd971570ac93322
Reviewed-on: https://go-review.googlesource.com/c/154179
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2018-12-20 18:13:18 +00:00
Visweswara R 4ed8d59d0b unix: replace "mksyscall.pl" script with a Go program
Port mksyscall.pl Perl script to mksyscall.go.
mkall scripts are modified to run mksyscall.go.
Running ./mkall.sh does not generate any git diff besides
the command name in comments of generated files.

Updates golang/go#27779

Change-Id: I8c6eb852e6821f4a91dc03cc042d8d343f1bcf66
Reviewed-on: https://go-review.googlesource.com/c/150217
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2018-11-28 09:27:32 +00:00
chigotc 8f1d3d21f8 unix: add support for aix/ppc64, gc implementation
This commit ports unix package for aix/ppc64 with gc implementation.

In order to merge as much as possible gc and gccgo implementation, the
mksyscall_aix_ppc64.pl creates three files.

zsyscall_aix_ppc64.go is common for both implementation. It has the main
syscall function and handles the pointer creations, type conversions
and the error if needed. It calls a function "call..." which is
available for each implementation.

zsyscall_aix_ppc64_gc.go is the gc part. It implements "call..."
functions using //go:cgo_import_dynamic and //go:linkname. It is
based on syscall.syscall6 function.

zsyscall_aix_ppc64_gccgo.go is the gccgo part. It implements "call..."
functions using cgo and C functions.

Some unavailable syscalls were also removed from the previous
implementation.

For aix/ppc, the script is left unchanged as aix/ppc won't be
implemented inside gc.

Change-Id: I3701095df31517c66f95874ba8e682967993090b
Reviewed-on: https://go-review.googlesource.com/c/143117
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
2018-10-19 08:45:34 +00:00
Tony Reix d99a578cf4 unix: code for AIX ppc and ppc64, for gccgo
Change-Id: I187edceaf3604d73110940bd5580fa127a85e87d
Reviewed-on: https://go-review.googlesource.com/129735
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
2018-08-28 06:51:06 +00:00
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