summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--configure.in7
-rw-r--r--ext/date/date_strftime.c4
-rw-r--r--file.c4
-rw-r--r--include/ruby/missing.h9
-rw-r--r--random.c3
-rw-r--r--thread_pthread.c3
-rw-r--r--time.c4
8 files changed, 43 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index aed51302d91..24d607fad9c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+Wed Mar 13 13:54:45 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * configure.in: check struct timeval exist or not.
+ * include/ruby/missing.h (struct timeval): check HAVE_STRUCT_TIMEVAL
+ properly. and don't include sys/time.h if struct timeval exist.
+
+ * file.c: include sys/time.h explicitly.
+ * random.c: ditto.
+ * thread_pthread.c: ditto.
+ * time.c: ditto.
+ * ext/date/date_strftime.c: ditto.
+
Fri Mar 15 14:45:02 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* configure.in (_FORTIFY_SOURCE): added a few comments.
diff --git a/configure.in b/configure.in
index 89422b4f721..6b0b3431e0b 100644
--- a/configure.in
+++ b/configure.in
@@ -1443,6 +1443,13 @@ AC_CHECK_MEMBERS([struct stat.st_ctim])
AC_CHECK_MEMBERS([struct stat.st_ctimespec])
AC_CHECK_MEMBERS([struct stat.st_ctimensec])
+AC_CHECK_TYPES([struct timeval], [], [], [@%:@ifdef HAVE_TIME_H
+@%:@include <time.h>
+@%:@endif
+@%:@ifdef HAVE_SYS_TIME_H
+@%:@include <sys/time.h>
+@%:@endif])
+
AC_CHECK_TYPES([struct timespec], [], [], [@%:@ifdef HAVE_TIME_H
@%:@include <time.h>
@%:@endif
diff --git a/ext/date/date_strftime.c b/ext/date/date_strftime.c
index 54324dad097..20931a31244 100644
--- a/ext/date/date_strftime.c
+++ b/ext/date/date_strftime.c
@@ -12,6 +12,10 @@
#include <ctype.h>
#include <errno.h>
+#if defined(HAVE_SYS_TIME_H)
+#include <sys/time.h>
+#endif
+
#undef strchr /* avoid AIX weirdness */
#define range(low, item, hi) (item)
diff --git a/file.c b/file.c
index fa96c2388d0..2c35e346bc7 100644
--- a/file.c
+++ b/file.c
@@ -75,6 +75,10 @@ int flock(int, int);
#include <fcntl.h>
#endif
+#if defined(HAVE_SYS_TIME_H)
+#include <sys/time.h>
+#endif
+
#if !defined HAVE_LSTAT && !defined lstat
#define lstat stat
#endif
diff --git a/include/ruby/missing.h b/include/ruby/missing.h
index 1297c43a7a6..4a19cc78472 100644
--- a/include/ruby/missing.h
+++ b/include/ruby/missing.h
@@ -25,15 +25,18 @@ extern "C" {
#include RUBY_EXTCONF_H
#endif
-#if defined(HAVE_SYS_TIME_H)
+#if !defined(HAVE_STRUCT_TIMEVAL)
+# if defined(HAVE_SYS_TIME_H)
# include <sys/time.h>
-#elif !defined(_WIN32)
+# elif !defined(_WIN32)
# define time_t long
struct timeval {
time_t tv_sec; /* seconds */
long tv_usec; /* microseconds */
};
-#endif
+# endif
+#endif /* HAVE_STRUCT_TIMEVAL */
+
#if defined(HAVE_SYS_TYPES_H)
# include <sys/types.h>
#endif
diff --git a/random.c b/random.c
index 2ef8959c260..da83c2c8675 100644
--- a/random.c
+++ b/random.c
@@ -73,6 +73,9 @@ The original copyright notice follows.
#endif
#include <math.h>
#include <errno.h>
+#if defined(HAVE_SYS_TIME_H)
+#include <sys/time.h>
+#endif
#ifdef _WIN32
# if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0400
diff --git a/thread_pthread.c b/thread_pthread.c
index bed9452a28b..201cb7423ea 100644
--- a/thread_pthread.c
+++ b/thread_pthread.c
@@ -33,6 +33,9 @@
#if HAVE_POLL
#include <poll.h>
#endif
+#if defined(HAVE_SYS_TIME_H)
+#include <sys/time.h>
+#endif
static void native_mutex_lock(pthread_mutex_t *lock);
static void native_mutex_unlock(pthread_mutex_t *lock);
diff --git a/time.c b/time.c
index 2b4ded43979..7a877186e25 100644
--- a/time.c
+++ b/time.c
@@ -27,6 +27,10 @@
#include <strings.h>
#endif
+#if defined(HAVE_SYS_TIME_H)
+#include <sys/time.h>
+#endif
+
#include "timev.h"
static ID id_divmod, id_mul, id_submicro, id_nano_num, id_nano_den, id_offset, id_zone;