Add a C wrapper for gettimeofday
authorIan Lynagh <igloo@earth.li>
Fri, 25 Nov 2011 17:31:45 +0000 (17:31 +0000)
committerIan Lynagh <igloo@earth.li>
Fri, 25 Nov 2011 17:59:26 +0000 (17:59 +0000)
Based on part of a patch from Arnaud Degroote in #5480.
On NetBSD just calling the function directly warns:
    warning: reference to compatibility gettimeofday(); include <sys/time.h>
    to generate correct reference

GHC/Event/Clock.hsc
include/HsBase.h

index ac44805..0cf6272 100644 (file)
@@ -45,6 +45,6 @@ instance Storable CTimeval where
         #{poke struct timeval, tv_sec} ptr (sec tv)
         #{poke struct timeval, tv_usec} ptr (usec tv)
 
-foreign import ccall unsafe "sys/time.h gettimeofday" gettimeofday
+foreign import ccall unsafe "__hsbase_gettimeofday" gettimeofday
     :: Ptr CTimeval -> Ptr () -> IO CInt
 
index a9c19e4..109eb58 100644 (file)
@@ -633,6 +633,10 @@ INLINE int __hscore_select(int nfds, fd_set *readfds, fd_set *writefds,
 
 #if !defined(__MINGW32__)
 
+INLINE int __hsbase_gettimeofday(struct timeval *tv, struct timezone *tz) {
+        return gettimeofday(tv, tz);
+}
+
 INLINE HsInt sizeofTimeVal(void) { return sizeof(struct timeval); }
 
 INLINE HsWord64 getUSecOfDay(void)