[reSIProcate] Re: [Resiprocate-devel] gcc-3.4 support (fwd)
- From: Dmitry Semyonov <dsemyonov@xxxxxxx>
- Date: Wed, 21 Jul 2004 16:10:56 +0400 (MSD)
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