mirror of
https://github.com/rwinkhart/sys.git
synced 2026-08-31 14:26:40 -04:00
unix: on ARM GNU/Linux let Pipe fall back to pipe
Follow CL 165217 which did this for package syscall. Android O seems to require Pipe to call the pipe2 system call. But kernel version 2.6.23 only supports pipe, not pipe2. So try pipe2 first, then fall back to pipe. Updates golang/go#30549 Change-Id: Icf21433fa046ff137c0265fa96410229def482f7 Reviewed-on: https://go-review.googlesource.com/c/sys/+/165297 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
committed by
Tobias Klauser
parent
30e92a19ae
commit
a98ae47d97
@@ -19,12 +19,18 @@ func setTimeval(sec, usec int64) Timeval {
|
||||
return Timeval{Sec: int32(sec), Usec: int32(usec)}
|
||||
}
|
||||
|
||||
//sysnb pipe(p *[2]_C_int) (err error)
|
||||
|
||||
func Pipe(p []int) (err error) {
|
||||
if len(p) != 2 {
|
||||
return EINVAL
|
||||
}
|
||||
var pp [2]_C_int
|
||||
// Try pipe2 first for Android O, then try pipe for kernel 2.6.23.
|
||||
err = pipe2(&pp, 0)
|
||||
if err == ENOSYS {
|
||||
err = pipe(&pp)
|
||||
}
|
||||
p[0] = int(pp[0])
|
||||
p[1] = int(pp[1])
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user