bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/2] fts: fix cloexec races


From: Bruno Haible
Subject: Re: [PATCH 1/2] fts: fix cloexec races
Date: Tue, 15 Aug 2017 00:56:49 +0200
User-agent: KMail/5.1.3 (Linux/4.4.0-91-generic; KDE/5.18.0; x86_64; ; )

Paul Eggert wrote:
> Despite that disadvantage, it would be a win for users or Gnulib, who 
> could stop worrying about the possibility that O_CLOEXEC == 0. I 
> installed the attached patch to try to implement this. I don't use 
> MS-Windows, though, and may well have missed something.

Looks quite nice. I've verified the value of O_CLOEXEC fits:

1) All systems appear to "book" the O_* bit values, starting with the
   small ones.

Linux               max is 0x400000
Hurd                max is 0x400000
Mac OS X 10.7       max is 0x200000
FreeBSD 6.4         max is 0x10000
NetBSD 5.0          max is 0x80000
OpenBSD 3.8         max is 0x8000
MirBSD              max is 0x8000
Minix 3.1.8         max is 0x1000
AIX 7.1             collision with _FKERNEL - probably harmless
HP-UX 11.31         max is 0x1000000
IRIX 6.5            max is 0x40000
OSF/1 5.1           max is 0x40000
Solaris 11 2011-11  max is 0x2000000
Cygwin              max is 0x100000
mingw               max is 0x40000
MSVC 14             max is 0x40000
Interix 3.5         max is 0x2000
BeOS                max is 0x8000

2) The collision with _FKERNEL on AIX is probably harmless, since this flag
probably only exists in kernel code.

Here's an update of the documentation:


2017-08-14  Bruno Haible  <address@hidden>

        open, openat: Update doc about O_CLOEXEC.
        * doc/posix-functions/open.texi: More concrete list of platforms.
        * doc/posix-functions/openat.texi: Likewise.
 
diff --git a/doc/posix-functions/open.texi b/doc/posix-functions/open.texi
index f1565c3..7e9df26 100644
--- a/doc/posix-functions/open.texi
+++ b/doc/posix-functions/open.texi
@@ -10,7 +10,7 @@ Portability problems fixed by the Gnulib module open:
 @itemize
 @item
 Some platforms do not support @code{O_CLOEXEC}:
-Solaris 10, probably many others.
+Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, 
HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 14, Interix 3.5.
 @item
 On platforms where @code{off_t} is a 32-bit type, @code{open} may not work
 correctly with files larger than 2 GB.  (Cf. @code{AC_SYS_LARGEFILE}.)
diff --git a/doc/posix-functions/openat.texi b/doc/posix-functions/openat.texi
index 9f7632b..4a20636 100644
--- a/doc/posix-functions/openat.texi
+++ b/doc/posix-functions/openat.texi
@@ -15,7 +15,7 @@ AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, 
MSVC 14, Interix 3.
 But the replacement function is not safe to be used in libraries and is not 
multithread-safe.
 @item
 Some platforms do not support @code{O_CLOEXEC}:
-Solaris 10.
+AIX 7.1, Solaris 10.
 @item
 On platforms where @code{off_t} is a 32-bit type, @code{open} may not work
 correctly with files larger than 2 GB.  (Cf. @code{AC_SYS_LARGEFILE}.)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]