public inbox for cygwin-cvs@sourceware.org
help / color / mirror / Atom feed
From: Ken Brown <kbrown@sourceware.org>
To: cygwin-cvs@sourceware.org, newlib-cvs@sourceware.org
Subject: [newlib-cygwin] Cygwin: redefine some macros for Linux compatibility
Date: Thu,  7 Jul 2022 12:23:37 +0000 (GMT)	[thread overview]
Message-ID: <20220707122337.603C93858D32@sourceware.org> (raw)

https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=5d4f405d3b65536c5757e249832654c24759021f

commit 5d4f405d3b65536c5757e249832654c24759021f
Author: Ken Brown <kbrown@cornell.edu>
Date:   Wed Jul 6 14:43:16 2022 -0400

    Cygwin: redefine some macros for Linux compatibility
    
    Define FD_SETSIZE (<sys/select.h>) to be 1024 by default, and define
    NOFILE (<sys/param.h>) to be OPEN_MAX (== 3200) by default.
    
    Remove the comment in <sys/select.h> that FD_SETSIZE should be >=
    NOFILE.
    
    Bump API minor.
    
    Addresses: https://cygwin.com/pipermail/cygwin/2022-July/251839.html

Diff:
---
 newlib/libc/include/sys/select.h       | 10 +++++++---
 winsup/cygwin/include/cygwin/version.h |  3 ++-
 winsup/cygwin/include/sys/param.h      |  4 +++-
 winsup/cygwin/release/3.4.0            |  4 ++++
 winsup/doc/new-features.xml            |  5 +++++
 5 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/newlib/libc/include/sys/select.h b/newlib/libc/include/sys/select.h
index a5cd6c3fe..93d0b79bf 100644
--- a/newlib/libc/include/sys/select.h
+++ b/newlib/libc/include/sys/select.h
@@ -25,10 +25,14 @@ typedef	__sigset_t	sigset_t;
  * Select uses bit masks of file descriptors in longs.
  * These macros manipulate such bit fields (the filesystem macros use chars).
  * FD_SETSIZE may be defined by the user, but the default here
- * should be >= NOFILE (param.h).
+ * should be enough for most uses.
  */
-#ifndef	FD_SETSIZE
-#define	FD_SETSIZE	64
+#ifndef FD_SETSIZE
+# ifdef __CYGWIN__
+#  define FD_SETSIZE	1024
+# else
+#  define FD_SETSIZE	64
+# endif
 #endif
 
 typedef unsigned long	__fd_mask;
diff --git a/winsup/cygwin/include/cygwin/version.h b/winsup/cygwin/include/cygwin/version.h
index 6f65a1299..a5d38f37a 100644
--- a/winsup/cygwin/include/cygwin/version.h
+++ b/winsup/cygwin/include/cygwin/version.h
@@ -517,12 +517,13 @@ details. */
        pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock,
        sem_clockwait, sig2str, str2sig.
   342: Remove cleanup_glue.
+  343: Change FD_SETSIZE and NOFILE.
 
   Note that we forgot to bump the api for ualarm, strtoll, strtoull,
   sigaltstack, sethostname. */
 
 #define CYGWIN_VERSION_API_MAJOR 0
-#define CYGWIN_VERSION_API_MINOR 342
+#define CYGWIN_VERSION_API_MINOR 343
 
 /* There is also a compatibity version number associated with the shared memory
    regions.  It is incremented when incompatible changes are made to the shared
diff --git a/winsup/cygwin/include/sys/param.h b/winsup/cygwin/include/sys/param.h
index 63de726e6..742599b8b 100644
--- a/winsup/cygwin/include/sys/param.h
+++ b/winsup/cygwin/include/sys/param.h
@@ -17,7 +17,9 @@
 /* Max number of open files.  The Posix version is OPEN_MAX.  */
 /* Number of fds is virtually unlimited in cygwin, but we must provide
    some reasonable value for Posix conformance */
-#define NOFILE		8192
+#if !defined NOFILE && defined OPEN_MAX
+# define NOFILE         OPEN_MAX
+#endif
 
 /* Max number of groups; must keep in sync with NGROUPS_MAX in limits.h */
 #define NGROUPS		NGROUPS_MAX
diff --git a/winsup/cygwin/release/3.4.0 b/winsup/cygwin/release/3.4.0
index f310912c9..08d28d510 100644
--- a/winsup/cygwin/release/3.4.0
+++ b/winsup/cygwin/release/3.4.0
@@ -25,6 +25,10 @@ What changed:
   the current directory as Linux does.
   Addresses: https://cygwin.com/pipermail/cygwin/2022-June/251730.html
 
+- The default values of FD_SETSIZE and NOFILE are now 1024 and 3200,
+  respectively.
+  Addresses: https://cygwin.com/pipermail/cygwin/2022-July/251839.html
+
 
 Bug Fixes
 ---------
diff --git a/winsup/doc/new-features.xml b/winsup/doc/new-features.xml
index 0149a027a..46dc028f1 100644
--- a/winsup/doc/new-features.xml
+++ b/winsup/doc/new-features.xml
@@ -33,6 +33,11 @@ Handle UDP_SEGMENT and UDP_GRO socket options.
 The stdio input functions no longer try again to read after EOF.
 </para></listitem>
 
+<listitem><para>
+The default values of FD_SETSIZE and NOFILE are now 1024 and 3200,
+respectively.
+</para></listitem>
+
 </itemizedlist>
 
 </sect2>


                 reply	other threads:[~2022-07-07 12:23 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220707122337.603C93858D32@sourceware.org \
    --to=kbrown@sourceware.org \
    --cc=cygwin-cvs@sourceware.org \
    --cc=newlib-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).