summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2009-09-22 18:56:33 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2009-09-22 18:56:33 (GMT)
commite7601ca600ff6a183e85e0cc9408547adefd7e86 (patch)
tree0bd280786666821a14beab988ec4b7e8623d065c
parent03d032b637493786bd6b8be5f6fd50ac1c81c13e (diff)
downloadCMake-e7601ca600ff6a183e85e0cc9408547adefd7e86.zip
CMake-e7601ca600ff6a183e85e0cc9408547adefd7e86.tar.gz
CMake-e7601ca600ff6a183e85e0cc9408547adefd7e86.tar.bz2
Put a flag in that will stop system tools from deleting system environment memory on exit, as it can cause gcov to crash the programs.
-rw-r--r--Source/kwsys/Configure.hxx.in3
-rw-r--r--Source/kwsys/SystemTools.cxx2
2 files changed, 5 insertions, 0 deletions
diff --git a/Source/kwsys/Configure.hxx.in b/Source/kwsys/Configure.hxx.in
index 572d710..2f3fe34 100644
--- a/Source/kwsys/Configure.hxx.in
+++ b/Source/kwsys/Configure.hxx.in
@@ -17,6 +17,9 @@
/* Include C configuration. */
#include <@KWSYS_NAMESPACE@/Configure.h>
+/* Disable cleanup of putenv memory for issues with GCOV */
+#cmakedefine KWSYS_DO_NOT_CLEAN_PUTENV
+
/* Whether ANSI C++ stream headers are to be used. */
#define @KWSYS_NAMESPACE@_IOS_USE_ANSI @KWSYS_IOS_USE_ANSI@
diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx
index fe0e31b..2ea54b0 100644
--- a/Source/kwsys/SystemTools.cxx
+++ b/Source/kwsys/SystemTools.cxx
@@ -415,11 +415,13 @@ public:
kwsysDeletingCharVector::~kwsysDeletingCharVector()
{
+#ifndef KWSYS_DO_NOT_CLEAN_PUTENV
for(kwsys_stl::vector<char*>::iterator i = this->begin();
i != this->end(); ++i)
{
delete []*i;
}
+#endif
}
bool SystemTools::PutEnv(const char* value)
{