diff --git a/doc/install.html b/doc/install.html
index 7f32f68cd32447..abf7fa6daed2ad 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -16,7 +16,7 @@
Download the Go distribution
Official binary
-distributions are available for the FreeBSD (release 8-STABLE and above),
+distributions are available for the FreeBSD (release 10-STABLE and above),
Linux, Mac OS X (10.8 and above), and Windows operating systems and
the 32-bit (386
) and 64-bit (amd64
) x86 processor
architectures.
@@ -47,7 +47,7 @@
System requirements
Notes |
|
-FreeBSD 9.3 or later | amd64, 386 | Debian GNU/kFreeBSD not supported |
+FreeBSD 10.3 or later | amd64, 386 | Debian GNU/kFreeBSD not supported |
Linux 2.6.23 or later with glibc | amd64, 386, arm, arm64, s390x, ppc64le | CentOS/RHEL 5.x not supported. Install from source for other libc. |
macOS 10.8 or later | amd64 | use the clang or gcc† that comes with Xcode‡ for cgo support |
Windows XP SP2 or later | amd64, 386 | use MinGW gcc†. No need for cygwin or msys. |
diff --git a/src/net/platform_test.go b/src/net/platform_test.go
index 2b87bf4d0ae2b3..eca1202beb200d 100644
--- a/src/net/platform_test.go
+++ b/src/net/platform_test.go
@@ -43,8 +43,6 @@ func testableNetwork(network string) bool {
case "unixpacket":
switch runtime.GOOS {
case "android", "darwin", "nacl", "plan9", "windows":
- fallthrough
- case "freebsd": // FreeBSD 8 and below don't support unixpacket
return false
}
}
diff --git a/src/net/sock_bsd.go b/src/net/sock_bsd.go
index 4e0e9e01f2c61b..dfb092055021f3 100644
--- a/src/net/sock_bsd.go
+++ b/src/net/sock_bsd.go
@@ -17,8 +17,10 @@ func maxListenerBacklog() int {
err error
)
switch runtime.GOOS {
- case "darwin", "freebsd":
+ case "darwin":
n, err = syscall.SysctlUint32("kern.ipc.somaxconn")
+ case "freebsd":
+ n, err = syscall.SysctlUint32("kern.ipc.acceptqueue")
case "netbsd":
// NOTE: NetBSD has no somaxconn-like kernel state so far
case "openbsd":
diff --git a/src/os/pipe_freebsd.go b/src/os/pipe_freebsd.go
index 47983065d92219..93bd869afd4f3f 100644
--- a/src/os/pipe_freebsd.go
+++ b/src/os/pipe_freebsd.go
@@ -13,21 +13,7 @@ func Pipe() (r *File, w *File, err error) {
e := syscall.Pipe2(p[0:], syscall.O_CLOEXEC)
if e != nil {
- // Fallback support for FreeBSD 9, which lacks Pipe2.
- //
- // TODO: remove this for Go 1.10 when FreeBSD 9
- // is removed (Issue 19072).
-
- // See ../syscall/exec.go for description of lock.
- syscall.ForkLock.RLock()
- e := syscall.Pipe(p[0:])
- if e != nil {
- syscall.ForkLock.RUnlock()
- return nil, nil, NewSyscallError("pipe", e)
- }
- syscall.CloseOnExec(p[0])
- syscall.CloseOnExec(p[1])
- syscall.ForkLock.RUnlock()
+ return nil, nil, NewSyscallError("pipe", e)
}
return newFile(uintptr(p[0]), "|0", kindPipe), newFile(uintptr(p[1]), "|1", kindPipe), nil
diff --git a/src/os/sys_freebsd.go b/src/os/sys_freebsd.go
index 273c2df1c12400..3ec49faedf10e9 100644
--- a/src/os/sys_freebsd.go
+++ b/src/os/sys_freebsd.go
@@ -4,20 +4,7 @@
package os
-import "syscall"
-
// supportsCloseOnExec reports whether the platform supports the
// O_CLOEXEC flag.
-var supportsCloseOnExec bool
-
-func init() {
- osrel, err := syscall.SysctlUint32("kern.osreldate")
- if err != nil {
- return
- }
- // The O_CLOEXEC flag was introduced in FreeBSD 8.3.
- // See http://www.freebsd.org/doc/en/books/porters-handbook/freebsd-versions.html.
- if osrel >= 803000 {
- supportsCloseOnExec = true
- }
-}
+// The O_CLOEXEC flag was introduced in FreeBSD 8.3.
+const supportsCloseOnExec bool = true
diff --git a/src/os/wait_wait6.go b/src/os/wait_wait6.go
index b30981199e19f3..891f242dacd140 100644
--- a/src/os/wait_wait6.go
+++ b/src/os/wait_wait6.go
@@ -30,11 +30,6 @@ func (p *Process) blockUntilWaitable() (bool, error) {
}
runtime.KeepAlive(p)
if errno != 0 {
- // The wait6 system call is supported only on FreeBSD
- // 9.3 and above, so it may return an ENOSYS error.
- if errno == syscall.ENOSYS {
- return false, nil
- }
return false, NewSyscallError("wait6", errno)
}
return true, nil
diff --git a/src/syscall/exec_freebsd.go b/src/syscall/exec_freebsd.go
index 4ed32c0614fb7d..1654b4ba2a64b7 100644
--- a/src/syscall/exec_freebsd.go
+++ b/src/syscall/exec_freebsd.go
@@ -5,21 +5,5 @@
package syscall
func forkExecPipe(p []int) error {
- err := Pipe2(p, O_CLOEXEC)
- if err == nil {
- return nil
- }
-
- // FreeBSD 9 fallback.
- // TODO: remove this for Go 1.10 per Issue 19072
- err = Pipe(p)
- if err != nil {
- return err
- }
- _, err = fcntl(p[0], F_SETFD, FD_CLOEXEC)
- if err != nil {
- return err
- }
- _, err = fcntl(p[1], F_SETFD, FD_CLOEXEC)
- return err
+ return Pipe2(p, O_CLOEXEC)
}
diff --git a/src/syscall/syscall_freebsd.go b/src/syscall/syscall_freebsd.go
index 2c7533c157c9d8..5fb9655e5a6ac5 100644
--- a/src/syscall/syscall_freebsd.go
+++ b/src/syscall/syscall_freebsd.go
@@ -66,15 +66,8 @@ func direntNamlen(buf []byte) (uint64, bool) {
return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))
}
-//sysnb pipe() (r int, w int, err error)
-
func Pipe(p []int) error {
- if len(p) != 2 {
- return EINVAL
- }
- var err error
- p[0], p[1], err = pipe()
- return err
+ return Pipe2(p, 0)
}
//sysnb pipe2(p *[2]_C_int, flags int) (err error)
diff --git a/src/syscall/zsyscall_freebsd_386.go b/src/syscall/zsyscall_freebsd_386.go
index e1d371423cfb45..4ada995e540f25 100644
--- a/src/syscall/zsyscall_freebsd_386.go
+++ b/src/syscall/zsyscall_freebsd_386.go
@@ -261,18 +261,6 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func pipe() (r int, w int, err error) {
- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
- r = int(r0)
- w = int(r1)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func pipe2(p *[2]_C_int, flags int) (err error) {
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
if e1 != 0 {
diff --git a/src/syscall/zsyscall_freebsd_amd64.go b/src/syscall/zsyscall_freebsd_amd64.go
index 561870ccce5042..5bbc5c4f34ce93 100644
--- a/src/syscall/zsyscall_freebsd_amd64.go
+++ b/src/syscall/zsyscall_freebsd_amd64.go
@@ -261,18 +261,6 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func pipe() (r int, w int, err error) {
- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
- r = int(r0)
- w = int(r1)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func pipe2(p *[2]_C_int, flags int) (err error) {
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
if e1 != 0 {
diff --git a/src/syscall/zsyscall_freebsd_arm.go b/src/syscall/zsyscall_freebsd_arm.go
index cefebb941769b7..011ac0e25a20ff 100644
--- a/src/syscall/zsyscall_freebsd_arm.go
+++ b/src/syscall/zsyscall_freebsd_arm.go
@@ -261,18 +261,6 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-func pipe() (r int, w int, err error) {
- r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
- r = int(r0)
- w = int(r1)
- if e1 != 0 {
- err = errnoErr(e1)
- }
- return
-}
-
-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
-
func pipe2(p *[2]_C_int, flags int) (err error) {
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
if e1 != 0 {