On Mon, Aug 26, 2013 at 10:06:41PM +0200, Daniel Stenberg wrote:
> On Mon, 26 Aug 2013, Jakub Hrozek wrote:
> 
> >>>I have a problem using c-ares in a multilib environment, for
> >>>which I found a patch in Fedora that does not seem to have
> >>>found its way upstream.
> >
> >I actually sent the patch upstream:
> >http://c-ares.haxx.se/mail/c-ares-archive-2010-06/0009.shtml
> >
> >After re-reading the discussion 3 years later, it sounds to me
> >like it simply stalled. So for now I keep carrying it as vendor
> >specific c-ares patch.
> 
> I can't remember why it didn't go in then, quite likely I simply
> dropped the ball.
> 
> Now that patch doesn't apply any longer and when I fix it manually
> it still causes a compiler warning since there's now code using
> CARES_SIZEOF_LONG. I assume you do something else in Fedora/Red hat?

Yes, here is a patch that is used in the Fedora RPMs. For my use it's
good enough as it covers the architectures on single platform I
maintain. Not sure if it's good enough for upstream.
diff -up c-ares-1.10.0/ares_build.h.in.multilib c-ares-1.10.0/ares_build.h.in
--- c-ares-1.10.0/ares_build.h.in.multilib      2013-05-13 11:40:22.697814087 
+0200
+++ c-ares-1.10.0/ares_build.h.in       2013-05-13 11:40:26.236813966 +0200
@@ -96,7 +96,14 @@
 #endif
 
 /* The size of `long', as computed by sizeof. */
-#undef CARES_SIZEOF_LONG
+#include <bits/wordsize.h>
+#if __WORDSIZE == 32
+#define CARES_SIZEOF_LONG 4
+#elif __WORDSIZE == 64
+#define CARES_SIZEOF_LONG 8
+#else
+#error "Unknown word size"
+#endif
 
 /* Integral data type used for ares_socklen_t. */
 #undef CARES_TYPEOF_ARES_SOCKLEN_T
diff -up c-ares-1.10.0/configure.ac.multilib c-ares-1.10.0/configure.ac
--- c-ares-1.10.0/configure.ac.multilib 2013-05-13 11:41:00.480812797 +0200
+++ c-ares-1.10.0/configure.ac  2013-05-13 11:41:17.210812226 +0200
@@ -457,7 +457,6 @@ AC_CHECK_SIZEOF(size_t)
 AC_CHECK_SIZEOF(long)
 AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(short)
-CARES_CONFIGURE_LONG
 AC_CHECK_SIZEOF(time_t)
 
 AC_CHECK_TYPE(long long,

Reply via email to