Index: trunk/SophyaLib/BaseTools/datatype.cc
===================================================================
--- trunk/SophyaLib/BaseTools/datatype.cc	(revision 2327)
+++ trunk/SophyaLib/BaseTools/datatype.cc	(revision 2339)
@@ -12,41 +12,49 @@
 {
 }
+/*
 #if defined(__SGICC__)
-template <class uint_1>
+template <class T>
+string DataTypeInfo<T>::getTypeName() 
+{ 
+  if (typeid(T) == typeid(uint_1)) return("uint_1"); 
+  else if (typeid(T) == typeid(uint_2)) return("uint_2");
+  else if (typeid(T) == typeid(int_2)) return("int_2");
+  else if (typeid(T) == typeid(int_4)) return("int_4");
+  else if (typeid(T) == typeid(int_8)) return("int_8");
+  else if (typeid(T) == typeid(uint_4)) return("uint_4");
+  else if (typeid(T) == typeid(uint_8)) return("uint_8");
+  else if (typeid(T) == typeid(r_4)) return("r_4");
+  else if (typeid(T) == typeid(r_8)) return("r_8");
+  else if (typeid(T) == typeid(complex<r_4>)) return(" complex<r_4> ");
+  else if (typeid(T) == typeid(complex<r_8>)) return(" complex<r_8> ");
+  else return("???unknowntype???");
+}
+#else
+*/
+DECL_TEMP_SPEC  /* equivalent a template <> , pour SGI-CC en particulier */
 string DataTypeInfo<uint_1>::getTypeName() { return("uint_1"); }
-template <class uint_2>
+DECL_TEMP_SPEC
 string DataTypeInfo<uint_2>::getTypeName() { return("uint_2"); }
-template <class int_2>
+DECL_TEMP_SPEC
 string DataTypeInfo<int_2>::getTypeName() { return("int_2"); }
-template <class int_4>
+DECL_TEMP_SPEC
 string DataTypeInfo<int_4>::getTypeName() { return("int_4"); }
-template <class int_8>
+DECL_TEMP_SPEC
 string DataTypeInfo<int_8>::getTypeName() { return("int_8"); }
-template <class uint_4>
+DECL_TEMP_SPEC
 string DataTypeInfo<uint_4>::getTypeName() { return("uint_4"); }
-template <class uint_8>
+DECL_TEMP_SPEC
 string DataTypeInfo<uint_8>::getTypeName() { return("uint_8"); }
-template <class r_4>
+DECL_TEMP_SPEC
 string DataTypeInfo<r_4>::getTypeName() { return("r_4"); }
-template <class r_8>
+DECL_TEMP_SPEC
 string DataTypeInfo<r_8>::getTypeName() { return("r_8"); }
-template <class complex<r_4> >
+DECL_TEMP_SPEC
 string DataTypeInfo< complex<r_4> >::getTypeName() { return(" complex<r_4> "); }
-template <class complex<r_8> >
+DECL_TEMP_SPEC
 string DataTypeInfo< complex<r_8> >::getTypeName() { return(" complex<r_8> "); }
-#else
-string DataTypeInfo<uint_1>::getTypeName() { return("uint_1"); }
-string DataTypeInfo<uint_2>::getTypeName() { return("uint_2"); }
-string DataTypeInfo<int_2>::getTypeName() { return("int_2"); }
-string DataTypeInfo<int_4>::getTypeName() { return("int_4"); }
-string DataTypeInfo<int_8>::getTypeName() { return("int_8"); }
-string DataTypeInfo<uint_4>::getTypeName() { return("uint_4"); }
-string DataTypeInfo<uint_8>::getTypeName() { return("uint_8"); }
-string DataTypeInfo<r_4>::getTypeName() { return("r_4"); }
-string DataTypeInfo<r_8>::getTypeName() { return("r_8"); }
-string DataTypeInfo< complex<r_4> >::getTypeName() { return(" complex<r_4> "); }
-string DataTypeInfo< complex<r_8> >::getTypeName() { return(" complex<r_8> "); }
+/*
 #endif
-
+*/
 
 string DecodeGCCTypeName(string gcctype)
Index: trunk/SophyaLib/BaseTools/dvlist.cc
===================================================================
--- trunk/SophyaLib/BaseTools/dvlist.cc	(revision 2327)
+++ trunk/SophyaLib/BaseTools/dvlist.cc	(revision 2339)
@@ -475,7 +475,5 @@
 
 /* --Methode-- */
-#if defined(__SGICC__)
-template <class DVList>
-#endif
+DECL_TEMP_SPEC  /* equivalent a template <> , pour SGI-CC en particulier */
 void        ObjFileIO<DVList>::WriteSelf(POutPersist& s) const
 {
@@ -529,7 +527,5 @@
 
 /* --Methode-- */
-#if defined(__SGICC__)
-template <class DVList>
-#endif
+DECL_TEMP_SPEC  /* equivalent a template <> , pour SGI-CC en particulier */
 void        ObjFileIO<DVList>::ReadSelf(PInPersist& s)
 {
Index: trunk/SophyaLib/BaseTools/machdefs_mkmf.h
===================================================================
--- trunk/SophyaLib/BaseTools/machdefs_mkmf.h	(revision 2327)
+++ trunk/SophyaLib/BaseTools/machdefs_mkmf.h	(revision 2339)
@@ -244,4 +244,5 @@
 /*   HAS_STR_NPOS          : has string::npos and not a global NPOS        */
 /*   NO_IOS_COMPLEX        : does not have operator << defined for complex */
+/*   DECL_TEMP_SPEC        : Template specialization declaration           */
 
 
@@ -262,4 +263,10 @@
 #define  CC_HAS_RTTI_SUPPORT 
 #endif
+
+
+#ifndef DECL_TEMP_SPEC
+#define DECL_TEMP_SPEC
+#endif
+
 
 /* now the specific things */
@@ -314,4 +321,6 @@
 #ifndef ANSI_TEMPLATES
 #define ANSI_TEMPLATES
+#undef  DECL_TEMP_SPEC
+#define DECL_TEMP_SPEC template <>
 #endif
 #endif
Index: trunk/SophyaLib/BaseTools/pexceptions.cc
===================================================================
--- trunk/SophyaLib/BaseTools/pexceptions.cc	(revision 2327)
+++ trunk/SophyaLib/BaseTools/pexceptions.cc	(revision 2339)
@@ -6,5 +6,6 @@
 
 // egcs ne semble pas connaitre set_new_handler (Reza 26/04/99)
-#ifdef __GNUG__
+// ca ne passe plus avec SGI-CC -LANG:std $CHECK$ Reza 14/02/2003
+#if defined( __GNUG__ ) || defined(__SGICC__)
 void PFailHandler(void) {}
 void InitFailNewHandler() {}
