< Previous by Date Date Index Next by Date >
  Thread Index Next in Thread >

[reSIProcate] Re: [Resiprocate-devel] gcc-3.4 support (fwd)


Forwarding to proper mailing list.
Sorry.

---------- Forwarded message ----------
Date: Wed, 21 Jul 2004 15:34:46 +0400 (MSD)
From: Dmitry Semyonov <dsemyonov@xxxxxxx>
To: Alan Hawrylyshen <alan@xxxxxxxxxx>
Cc: resiprocate-devel@xxxxxxxxxxxxxxxxxxxxx,
     Jason Fischl <jason@xxxxxxxxxxxxxx>
Subject: Re: [Resiprocate-devel] gcc-3.4 support

Hello.

On Thu, 20 May 2004, Alan Hawrylyshen wrote:

> On 20 May 2004, at 11:25, Dmitry Semyonov wrote:
> 
> > On Thu, 20 May 2004, Jason Fischl wrote:
> >
> >>> "./configure; make" works fine with gcc-3.2.2, but is broken with
> >>> gcc-3.4.0. Is it planned to fix gcc-3.4 build of reSIProcate?
> >>
> >> I don't have access to a gcc-3.4. Can you post some information about 
> >> where the problems seem to be.
> 
> The problems are related the the requirement in C++ to use typename and 
> template keywords to illuminate the name context to the compiler. In 
> GCC 3.4, these are enforced whereas in 3.3 GCC builds, if there was 
> implied context, the compiler wouldn't complain. I think it's a pain 
> that they didn't make it complain for 3.4 and deprecate it in 3.5, BUT, 
> we will install a 3.4 compiler here and test things.

Please, apply the patch included below to fix the above issue.

Unfortunately, there are some other errors which prevent compilation
with gcc-3.4.1. I'm currently looking into them.


Index: resiprocate/sip/resiprocate/Uri.hxx
===================================================================
--- resiprocate/sip/resiprocate/Uri.hxx (revision 3135)
+++ resiprocate/sip/resiprocate/Uri.hxx (working copy)
@@ -99,10 +99,13 @@
 #elif defined(HASH_MAP_NAMESPACE)  //#elif ( (__GNUC__ == 3) && 
(__GNUC_MINOR__ >= 1) )
 namespace HASH_MAP_NAMESPACE
 {
+
+template <>
 struct hash<resip::Uri>
 {
       size_t operator()(const resip::Uri& v) const;
 };
+
 }
 #endif
 
Index: resiprocate/sip/resiprocate/dum/DialogId.hxx
===================================================================
--- resiprocate/sip/resiprocate/dum/DialogId.hxx        (revision 3135)
+++ resiprocate/sip/resiprocate/dum/DialogId.hxx        (working copy)
@@ -41,10 +41,13 @@
 #if defined(HASH_MAP_NAMESPACE)
 namespace HASH_MAP_NAMESPACE
 {
+
+template <>
 struct hash<resip::DialogId>
 {
       size_t operator()(const resip::DialogId& id) const;
 };
+
 }
 #elif defined(__INTEL_COMPILER)
 namespace std { size_t hash_value(const resip::DialogId& id); }
Index: resiprocate/sip/resiprocate/dum/DialogSetId.hxx
===================================================================
--- resiprocate/sip/resiprocate/dum/DialogSetId.hxx     (revision 3135)
+++ resiprocate/sip/resiprocate/dum/DialogSetId.hxx     (working copy)
@@ -49,10 +49,13 @@
 #elif defined(HASH_MAP_NAMESPACE)  //#elif ( (__GNUC__ == 3) && 
(__GNUC_MINOR__ >= 1) )
 namespace HASH_MAP_NAMESPACE
 {
+
+template <>
 struct hash<resip::DialogSetId>
 {
       size_t operator()(const resip::DialogSetId& id) const;
 };
+
 }
 #endif
 
Index: resiprocate/sip/resiprocate/dum/UInt64Hash.hxx
===================================================================
--- resiprocate/sip/resiprocate/dum/UInt64Hash.hxx      (revision 3135)
+++ resiprocate/sip/resiprocate/dum/UInt64Hash.hxx      (working copy)
@@ -13,10 +13,13 @@
 #elif defined(HASH_MAP_NAMESPACE)  //#elif ( (__GNUC__ == 3) && 
(__GNUC_MINOR__ >= 1) )
 namespace HASH_MAP_NAMESPACE
 {
+
+template<>
 struct hash<UInt64>
 {
       size_t operator()(const UInt64& v) const;
 };
+
 }
 #endif
 
Index: resiprocate/sip/resiprocate/os/Data.hxx
===================================================================
--- resiprocate/sip/resiprocate/os/Data.hxx     (revision 3135)
+++ resiprocate/sip/resiprocate/os/Data.hxx     (working copy)
@@ -230,6 +230,8 @@
 #elif defined(HASH_MAP_NAMESPACE)  //#elif ( (__GNUC__ == 3) && 
(__GNUC_MINOR__ >= 1) )
 namespace HASH_MAP_NAMESPACE
 {
+
+template <>
 struct hash<resip::Data>
 {
       size_t operator()(const resip::Data& data) const;
Index: resiprocate/sip/resiprocate/os/HashMap.hxx
===================================================================
--- resiprocate/sip/resiprocate/os/HashMap.hxx  (revision 3135)
+++ resiprocate/sip/resiprocate/os/HashMap.hxx  (working copy)
@@ -21,7 +21,7 @@
          return size_t(t);
       }
 };
- 
+
 }
 
 #  elif  defined(__INTEL_COMPILER )
Index: resiprocate/sip/resiprocate/os/Tuple.hxx
===================================================================
--- resiprocate/sip/resiprocate/os/Tuple.hxx    (revision 3135)
+++ resiprocate/sip/resiprocate/os/Tuple.hxx    (working copy)
@@ -111,11 +111,12 @@
 namespace __gnu_cxx
 {
 
+template <>
 struct hash<resip::Tuple>
 {
       size_t operator()(const resip::Tuple& addrPort) const;
 };
- 
+
 }
 
 #endif // hash stuff