Browse Source

Merge branch 'upstream-kwsys' into update-kwsys

Brad King 11 years ago
parent
commit
3470704f5a

+ 35 - 0
Source/kwsys/CONTRIBUTING.rst

@@ -0,0 +1,35 @@
+Contributing to KWSys
+*********************
+
+Overview
+========
+
+KWSys is kept in its own Git repository and shared by several projects
+via copies in their source trees.  Changes to KWSys should not be made
+directly in a host project, except perhaps in maintenance branches.
+
+Please visit
+
+  http://public.kitware.com/Wiki/KWSys/Git
+
+to contribute changes directly to KWSys upstream.  Once changes are
+reviewed, tested, and integrated there then the copies of KWSys within
+dependent projects can be updated to get the changes.
+
+Issues
+======
+
+KWSys has no independent issue tracker.  After encountering an issue
+(bug) please try to submit a patch using the above instructions.
+Otherwise please report the issue to the tracker for the project that
+hosts the copy of KWSys in which the problem was found.
+
+License
+=======
+
+We do not require any formal copyright assignment or contributor license
+agreement.  Any contributions intentionally sent upstream are presumed
+to be offerred under terms of the OSI-approved BSD 3-clause License.
+See `Copyright.txt`_ for details.
+
+.. _`Copyright.txt`: Copyright.txt

+ 14 - 9
Source/kwsys/Directory.cxx

@@ -203,13 +203,18 @@ unsigned long Directory::GetNumberOfFilesInDirectory(const kwsys_stl::string& na
 #include <sys/types.h>
 #include <dirent.h>
 
-/* There is a problem with the Portland compiler, large file
-support and glibc/Linux system headers: 
-http://www.pgroup.com/userforum/viewtopic.php?
-p=1992&sid=f16167f51964f1a68fe5041b8eb213b6
-*/
-#if defined(__PGI) && defined(__USE_FILE_OFFSET64)
-# define dirent dirent64
+// PGI with glibc has trouble with dirent and large file support:
+//  http://www.pgroup.com/userforum/viewtopic.php?
+//  p=1992&sid=f16167f51964f1a68fe5041b8eb213b6
+// Work around the problem by mapping dirent the same way as readdir.
+#if defined(__PGI) && defined(__GLIBC__)
+# define kwsys_dirent_readdir dirent
+# define kwsys_dirent_readdir64 dirent64
+# define kwsys_dirent kwsys_dirent_lookup(readdir)
+# define kwsys_dirent_lookup(x) kwsys_dirent_lookup_delay(x)
+# define kwsys_dirent_lookup_delay(x) kwsys_dirent_##x
+#else
+# define kwsys_dirent dirent
 #endif
 
 namespace KWSYS_NAMESPACE
@@ -226,7 +231,7 @@ bool Directory::Load(const kwsys_stl::string& name)
     return 0;
     }
 
-  for (dirent* d = readdir(dir); d; d = readdir(dir) )
+  for (kwsys_dirent* d = readdir(dir); d; d = readdir(dir) )
     {
     this->Internal->Files.push_back(d->d_name);
     }
@@ -240,7 +245,7 @@ unsigned long Directory::GetNumberOfFilesInDirectory(const kwsys_stl::string& na
   DIR* dir = opendir(name.c_str());
 
   unsigned long count = 0;
-  for (dirent* d = readdir(dir); d; d = readdir(dir) )
+  for (kwsys_dirent* d = readdir(dir); d; d = readdir(dir) )
     {
     count++;
     }

+ 2 - 0
Source/kwsys/README.txt

@@ -8,3 +8,5 @@ details.
 You are probably reading this file in the source tree of a surrounding
 project.  In that case, see "../README.kwsys" for details of using
 KWSys in your project.
+
+See CONTRIBUTING.rst for instructions to contribute KWSys changes.

+ 7 - 6
Source/kwsys/SystemInformation.cxx

@@ -443,7 +443,7 @@ public:
     };
 
 protected:
-  // Functions.
+  // For windows
   bool RetrieveCPUFeatures();
   bool RetrieveCPUIdentity();
   bool RetrieveCPUCacheDetails();
@@ -457,6 +457,7 @@ protected:
   bool RetrieveClassicalCPUIdentity();
   bool RetrieveExtendedCPUIdentity();
 
+  // Processor information
   Manufacturer  ChipManufacturer;
   CPUFeatures   Features;
   ID            ChipID;
@@ -464,11 +465,11 @@ protected:
   unsigned int  NumberOfLogicalCPU;
   unsigned int  NumberOfPhysicalCPU;
 
-  int CPUCount();
+  int CPUCount(); // For windows
   unsigned char LogicalCPUPerPhysicalCPU();
-  unsigned char GetAPICId();
+  unsigned char GetAPICId(); // For windows
   bool IsHyperThreadingSupported();
-  static LongLong GetCyclesDifference(DELAY_FUNC, unsigned int);
+  static LongLong GetCyclesDifference(DELAY_FUNC, unsigned int); // For windows
 
   // For Linux and Cygwin, /proc/cpuinfo formats are slightly different
   bool RetreiveInformationFromCpuInfoFile();
@@ -3753,9 +3754,9 @@ bool SystemInformationImplementation::QueryWindowsMemory()
   }
 #  define MEM_VAL(value) ull##value
 # endif
-  tv = ms.MEM_VAL(TotalVirtual);
+  tv = ms.MEM_VAL(TotalPageFile);
   tp = ms.MEM_VAL(TotalPhys);
-  av = ms.MEM_VAL(AvailVirtual);
+  av = ms.MEM_VAL(AvailPageFile);
   ap = ms.MEM_VAL(AvailPhys);
   this->TotalVirtualMemory = tv>>10>>10;
   this->TotalPhysicalMemory = tp>>10>>10;