From: Ian Lance Taylor Date: Mon, 11 Nov 2013 21:21:50 +0000 (+0000) Subject: mksysinfo, net: Always define F_DUPFD_CLOEXEC. X-Git-Tag: releases/gcc-4.9.0~2883 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c450181dc21de5fac5e6d96600bbdd16cb7fdcb;p=thirdparty%2Fgcc.git mksysinfo, net: Always define F_DUPFD_CLOEXEC. For Solaris and CentOS portability. From-SVN: r204687 --- diff --git a/libgo/go/net/fd_unix.go b/libgo/go/net/fd_unix.go index 9ed4f753649a..4911ab0abe3f 100644 --- a/libgo/go/net/fd_unix.go +++ b/libgo/go/net/fd_unix.go @@ -410,7 +410,7 @@ func (fd *netFD) accept(toAddr func(syscall.Sockaddr) Addr) (netfd *netFD, err e var tryDupCloexec = int32(1) func dupCloseOnExec(fd int) (newfd int, err error) { - if atomic.LoadInt32(&tryDupCloexec) == 1 { + if atomic.LoadInt32(&tryDupCloexec) == 1 && syscall.F_DUPFD_CLOEXEC != 0 { r0, _, e1 := syscall.Syscall(syscall.SYS_FCNTL, uintptr(fd), syscall.F_DUPFD_CLOEXEC, 0) if runtime.GOOS == "darwin" && e1 == syscall.EBADF { // On OS X 10.6 and below (but we only support diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh index a1713df9b572..025729ccad1d 100755 --- a/libgo/mksysinfo.sh +++ b/libgo/mksysinfo.sh @@ -220,6 +220,11 @@ if ! grep '^const O_CLOEXEC' ${OUT} >/dev/null 2>&1; then echo "const O_CLOEXEC = 0" >> ${OUT} fi +# The os package requires F_DUPFD_CLOEXEC to be defined. +if ! grep '^const F_DUPFD_CLOEXEC' ${OUT} >/dev/null 2>&1; then + echo "const F_DUPFD_CLOEXEC = 0" >> ${OUT} +fi + # These flags can be lost on i386 GNU/Linux when using # -D_FILE_OFFSET_BITS=64, because we see "#define F_SETLK F_SETLK64" # before we see the definition of F_SETLK64.