From e7601ca600ff6a183e85e0cc9408547adefd7e86 Mon Sep 17 00:00:00 2001
From: Bill Hoffman <bill.hoffman@kitware.com>
Date: Tue, 22 Sep 2009 14:56:33 -0400
Subject: 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.

---
 Source/kwsys/Configure.hxx.in | 3 +++
 Source/kwsys/SystemTools.cxx  | 2 ++
 2 files changed, 5 insertions(+)

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)
 { 
-- 
cgit v0.12