Merge branch 'upstream-KWSys' into update-kwsys

# By KWSys Upstream
* upstream-KWSys:
  KWSys 2020-08-05 (185dd56e)
This commit is contained in:
Brad King
2020-08-05 16:29:07 -04:00
5 changed files with 26 additions and 62 deletions
+3 -1
View File
@@ -3,7 +3,9 @@
set(CTEST_PROJECT_NAME "KWSys") set(CTEST_PROJECT_NAME "KWSys")
set(CTEST_NIGHTLY_START_TIME "21:00:00 EDT") set(CTEST_NIGHTLY_START_TIME "21:00:00 EDT")
set(CTEST_DROP_METHOD "http") if (NOT CTEST_DROP_METHOD STREQUAL "https")
set(CTEST_DROP_METHOD "http")
endif ()
set(CTEST_DROP_SITE "open.cdash.org") set(CTEST_DROP_SITE "open.cdash.org")
set(CTEST_DROP_LOCATION "/submit.php?project=PublicDashboard") set(CTEST_DROP_LOCATION "/submit.php?project=PublicDashboard")
set(CTEST_DROP_SITE_CDASH TRUE) set(CTEST_DROP_SITE_CDASH TRUE)
+1 -1
View File
@@ -27,7 +27,7 @@
#include <cstdio> #include <cstdio>
#include <cstring> #include <cstring>
namespace KWSYS_NAMESPACE { namespace KWSYS_NAMESPACE {
#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__) #if defined(_WIN32) || defined(__APPLE__)
// On Windows and Apple, no difference between lower and upper case // On Windows and Apple, no difference between lower and upper case
# define KWSYS_GLOB_CASE_INDEPENDENT # define KWSYS_GLOB_CASE_INDEPENDENT
#endif #endif
+20 -9
View File
@@ -863,7 +863,7 @@ void SystemInformation::RunMemoryCheck()
// Hide implementation details in an anonymous namespace. // Hide implementation details in an anonymous namespace.
namespace { namespace {
// ***************************************************************************** // *****************************************************************************
#if defined(__linux) || defined(__APPLE__) #if defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__)
int LoadLines(FILE* file, std::vector<std::string>& lines) int LoadLines(FILE* file, std::vector<std::string>& lines)
{ {
// Load each line in the given file into a the vector. // Load each line in the given file into a the vector.
@@ -893,7 +893,7 @@ int LoadLines(FILE* file, std::vector<std::string>& lines)
return nRead; return nRead;
} }
# if defined(__linux) # if defined(__linux) || defined(__CYGWIN__)
// ***************************************************************************** // *****************************************************************************
int LoadLines(const char* fileName, std::vector<std::string>& lines) int LoadLines(const char* fileName, std::vector<std::string>& lines)
{ {
@@ -926,7 +926,7 @@ int NameValue(std::vector<std::string> const& lines, std::string const& name,
} }
#endif #endif
#if defined(__linux) #if defined(__linux) || defined(__CYGWIN__)
// **************************************************************************** // ****************************************************************************
template <typename T> template <typename T>
int GetFieldsFromFile(const char* fileName, const char** fieldNames, T* values) int GetFieldsFromFile(const char* fileName, const char** fieldNames, T* values)
@@ -3393,7 +3393,7 @@ bool SystemInformationImplementation::RetreiveInformationFromCpuInfoFile()
pos = buffer.find("processor\t", pos + 1); pos = buffer.find("processor\t", pos + 1);
} }
#ifdef __linux #if defined(__linux) || defined(__CYGWIN__)
// Count sockets. // Count sockets.
std::set<int> PhysicalIDs; std::set<int> PhysicalIDs;
std::string idc = this->ExtractValueFromCpuInfoFile(buffer, "physical id"); std::string idc = this->ExtractValueFromCpuInfoFile(buffer, "physical id");
@@ -3414,8 +3414,8 @@ bool SystemInformationImplementation::RetreiveInformationFromCpuInfoFile()
this->NumberOfPhysicalCPU = this->NumberOfPhysicalCPU =
NumberOfCoresPerSocket * (unsigned int)NumberOfSockets; NumberOfCoresPerSocket * (unsigned int)NumberOfSockets;
#else // __CYGWIN__ #else
// does not have "physical id" entries, neither "cpu cores" // For systems which do not have "physical id" entries, neither "cpu cores"
// this has to be fixed for hyper-threading. // this has to be fixed for hyper-threading.
std::string cpucount = std::string cpucount =
this->ExtractValueFromCpuInfoFile(buffer, "cpu count"); this->ExtractValueFromCpuInfoFile(buffer, "cpu count");
@@ -3597,7 +3597,7 @@ long long SystemInformationImplementation::GetHostMemoryTotal()
GlobalMemoryStatusEx(&statex); GlobalMemoryStatusEx(&statex);
return statex.ullTotalPhys / 1024; return statex.ullTotalPhys / 1024;
# endif # endif
#elif defined(__linux) #elif defined(__linux) || defined(__CYGWIN__)
long long memTotal = 0; long long memTotal = 0;
int ierr = GetFieldFromFile("/proc/meminfo", "MemTotal:", memTotal); int ierr = GetFieldFromFile("/proc/meminfo", "MemTotal:", memTotal);
if (ierr) { if (ierr) {
@@ -3712,6 +3712,16 @@ long long SystemInformationImplementation::GetHostMemoryUsed()
GlobalMemoryStatusEx(&statex); GlobalMemoryStatusEx(&statex);
return (statex.ullTotalPhys - statex.ullAvailPhys) / 1024; return (statex.ullTotalPhys - statex.ullAvailPhys) / 1024;
# endif # endif
#elif defined(__CYGWIN__)
const char* names[3] = { "MemTotal:", "MemFree:", nullptr };
long long values[2] = { 0 };
int ierr = GetFieldsFromFile("/proc/meminfo", names, values);
if (ierr) {
return ierr;
}
long long& memTotal = values[0];
long long& memFree = values[1];
return memTotal - memFree;
#elif defined(__linux) #elif defined(__linux)
// First try to use MemAvailable, but it only works on newer kernels // First try to use MemAvailable, but it only works on newer kernels
const char* names2[3] = { "MemTotal:", "MemAvailable:", nullptr }; const char* names2[3] = { "MemTotal:", "MemAvailable:", nullptr };
@@ -3773,7 +3783,7 @@ long long SystemInformationImplementation::GetProcMemoryUsed()
return -2; return -2;
} }
return pmc.WorkingSetSize / 1024; return pmc.WorkingSetSize / 1024;
#elif defined(__linux) #elif defined(__linux) || defined(__CYGWIN__)
long long memUsed = 0; long long memUsed = 0;
int ierr = GetFieldFromFile("/proc/self/status", "VmRSS:", memUsed); int ierr = GetFieldFromFile("/proc/self/status", "VmRSS:", memUsed);
if (ierr) { if (ierr) {
@@ -3850,7 +3860,8 @@ long long SystemInformationImplementation::GetProcessId()
#if defined(_WIN32) #if defined(_WIN32)
return GetCurrentProcessId(); return GetCurrentProcessId();
#elif defined(__linux) || defined(__APPLE__) || defined(__OpenBSD__) || \ #elif defined(__linux) || defined(__APPLE__) || defined(__OpenBSD__) || \
defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || \
defined(__CYGWIN__)
return getpid(); return getpid();
#else #else
return -1; return -1;
+2 -42
View File
@@ -96,19 +96,12 @@
# if defined(_MSC_VER) && _MSC_VER >= 1800 # if defined(_MSC_VER) && _MSC_VER >= 1800
# define KWSYS_WINDOWS_DEPRECATED_GetVersionEx # define KWSYS_WINDOWS_DEPRECATED_GetVersionEx
# endif # endif
#elif defined(__CYGWIN__)
# include <windows.h>
# undef _WIN32
#endif #endif
#if !KWSYS_CXX_HAS_ENVIRON_IN_STDLIB_H #if !KWSYS_CXX_HAS_ENVIRON_IN_STDLIB_H
extern char** environ; extern char** environ;
#endif #endif
#ifdef __CYGWIN__
# include <sys/cygwin.h>
#endif
// getpwnam doesn't exist on Windows and Cray Xt3/Catamount // getpwnam doesn't exist on Windows and Cray Xt3/Catamount
// same for TIOCGWINSZ // same for TIOCGWINSZ
#if defined(_WIN32) || defined(__LIBCATAMOUNT__) || \ #if defined(_WIN32) || defined(__LIBCATAMOUNT__) || \
@@ -1290,15 +1283,7 @@ bool SystemTools::PathExists(const std::string& path)
if (path.empty()) { if (path.empty()) {
return false; return false;
} }
#if defined(__CYGWIN__) #if defined(_WIN32)
// Convert path to native windows path if possible.
char winpath[MAX_PATH];
if (SystemTools::PathCygwinToWin32(path.c_str(), winpath)) {
return (GetFileAttributesA(winpath) != INVALID_FILE_ATTRIBUTES);
}
struct stat st;
return lstat(path.c_str(), &st) == 0;
#elif defined(_WIN32)
return (GetFileAttributesW(Encoding::ToWindowsExtendedPath(path).c_str()) != return (GetFileAttributesW(Encoding::ToWindowsExtendedPath(path).c_str()) !=
INVALID_FILE_ATTRIBUTES); INVALID_FILE_ATTRIBUTES);
#else #else
@@ -1320,14 +1305,7 @@ bool SystemTools::FileExists(const std::string& filename)
if (filename.empty()) { if (filename.empty()) {
return false; return false;
} }
#if defined(__CYGWIN__) #if defined(_WIN32)
// Convert filename to native windows path if possible.
char winpath[MAX_PATH];
if (SystemTools::PathCygwinToWin32(filename.c_str(), winpath)) {
return (GetFileAttributesA(winpath) != INVALID_FILE_ATTRIBUTES);
}
return access(filename.c_str(), R_OK) == 0;
#elif defined(_WIN32)
DWORD attr = DWORD attr =
GetFileAttributesW(Encoding::ToWindowsExtendedPath(filename).c_str()); GetFileAttributesW(Encoding::ToWindowsExtendedPath(filename).c_str());
if (attr == INVALID_FILE_ATTRIBUTES) { if (attr == INVALID_FILE_ATTRIBUTES) {
@@ -1433,24 +1411,6 @@ int SystemTools::Stat(const std::string& path, SystemTools::Stat_t* buf)
#endif #endif
} }
#ifdef __CYGWIN__
bool SystemTools::PathCygwinToWin32(const char* path, char* win32_path)
{
auto itr = SystemToolsStatics->Cyg2Win32Map.find(path);
if (itr != SystemToolsStatics->Cyg2Win32Map.end()) {
strncpy(win32_path, itr->second.c_str(), MAX_PATH);
} else {
if (cygwin_conv_path(CCP_POSIX_TO_WIN_A, path, win32_path, MAX_PATH) !=
0) {
win32_path[0] = 0;
}
SystemToolsStatics->Cyg2Win32Map.insert(
SystemToolsStatic::StringMap::value_type(path, win32_path));
}
return win32_path[0] != 0;
}
#endif
bool SystemTools::Touch(const std::string& filename, bool create) bool SystemTools::Touch(const std::string& filename, bool create)
{ {
if (!SystemTools::FileExists(filename)) { if (!SystemTools::FileExists(filename)) {
-9
View File
@@ -331,15 +331,6 @@ public:
static int Stat(const char* path, Stat_t* buf); static int Stat(const char* path, Stat_t* buf);
static int Stat(const std::string& path, Stat_t* buf); static int Stat(const std::string& path, Stat_t* buf);
/**
* Converts Cygwin path to Win32 path. Uses dictionary container for
* caching and calls to cygwin_conv_to_win32_path from Cygwin dll
* for actual translation. Returns true on success, else false.
*/
#ifdef __CYGWIN__
static bool PathCygwinToWin32(const char* path, char* win32_path);
#endif
/** /**
* Return file length * Return file length
*/ */