-diff -ruN trilinos-11.4.3/PackagesList.cmake trilinos-11.4.3-new/PackagesList.cmake
---- trilinos-11.4.3/PackagesList.cmake	2013-11-21 13:13:01.000000000 -0700
-+++ trilinos-11.4.3-new/PackagesList.cmake	2014-09-09 14:48:49.000000000 -0600
-@@ -190,7 +190,7 @@
- PACKAGE_DISABLE_ON_PLATFORMS(TriKota Windows)
- PACKAGE_DISABLE_ON_PLATFORMS(Pamgen Windows)
- PACKAGE_DISABLE_ON_PLATFORMS(STK Windows)
--PACKAGE_DISABLE_ON_PLATFORMS(SEACAS Windows)
-+#PACKAGE_DISABLE_ON_PLATFORMS(SEACAS Windows)
- PACKAGE_DISABLE_ON_PLATFORMS(Anasazi Windows)
- PACKAGE_DISABLE_ON_PLATFORMS(Zoltan Windows)
- PACKAGE_DISABLE_ON_PLATFORMS(Isorropia Windows)
+diff -ruN trilinos-11.4.3/packages/amesos/CMakeLists.txt trilinos-11.4.3-new/packages/amesos/CMakeLists.txt
+--- trilinos-11.4.3/packages/amesos/CMakeLists.txt	2013-11-21 15:13:00.000000000 -0500
++++ trilinos-11.4.3-new/packages/amesos/CMakeLists.txt	2014-12-08 11:25:50.234223620 -0500
+@@ -12,10 +12,19 @@
+ # B) Set up package-specific options
+ #
+ 
++#
++# TMA: We can actually build SuperLU_Dist without ParMETIS per a recent Tech-X
++# change made with the help of Sherry Li.
++#
++
+ # if using SuperLUDist, must also link in ParMETIS for some reason
++# JRC: Because it is now a dependency that would go away if Sherry Li
++# would accept Tech-X changes
++if (NOT TPL_ENABLE_SuperLUDist_Without_ParMETIS)
+ IF(${PACKAGE_NAME}_ENABLE_SuperLUDist AND NOT ${PACKAGE_NAME}_ENABLE_ParMETIS)
+   MESSAGE(FATAL_ERROR "The Amesos support for the SuperLUIDist TPL requires the ParMETIS TPL.  Either disable Amesos SuperLUDist support or enable the ParMETIS TPL.")
+ ENDIF()
++ENDIF()
+ 
+ # if using parallel MUMPS, must also link in scalapack and BLACS
+ 
+diff -ruN trilinos-11.4.3/packages/amesos2/src/Amesos2_EpetraMultiVecAdapter_def.hpp trilinos-11.4.3-new/packages/amesos2/src/Amesos2_EpetraMultiVecAdapter_def.hpp
+--- trilinos-11.4.3/packages/amesos2/src/Amesos2_EpetraMultiVecAdapter_def.hpp	2013-11-21 15:11:10.000000000 -0500
++++ trilinos-11.4.3-new/packages/amesos2/src/Amesos2_EpetraMultiVecAdapter_def.hpp	2014-12-08 11:27:07.542225308 -0500
+@@ -324,8 +324,7 @@
+ 
+ void MultiVecAdapter<Epetra_MultiVector>::describe(
+   Teuchos::FancyOStream& os,
+-  const Teuchos::EVerbosityLevel verbLevel=
+-  Teuchos::Describable::verbLevel_default) const
++  const Teuchos::EVerbosityLevel verbLevel) const
+ {
+   // TODO: implement!
+ }
+diff -ruN trilinos-11.4.3/packages/ifpack/src/Ifpack_ICT.cpp trilinos-11.4.3-new/packages/ifpack/src/Ifpack_ICT.cpp
+--- trilinos-11.4.3/packages/ifpack/src/Ifpack_ICT.cpp	2013-11-21 15:11:43.000000000 -0500
++++ trilinos-11.4.3-new/packages/ifpack/src/Ifpack_ICT.cpp	2014-12-08 11:25:50.235223648 -0500
+@@ -40,6 +40,7 @@
+ //@HEADER
+ */
+ 
++#include <functional>
+ #include "Ifpack_ConfigDefs.h"
+ #include "Ifpack_Preconditioner.h"
+ #include "Ifpack_ICT.h"
+diff -ruN trilinos-11.4.3/packages/ml/src/MLAPI/MLAPI_MultiVector.h trilinos-11.4.3-new/packages/ml/src/MLAPI/MLAPI_MultiVector.h
+--- trilinos-11.4.3/packages/ml/src/MLAPI/MLAPI_MultiVector.h	2013-11-21 15:12:27.000000000 -0500
++++ trilinos-11.4.3-new/packages/ml/src/MLAPI/MLAPI_MultiVector.h	2014-12-08 11:25:50.237223698 -0500
+@@ -15,6 +15,7 @@
+ /* person and disclaimer.                                               */        
+ /* ******************************************************************** */
+ 
++#include <functional>
+ //#include "ml_lapack.h"
+ #include "MLAPI_Error.h"
+ #include "MLAPI_BaseObject.h"
+diff -ruN trilinos-11.4.3/packages/ml/src/MLAPI/MLAPI_Workspace.cpp trilinos-11.4.3-new/packages/ml/src/MLAPI/MLAPI_Workspace.cpp
+--- trilinos-11.4.3/packages/ml/src/MLAPI/MLAPI_Workspace.cpp	2013-11-21 15:12:27.000000000 -0500
++++ trilinos-11.4.3-new/packages/ml/src/MLAPI/MLAPI_Workspace.cpp	2014-12-08 11:25:50.237223698 -0500
+@@ -13,8 +13,10 @@
+ #endif
+ #include "MLAPI_Error.h"
+ #include "MLAPI_Workspace.h"
+-#ifdef _MSC_VER
+-#include "winprocess.h"
++#if defined(_MSC_VER)
++# include "winprocess.h"
++#elif defined(__MINGW32__)
++# include "windows.h"
+ #endif
+ 
+ namespace MLAPI {
+@@ -119,8 +121,10 @@
+ #endif
+         printf("%s\n",buf);
+         fflush(stdout);
+-#ifdef ICL
++#if defined(ICL)
+         Sleep(1);
++#elif defined(__MINGW32__)
++        Sleep(1000.);  // Windows sleep is in milliseconds
+ #else
+         sleep(1);
+ #endif
+diff -ruN trilinos-11.4.3/packages/ml/src/Utils/ml_epetra_utils.cpp trilinos-11.4.3-new/packages/ml/src/Utils/ml_epetra_utils.cpp
+--- trilinos-11.4.3/packages/ml/src/Utils/ml_epetra_utils.cpp	2013-11-21 15:12:26.000000000 -0500
++++ trilinos-11.4.3-new/packages/ml/src/Utils/ml_epetra_utils.cpp	2014-12-08 11:25:50.239223737 -0500
+@@ -40,8 +40,10 @@
+ #include "Teuchos_Array.hpp"
+ #include "Teuchos_ParameterList.hpp"
+ #endif
+-#ifdef _MSC_VER
++#if defined(_MSC_VER)
+ # include "winprocess.h"
++#elif defined(__MINGW32__)
++# include "windows.h"
+ #endif
+ 
+ #ifdef HAVE_ML_TEUCHOS
+@@ -3539,6 +3541,11 @@
+       if (i == Comm.MyPID() ) {
+ #if defined(TFLOP) || defined(JANUS_STLPORT) || defined(COUGAR)
+     sprintf(buf, "Host: %s   PID: %d", "janus", getpid());
++#elif defined(__MINGW32__)
++// getpid not present for mingw
++    sprintf(buf, "Host: %s   PID: %d", "mingw32", 0);
++#elif defined(_MSC_VER)
++    sprintf(buf, "Host: %s   PID: %d", "msvc", getpid());
+ #else
+     gethostname(hostname, sizeof(hostname));
+     int pid = getpid();
+@@ -3547,8 +3554,10 @@
+ #endif
+     printf("%s\n",buf);
+     fflush(stdout);
+-#ifdef ICL
++#if defined(ICL)
+     Sleep(1);
++#elif defined(__MINGW32__)
++    Sleep(1000.);  // Windows sleep is in milliseconds
+ #else
+     sleep(1);
+ #endif
+diff -ruN trilinos-11.4.3/packages/ml/src/Utils/ml_utils.c trilinos-11.4.3-new/packages/ml/src/Utils/ml_utils.c
+--- trilinos-11.4.3/packages/ml/src/Utils/ml_utils.c	2013-11-21 15:12:26.000000000 -0500
++++ trilinos-11.4.3-new/packages/ml/src/Utils/ml_utils.c	2014-12-08 11:25:50.266224014 -0500
+@@ -1956,14 +1956,18 @@
+       if (i == mypid) {
+ #if defined(TFLOP) || defined(JANUS_STLPORT) || defined(COUGAR)
+         sprintf(buf, "Host: %s   PID: %d", "janus", getpid());
++#elif defined(__MINGW32__)
++        sprintf(buf, "Host: %s   PID: %d", "mingw", getpid());
+ #else
+         gethostname(hostname, sizeof(hostname));
+         sprintf(buf, "Host: %s   PID: %d (mpi task %d)", hostname, getpid(),mypid);
+ #endif
+         printf("%s\n",buf);
+         fflush(stdout);
+-#ifdef ICL
++#if defined(ICL)
+         Sleep(1);
++#elif defined(__MINGW32__)
++        Sleep(1000.);  // Windows sleep is in milliseconds
+ #else
+         sleep(1);
+ #endif
 diff -ruN trilinos-11.4.3/packages/PyTrilinos/src/CMakeLists.txt trilinos-11.4.3-new/packages/PyTrilinos/src/CMakeLists.txt
---- trilinos-11.4.3/packages/PyTrilinos/src/CMakeLists.txt	2013-11-21 13:11:37.000000000 -0700
-+++ trilinos-11.4.3-new/packages/PyTrilinos/src/CMakeLists.txt	2014-09-09 14:49:10.000000000 -0600
+--- trilinos-11.4.3/packages/PyTrilinos/src/CMakeLists.txt	2013-11-21 15:11:37.000000000 -0500
++++ trilinos-11.4.3-new/packages/PyTrilinos/src/CMakeLists.txt	2014-12-08 11:25:50.232223560 -0500
 @@ -62,7 +62,7 @@
  # to the pytrilinos library and PyTrilinos extension modules
  SET(EXTRA_LINK_ARGS "${CMAKE_SHARED_LINKER_FLAGS}")

 %template(ScalarTraitsUlongLong) Teuchos::ScalarTraits< unsigned long long >;
 
 %template(ScalarTraitsFloat) Teuchos::ScalarTraits< float >;
diff -ruN trilinos-11.4.3/packages/amesos/CMakeLists.txt trilinos-11.4.3-new/packages/amesos/CMakeLists.txt
--- trilinos-11.4.3/packages/amesos/CMakeLists.txt	2013-11-21 13:13:00.000000000 -0700
+++ trilinos-11.4.3-new/packages/amesos/CMakeLists.txt	2014-09-09 14:48:49.000000000 -0600
@@ -12,10 +12,19 @@
 # B) Set up package-specific options
 #
 
+#
+# TMA: We can actually build SuperLU_Dist without ParMETIS per a recent Tech-X
+# change made with the help of Sherry Li.
+#
+
 # if using SuperLUDist, must also link in ParMETIS for some reason
+# JRC: Because it is now a dependency that would go away if Sherry Li
+# would accept Tech-X changes
+if (NOT TPL_ENABLE_SuperLUDist_Without_ParMETIS)
 IF(${PACKAGE_NAME}_ENABLE_SuperLUDist AND NOT ${PACKAGE_NAME}_ENABLE_ParMETIS)
   MESSAGE(FATAL_ERROR "The Amesos support for the SuperLUIDist TPL requires the ParMETIS TPL.  Either disable Amesos SuperLUDist support or enable the ParMETIS TPL.")
 ENDIF()
+ENDIF()
 
 # if using parallel MUMPS, must also link in scalapack and BLACS
 
diff -ruN trilinos-11.4.3/packages/ifpack/src/Ifpack_ICT.cpp trilinos-11.4.3-new/packages/ifpack/src/Ifpack_ICT.cpp
--- trilinos-11.4.3/packages/ifpack/src/Ifpack_ICT.cpp	2013-11-21 13:11:43.000000000 -0700
+++ trilinos-11.4.3-new/packages/ifpack/src/Ifpack_ICT.cpp	2014-09-09 14:48:49.000000000 -0600
@@ -40,6 +40,7 @@
 //@HEADER
 */
 
+#include <functional>
 #include "Ifpack_ConfigDefs.h"
 #include "Ifpack_Preconditioner.h"
 #include "Ifpack_ICT.h"
diff -ruN trilinos-11.4.3/packages/ml/src/MLAPI/MLAPI_MultiVector.h trilinos-11.4.3-new/packages/ml/src/MLAPI/MLAPI_MultiVector.h
--- trilinos-11.4.3/packages/ml/src/MLAPI/MLAPI_MultiVector.h	2013-11-21 13:12:27.000000000 -0700
+++ trilinos-11.4.3-new/packages/ml/src/MLAPI/MLAPI_MultiVector.h	2014-09-09 14:48:49.000000000 -0600
@@ -15,6 +15,7 @@
 /* person and disclaimer.                                               */        
 /* ******************************************************************** */
 
+#include <functional>
 //#include "ml_lapack.h"
 #include "MLAPI_Error.h"
 #include "MLAPI_BaseObject.h"
diff -ruN trilinos-11.4.3/packages/ml/src/MLAPI/MLAPI_Workspace.cpp trilinos-11.4.3-new/packages/ml/src/MLAPI/MLAPI_Workspace.cpp
--- trilinos-11.4.3/packages/ml/src/MLAPI/MLAPI_Workspace.cpp	2013-11-21 13:12:27.000000000 -0700
+++ trilinos-11.4.3-new/packages/ml/src/MLAPI/MLAPI_Workspace.cpp	2014-09-09 14:48:49.000000000 -0600
@@ -13,8 +13,10 @@
 #endif
 #include "MLAPI_Error.h"
 #include "MLAPI_Workspace.h"
-#ifdef _MSC_VER
-#include "winprocess.h"
+#if defined(_MSC_VER)
+# include "winprocess.h"
+#elif defined(__MINGW32__)
+# include "windows.h"
 #endif
 
 namespace MLAPI {
@@ -119,8 +121,10 @@
 #endif
         printf("%s\n",buf);
         fflush(stdout);
-#ifdef ICL
+#if defined(ICL)
         Sleep(1);
+#elif defined(__MINGW32__)
+        Sleep(1000.);  // Windows sleep is in milliseconds
 #else
         sleep(1);
 #endif
diff -ruN trilinos-11.4.3/packages/ml/src/Utils/ml_epetra_utils.cpp trilinos-11.4.3-new/packages/ml/src/Utils/ml_epetra_utils.cpp
--- trilinos-11.4.3/packages/ml/src/Utils/ml_epetra_utils.cpp	2013-11-21 13:12:26.000000000 -0700
+++ trilinos-11.4.3-new/packages/ml/src/Utils/ml_epetra_utils.cpp	2014-09-09 14:48:49.000000000 -0600
@@ -40,8 +40,10 @@
 #include "Teuchos_Array.hpp"
 #include "Teuchos_ParameterList.hpp"
 #endif
-#ifdef _MSC_VER
+#if defined(_MSC_VER)
 # include "winprocess.h"
+#elif defined(__MINGW32__)
+# include "windows.h"
 #endif
 
 #ifdef HAVE_ML_TEUCHOS
@@ -3539,6 +3541,11 @@
       if (i == Comm.MyPID() ) {
 #if defined(TFLOP) || defined(JANUS_STLPORT) || defined(COUGAR)
     sprintf(buf, "Host: %s   PID: %d", "janus", getpid());
+#elif defined(__MINGW32__)
+// getpid not present for mingw
+    sprintf(buf, "Host: %s   PID: %d", "mingw32", 0);
+#elif defined(_MSC_VER)
+    sprintf(buf, "Host: %s   PID: %d", "msvc", getpid());
 #else
     gethostname(hostname, sizeof(hostname));
     int pid = getpid();
@@ -3547,8 +3554,10 @@
 #endif
     printf("%s\n",buf);
     fflush(stdout);
-#ifdef ICL
+#if defined(ICL)
     Sleep(1);
+#elif defined(__MINGW32__)
+    Sleep(1000.);  // Windows sleep is in milliseconds
 #else
     sleep(1);
 #endif
diff -ruN trilinos-11.4.3/packages/ml/src/Utils/ml_utils.c trilinos-11.4.3-new/packages/ml/src/Utils/ml_utils.c
--- trilinos-11.4.3/packages/ml/src/Utils/ml_utils.c	2013-11-21 13:12:26.000000000 -0700
+++ trilinos-11.4.3-new/packages/ml/src/Utils/ml_utils.c	2014-09-09 14:48:49.000000000 -0600
@@ -1956,14 +1956,18 @@
       if (i == mypid) {
 #if defined(TFLOP) || defined(JANUS_STLPORT) || defined(COUGAR)
         sprintf(buf, "Host: %s   PID: %d", "janus", getpid());
+#elif defined(__MINGW32__)
+        sprintf(buf, "Host: %s   PID: %d", "mingw", getpid());
 #else
         gethostname(hostname, sizeof(hostname));
         sprintf(buf, "Host: %s   PID: %d (mpi task %d)", hostname, getpid(),mypid);
 #endif
         printf("%s\n",buf);
         fflush(stdout);
-#ifdef ICL
+#if defined(ICL)
         Sleep(1);
+#elif defined(__MINGW32__)
+        Sleep(1000.);  // Windows sleep is in milliseconds
 #else
         sleep(1);
 #endif
diff -ruN trilinos-11.4.3/packages/seacas/libraries/exodus/cbind/include/exodusII.h trilinos-11.4.3-new/packages/seacas/libraries/exodus/cbind/include/exodusII.h
--- trilinos-11.4.3/packages/seacas/libraries/exodus/cbind/include/exodusII.h	2013-11-21 13:12:15.000000000 -0700
+++ trilinos-11.4.3-new/packages/seacas/libraries/exodus/cbind/include/exodusII.h	2014-09-09 14:48:49.000000000 -0600
@@ -51,7 +51,12 @@
 
 #include <stddef.h>

 #include <netcdf.h>
 
diff -ruN trilinos-11.4.3/packages/seacas/libraries/exodus/cbind/src/ex_ne_util.c trilinos-11.4.3-new/packages/seacas/libraries/exodus/cbind/src/ex_ne_util.c
--- trilinos-11.4.3/packages/seacas/libraries/exodus/cbind/src/ex_ne_util.c	2013-11-21 15:12:13.000000000 -0500
+++ trilinos-11.4.3-new/packages/seacas/libraries/exodus/cbind/src/ex_ne_util.c	2014-12-08 11:25:50.311224014 -0500
@@ -55,7 +55,7 @@
 
 #include <stdio.h>
