diff options
author | KWSys Robot <kwrobot@kitware.com> | 2014-12-16 13:48:30 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-12-17 20:00:15 (GMT) |
commit | 6a5ab894fbb1683ed24bfa5d603eff6ff3f40039 (patch) | |
tree | 867c986fef9b381c24822037a87c4d3e7c5db572 /Directory.cxx | |
parent | c5fcbe00afb27fc758e8877efa955e86109a0c67 (diff) | |
download | CMake-6a5ab894fbb1683ed24bfa5d603eff6ff3f40039.zip CMake-6a5ab894fbb1683ed24bfa5d603eff6ff3f40039.tar.gz CMake-6a5ab894fbb1683ed24bfa5d603eff6ff3f40039.tar.bz2 |
KWSys 2014-12-16 (cc4046a8)
Extract upstream KWSys using the following shell commands.
$ git archive --prefix=upstream-kwsys/ cc4046a8 | tar x
$ git shortlog --no-merges --abbrev=8 --format='%h %s' dec9c30b..cc4046a8
Brad King (2):
9c3eacf8 Add CONTRIBUTING.rst file with instructions to contribute
cc4046a8 Directory: Work around PGI problem with Linux Large File Support
Jean-Christophe Fillion-Robin (2):
c38ba638 SystemInformation: Improve Get(Available/Total)VirtualMemory for windows
58308145 SystemInformation: Improve comments in private implementation
Change-Id: Ic033444a9c03a8a8b5195e7dac108af2aec79fa6
Diffstat (limited to 'Directory.cxx')
-rw-r--r-- | Directory.cxx | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/Directory.cxx b/Directory.cxx index 741bcba..04b2866 100644 --- a/Directory.cxx +++ b/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++; } |