syscall, internal/poll: fix build on js/wasm

Fixes #26014

Change-Id: I9d92414a9181c5d189e3e266666950656bf00406
Reviewed-on: https://go-review.googlesource.com/120576
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Brad Fitzpatrick 2018-06-22 17:45:30 +00:00
parent 7d50abf039
commit 3dced519cb
2 changed files with 11 additions and 3 deletions

View File

@ -455,9 +455,10 @@ func DupCloseOnExec(fd int) (int, string, error) {
switch e1 {
case 0:
return int(r0), "", nil
case syscall.EINVAL:
// Old kernel. Fall back to the portable way
// from now on.
case syscall.EINVAL, syscall.ENOSYS:
// Old kernel, or js/wasm (which returns
// ENOSYS). Fall back to the portable way from
// now on.
atomic.StoreInt32(&tryDupCloexec, 0)
default:
return -1, "fcntl", e1

View File

@ -38,6 +38,13 @@ const (
SO_ERROR
)
// Misc constants expected by package net but not supported.
const (
_ = iota
F_DUPFD_CLOEXEC
SYS_FCNTL = 500 // unsupported; same value as net_nacl.go
)
type Sockaddr interface {
}