summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ev.pod12
-rw-r--r--ev_win32.c3
2 files changed, 12 insertions, 3 deletions
diff --git a/ev.pod b/ev.pod
index 97eaf44..85f73a5 100644
--- a/ev.pod
+++ b/ev.pod
@@ -1664,13 +1664,19 @@ will be no polling.
=head3 ABI Issues (Largefile Support)
Libev by default (unless the user overrides this) uses the default
-compilation environment, which means that on systems with optionally
-disabled large file support, you get the 32 bit version of the stat
+compilation environment, which means that on systems with large file
+support disabled by default, you get the 32 bit version of the stat
structure. When using the library from programs that change the ABI to
use 64 bit file offsets the programs will fail. In that case you have to
compile libev with the same flags to get binary compatibility. This is
obviously the case with any flags that change the ABI, but the problem is
-most noticeably with ev_stat and large file support.
+most noticeably disabled with ev_stat and large file support.
+
+The solution for this is to lobby your distribution maker to make large
+file interfaces available by default (as e.g. FreeBSD does) and not
+optional. Libev cannot simply switch on large file support because it has
+to exchange stat structures with application programs compiled using the
+default compilation environment.
=head3 Inotify
diff --git a/ev_win32.c b/ev_win32.c
index d78568d..2e0b300 100644
--- a/ev_win32.c
+++ b/ev_win32.c
@@ -39,10 +39,13 @@
#ifdef _WIN32
+/* timeb.h is actually xsi legacy functionality */
#include <sys/timeb.h>
/* note: the comment below could not be substantiated, but what would I care */
/* MSDN says this is required to handle SIGFPE */
+/* my wild guess would be that using something floating-pointy is required */
+/* for the crt to do something about it */
volatile double SIGFPE_REQ = 0.0f;
/* oh, the humanity! */