{"thread":{"id":"31338","subject":"[PATCH v2] Support non-WIN32 system lacking poll() while keeping the WIN32 part intact","startedAt":"2012-08-24T09:45:24Z","lastAt":"2012-08-24T09:45:24Z","messageCount":1,"participants":["Joachim Schmitz"],"isPatch":true,"patchVersion":2,"patchTotal":null},"messages":[{"id":"197759","messageId":"002e01cd81dd$2ffbd080$8ff37180$@schmitz-digital.de","threadId":"31338","inReplyTo":null,"subject":"[PATCH v2] Support non-WIN32 system lacking poll() while keeping the WIN32 part intact","fromName":"Joachim Schmitz","fromEmail":"jojo@schmitz-digital.de","sentAt":"2012-08-24T09:45:24Z","receivedAt":"2012-08-24T09:45:24Z","isPatch":true,"sender":{"key":"jojo@schmitz-digital.de","avatar":"https://avatars.githubusercontent.com/u/1786669?v=4"},"body":"\nSigned-off-by: Joachim Schmitz <jojo@schmitz-digital.de>\n---\nThis time I hopefully didn't screw up whitespace and line breaks.\n\n Makefile            | 18 ++++++++++++++----\n compat/win32/poll.c |  8 ++++++--\n 2 files changed, 20 insertions(+), 6 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex 66e8216..e150816 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -152,6 +152,11 @@ all::\n #\n # Define NO_MMAP if you want to avoid mmap.\n #\n+# Define NO_SYS_POLL_H if you don't have sys/poll.h.\n+#\n+# Define NO_POLL if you do not have or do not want to use poll.\n+# This also implies NO_SYS_POLL_H.\n+#\n # Define NO_PTHREADS if you do not have or do not want to use Pthreads.\n #\n # Define NO_PREAD if you have a problem with pread() system call (e.g.\n@@ -1216,7 +1221,7 @@ ifeq ($(uname_S),Windows)\n \tNO_PREAD = YesPlease\n \tNEEDS_CRYPTO_WITH_SSL = YesPlease\n \tNO_LIBGEN_H = YesPlease\n-\tNO_SYS_POLL_H = YesPlease\n+\tNO_POLL = YesPlease\n \tNO_SYMLINK_HEAD = YesPlease\n \tNO_IPV6 = YesPlease\n \tNO_UNIX_SOCKETS = YesPlease\n@@ -1257,7 +1262,7 @@ ifeq ($(uname_S),Windows)\n \tBASIC_CFLAGS = -nologo -I. -I../zlib -Icompat/vcbuild -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H\n-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE\n \tCOMPAT_OBJS = compat/msvc.o compat/winansi.o \\\n \t\tcompat/win32/pthread.o compat/win32/syslog.o \\\n-\t\tcompat/win32/poll.o compat/win32/dirent.o\n+\t\tcompat/win32/dirent.o\n \tCOMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32\n-DSTRIP_EXTENSION=\\\".exe\\\"\n \tBASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib\n \tEXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib\n@@ -1312,7 +1317,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))\n \tNO_PREAD = YesPlease\n \tNEEDS_CRYPTO_WITH_SSL = YesPlease\n \tNO_LIBGEN_H = YesPlease\n-\tNO_SYS_POLL_H = YesPlease\n+\tNO_POLL = YesPlease\n \tNO_SYMLINK_HEAD = YesPlease\n \tNO_UNIX_SOCKETS = YesPlease\n \tNO_SETENV = YesPlease\n@@ -1347,7 +1352,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))\n \tCOMPAT_CFLAGS += -DSTRIP_EXTENSION=\\\".exe\\\"\n \tCOMPAT_OBJS += compat/mingw.o compat/winansi.o \\\n \t\tcompat/win32/pthread.o compat/win32/syslog.o \\\n-\t\tcompat/win32/poll.o compat/win32/dirent.o\n+\t\tcompat/win32/dirent.o\n \tEXTLIBS += -lws2_32\n \tPTHREAD_LIBS =\n \tX = .exe\n@@ -1601,6 +1606,11 @@ ifdef NO_GETTEXT\n \tBASIC_CFLAGS += -DNO_GETTEXT\n \tUSE_GETTEXT_SCHEME ?= fallthrough\n endif\n+ifdef NO_POLL\n+\tNO_SYS_POLL_H = YesPlease\n+\tCOMPAT_CFLAGS += -DNO_POLL -Icompat/win32 # so it finds poll.h\n+\tCOMPAT_OBJS += compat/win32/poll.o\n+endif\n ifdef NO_STRCASESTR\n \tCOMPAT_CFLAGS += -DNO_STRCASESTR\n \tCOMPAT_OBJS += compat/strcasestr.o\ndiff --git a/compat/win32/poll.c b/compat/win32/poll.c\nindex 403eaa7..49541f1 100644\n--- a/compat/win32/poll.c\n+++ b/compat/win32/poll.c\n@@ -24,7 +24,9 @@\n # pragma GCC diagnostic ignored \"-Wtype-limits\"\n #endif\n \n-#include <malloc.h>\n+#if defined(WIN32)\n+# include <malloc.h>\n+#endif\n \n #include <sys/types.h>\n \n@@ -48,7 +50,9 @@\n #else\n # include <sys/time.h>\n # include <sys/socket.h>\n-# include <sys/select.h>\n+# ifndef NO_SYS_SELECT_H\n+#  include <sys/select.h>\n+# endif\n # include <unistd.h>\n #endif\n \n-- \n1.7.12\n"}]}