From 5e86700a0ae74b75cf49319cb201004a70e30f0b Mon Sep 17 00:00:00 2001 From: Keith Winstein Date: Wed, 23 May 2012 03:19:36 -0400 Subject: [PATCH] Fix OS X 10.5 problem where FD_ISSET() argument isn't const --- configure.ac | 14 ++++++++++++++ src/util/select.h | 10 ++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index a177aad..8d0e0ed 100644 --- a/configure.ac +++ b/configure.ac @@ -218,6 +218,20 @@ int pipefd[2]; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) +AC_MSG_CHECKING([whether FD_ISSET() argument is const]) +AC_LANG_PUSH(C++) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include +class T { +public: + fd_set fds; + bool Fun( void ) const { return FD_ISSET( 0, &fds ); } };]], +[[T x; return x.Fun();]])], + [AC_DEFINE([FD_ISSET_IS_CONST], [1], + [Define if FD_ISSET() fd_set argument is const.]) + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) +AC_LANG_POP(C++) + AC_CHECK_DECLS([__builtin_bswap64, __builtin_ctz]) AC_CHECK_DECL([mach_absolute_time], diff --git a/src/util/select.h b/src/util/select.h index 0b7b0a2..a5b710c 100644 --- a/src/util/select.h +++ b/src/util/select.h @@ -127,12 +127,18 @@ public: return ret; } - bool read( int fd ) const + bool read( int fd ) +#if FD_ISSET_IS_CONST + const +#endif { return FD_ISSET( fd, &read_fds ); } - bool error( int fd ) const + bool error( int fd ) +#if FD_ISSET_IS_CONST + const +#endif { return FD_ISSET( fd, &error_fds ); }