Browse Source

Merge branch 'upstream-KWSys' into update-kwsys

# By KWSys Upstream
* upstream-KWSys:
  KWSys 2022-01-29 (389a74dc)
Brad King 3 years ago
parent
commit
e83bb75160
2 changed files with 12 additions and 3 deletions
  1. 6 0
      Source/kwsys/ProcessUNIX.c
  2. 6 3
      Source/kwsys/testSystemTools.cxx

+ 6 - 0
Source/kwsys/ProcessUNIX.c

@@ -41,6 +41,12 @@ do.
 /* Increase the file descriptor limit for select() before including
    related system headers. (Default: 64) */
 #  define FD_SETSIZE 16384
+#elif defined(__APPLE__)
+/* Increase the file descriptor limit for select() before including
+   related system headers. (Default: 1024) */
+#  define _DARWIN_UNLIMITED_SELECT
+#  include <limits.h> /* OPEN_MAX */
+#  define FD_SETSIZE OPEN_MAX
 #endif
 
 #include <assert.h>    /* assert */

+ 6 - 3
Source/kwsys/testSystemTools.cxx

@@ -295,12 +295,15 @@ static bool CheckFileOperations()
 // Reset umask
 #ifdef __MSYS__
   mode_t fullMask = S_IWRITE;
+  mode_t testPerm = S_IREAD;
 #elif defined(_WIN32) && !defined(__CYGWIN__)
   // NOTE:  Windows doesn't support toggling _S_IREAD.
   mode_t fullMask = _S_IWRITE;
+  mode_t testPerm = 0;
 #else
   // On a normal POSIX platform, we can toggle all permissions.
   mode_t fullMask = S_IRWXU | S_IRWXG | S_IRWXO;
+  mode_t testPerm = S_IRUSR;
 #endif
 
   // Test file permissions without umask
@@ -311,7 +314,7 @@ static bool CheckFileOperations()
     res = false;
   }
 
-  if (!kwsys::SystemTools::SetPermissions(testNewFile, 0)) {
+  if (!kwsys::SystemTools::SetPermissions(testNewFile, testPerm)) {
     std::cerr << "Problem with SetPermissions (1) for: " << testNewFile
               << std::endl;
     res = false;
@@ -323,10 +326,10 @@ static bool CheckFileOperations()
     res = false;
   }
 
-  if ((thisPerm & fullMask) != 0) {
+  if ((thisPerm & fullMask) != testPerm) {
     std::cerr << "SetPermissions failed to set permissions (1) for: "
               << testNewFile << ": actual = " << thisPerm
-              << "; expected = " << 0 << std::endl;
+              << "; expected = " << testPerm << std::endl;
     res = false;
   }