From 180001241ce7026d11d70601285aea706a45a414 Mon Sep 17 00:00:00 2001
From: Andy Cedilnik <andy.cedilnik@kitware.com>
Date: Tue, 19 Apr 2005 18:26:40 -0400
Subject: [PATCH] COMP: Attempt to fix problem with building on SGI

---
 SystemTools.hxx.in | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/SystemTools.hxx.in b/SystemTools.hxx.in
index 88fc5b9..5bf87ca 100644
--- a/SystemTools.hxx.in
+++ b/SystemTools.hxx.in
@@ -22,7 +22,26 @@
 #include <@KWSYS_NAMESPACE@/Configure.h>
 
 #include <sys/types.h>
+
+// Required for va_list
 #include <stdarg.h>
+#ifndef va_list
+// Some compilers move va_list into the std:: namespace and there is no way to
+// tell that this has been done. Playing with things being included before or
+// after stdarg.h does not solve things because we do not have control over
+// what the user does. This hack solves this problem by moving va_list to our
+// own namespace that is local for kwsys.
+namespace std {} // Required for platforms that do not have std:: 
+namespace @KWSYS_NAMESPACE@_VA_LIST
+{
+  using namespace std;
+  typedef va_list hack_va_list;
+}
+namespace @KWSYS_NAMESPACE@
+{
+  typedef @KWSYS_NAMESPACE@_VA_LIST::hack_va_list va_list;
+}
+#endif // va_list
 
 #if defined( _MSC_VER )
 typedef unsigned short mode_t;
-- 
GitLab