threads / patch / 31572

v7, 4 partsmake poll available for other platforms lacking it

Subject: [PATCH v7 1/4] make poll available for other platforms lacking it

## tl;dr

5 messages between Sep 17, 2012 and Sep 18, 2012. Diffs are folded; open one to read it.

replies: 4people: 2as markdown or json

Joachim Schmitz· Sep 17, 2012, 21:16 UTC · lore

move poll.[ch] out of compat/win32/ into compat/poll/ and adjust Makefile with the changed paths. Adding comments to Makefile about how/when to enable it and add logic for this

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
---
 Makefile                      | 20 +++++++++++++++-----
 compat/{win32 => poll}/poll.c |  0
 compat/{win32 => poll}/poll.h |  0
 3 files changed, 15 insertions(+), 5 deletions(-)
 rename compat/{win32 => poll}/poll.c (100%)
 rename compat/{win32 => poll}/poll.h (100%)
Show changes to 3 files +15 −7

Makefile, compat/win32/poll.c, compat/win32/poll.h

diff --git a/Makefile b/Makefile
index ac49320..7893297 100644
--- a/Makefile
+++ b/Makefile
@@ -152,6 +152,11 @@ all::
 #
 # Define NO_MMAP if you want to avoid mmap.
 #
+# Define NO_SYS_POLL_H if you don't have sys/poll.h.
+#
+# Define NO_POLL if you do not have or don't want to use poll().
+# This also implies NO_SYS_POLL_H.
+#
 # Define NO_PTHREADS if you do not have or do not want to use Pthreads.
 #
 # Define NO_PREAD if you have a problem with pread() system call (e.g.
@@ -598,10 +603,10 @@ LIB_H += compat/bswap.h
 LIB_H += compat/cygwin.h
 LIB_H += compat/mingw.h
 LIB_H += compat/obstack.h
+LIB_H += compat/poll/poll.h
 LIB_H += compat/precompose_utf8.h
 LIB_H += compat/terminal.h
 LIB_H += compat/win32/dirent.h
-LIB_H += compat/win32/poll.h
 LIB_H += compat/win32/pthread.h
 LIB_H += compat/win32/syslog.h
 LIB_H += connected.h
@@ -1220,7 +1225,7 @@ ifeq ($(uname_S),Windows)
 	NO_PREAD = YesPlease
 	NEEDS_CRYPTO_WITH_SSL = YesPlease
 	NO_LIBGEN_H = YesPlease
-	NO_SYS_POLL_H = YesPlease
+	NO_POLL_H = YesPlease
 	NO_SYMLINK_HEAD = YesPlease
 	NO_IPV6 = YesPlease
 	NO_UNIX_SOCKETS = YesPlease
@@ -1261,7 +1266,7 @@ ifeq ($(uname_S),Windows)
 	BASIC_CFLAGS = -nologo -I. -I../zlib -Icompat/vcbuild -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H
-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE
 	COMPAT_OBJS = compat/msvc.o compat/winansi.o \
 		compat/win32/pthread.o compat/win32/syslog.o \
-		compat/win32/poll.o compat/win32/dirent.o
+		compat/win32/dirent.o
 	COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32
-DSTRIP_EXTENSION=\".exe\"
 	BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib
 	EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib
@@ -1316,7 +1321,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))
 	NO_PREAD = YesPlease
 	NEEDS_CRYPTO_WITH_SSL = YesPlease
 	NO_LIBGEN_H = YesPlease
-	NO_SYS_POLL_H = YesPlease
+	NO_POLL_H = YesPlease
 	NO_SYMLINK_HEAD = YesPlease
 	NO_UNIX_SOCKETS = YesPlease
 	NO_SETENV = YesPlease
@@ -1351,7 +1356,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))
 	COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
 	COMPAT_OBJS += compat/mingw.o compat/winansi.o \
 		compat/win32/pthread.o compat/win32/syslog.o \
-		compat/win32/poll.o compat/win32/dirent.o
+		compat/win32/dirent.o
 	EXTLIBS += -lws2_32
 	PTHREAD_LIBS =
 	X = .exe
@@ -1605,6 +1610,11 @@ ifdef NO_GETTEXT
 	BASIC_CFLAGS += -DNO_GETTEXT
 	USE_GETTEXT_SCHEME ?= fallthrough
 endif
+ifdef NO_POLL
+	NO_SYS_POLL_H = YesPlease
+	COMPAT_CFLAGS += -DNO_POLL -Icompat/poll
+	COMPAT_OBJS += compat/poll/poll.o
+endif
 ifdef NO_STRCASESTR
 	COMPAT_CFLAGS += -DNO_STRCASESTR
 	COMPAT_OBJS += compat/strcasestr.o
diff --git a/compat/win32/poll.c b/compat/poll/poll.c
similarity index 100%
rename from compat/win32/poll.c
rename to compat/poll/poll.c
diff --git a/compat/win32/poll.h b/compat/poll/poll.h
similarity index 100%
rename from compat/win32/poll.h
rename to compat/poll/poll.h
-- 
1.7.12
Junio C Hamano· Sep 17, 2012, 22:41 UTC · re: Joachim Schmitz · lore

Re: [PATCH v7 1/4] make poll available for other platforms lacking it

"Joachim Schmitz" <jojo@schmitz-digital.de> writes:
Show 25 quoted lines
> move poll.[ch] out of compat/win32/ into compat/poll/ and adjust
> Makefile with the changed paths. Adding comments to Makefile about
> how/when to enable it and add logic for this
>
> Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
> ---
>  Makefile                      | 20 +++++++++++++++-----
>  compat/{win32 => poll}/poll.c |  0
>  compat/{win32 => poll}/poll.h |  0
>  3 files changed, 15 insertions(+), 5 deletions(-)
>  rename compat/{win32 => poll}/poll.c (100%)
>  rename compat/{win32 => poll}/poll.h (100%)
>
> diff --git a/Makefile b/Makefile
> index ac49320..7893297 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -152,6 +152,11 @@ all::
>  #
>  # Define NO_MMAP if you want to avoid mmap.
>  #
> +# Define NO_SYS_POLL_H if you don't have sys/poll.h.
> +#
> +# Define NO_POLL if you do not have or don't want to use poll().
> +# This also implies NO_SYS_POLL_H.
Sensible.
Show 6 quoted lines
> @@ -1220,7 +1225,7 @@ ifeq ($(uname_S),Windows)
>  	NO_PREAD = YesPlease
>  	NEEDS_CRYPTO_WITH_SSL = YesPlease
>  	NO_LIBGEN_H = YesPlease
> -	NO_SYS_POLL_H = YesPlease
> +	NO_POLL_H = YesPlease
Should this be NO_POLL, not NO_POLL_H?
Show 9 quoted lines
> -DSTRIP_EXTENSION=\".exe\"
>  	BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib
>  	EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib
> @@ -1316,7 +1321,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))
>  	NO_PREAD = YesPlease
>  	NEEDS_CRYPTO_WITH_SSL = YesPlease
>  	NO_LIBGEN_H = YesPlease
> -	NO_SYS_POLL_H = YesPlease
> +	NO_POLL_H = YesPlease
Likewise.
Show 9 quoted lines
> @@ -1605,6 +1610,11 @@ ifdef NO_GETTEXT
>  	BASIC_CFLAGS += -DNO_GETTEXT
>  	USE_GETTEXT_SCHEME ?= fallthrough
>  endif
> +ifdef NO_POLL
> +	NO_SYS_POLL_H = YesPlease
> +	COMPAT_CFLAGS += -DNO_POLL -Icompat/poll
> +	COMPAT_OBJS += compat/poll/poll.o
> +endif

I think my guesses above are correct, so will queue with the trivial and obvious fixup.

Thanks.
Joachim Schmitz· Sep 18, 2012, 06:28 UTC · re: Junio C Hamano · lore

RE: [PATCH v7 1/4] make poll available for other platforms lacking it

Show 69 quoted lines
> From: Junio C Hamano [mailto:gitster@pobox.com]
> Sent: Tuesday, September 18, 2012 12:42 AM
> To: Joachim Schmitz
> Cc: git@vger.kernel.org
> Subject: Re: [PATCH v7 1/4] make poll available for other platforms lacking it
> 
> "Joachim Schmitz" <jojo@schmitz-digital.de> writes:
> 
> > move poll.[ch] out of compat/win32/ into compat/poll/ and adjust
> > Makefile with the changed paths. Adding comments to Makefile about
> > how/when to enable it and add logic for this
> >
> > Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
> > ---
> >  Makefile                      | 20 +++++++++++++++-----
> >  compat/{win32 => poll}/poll.c |  0
> >  compat/{win32 => poll}/poll.h |  0
> >  3 files changed, 15 insertions(+), 5 deletions(-)
> >  rename compat/{win32 => poll}/poll.c (100%)
> >  rename compat/{win32 => poll}/poll.h (100%)
> >
> > diff --git a/Makefile b/Makefile
> > index ac49320..7893297 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -152,6 +152,11 @@ all::
> >  #
> >  # Define NO_MMAP if you want to avoid mmap.
> >  #
> > +# Define NO_SYS_POLL_H if you don't have sys/poll.h.
> > +#
> > +# Define NO_POLL if you do not have or don't want to use poll().
> > +# This also implies NO_SYS_POLL_H.
> 
> Sensible.
> 
> > @@ -1220,7 +1225,7 @@ ifeq ($(uname_S),Windows)
> >  	NO_PREAD = YesPlease
> >  	NEEDS_CRYPTO_WITH_SSL = YesPlease
> >  	NO_LIBGEN_H = YesPlease
> > -	NO_SYS_POLL_H = YesPlease
> > +	NO_POLL_H = YesPlease
> 
> Should this be NO_POLL, not NO_POLL_H?
> 
> > -DSTRIP_EXTENSION=\".exe\"
> >  	BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib
> >  	EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib
> > @@ -1316,7 +1321,7 @@ ifneq (,$(findstring MINGW,$(uname_S)))
> >  	NO_PREAD = YesPlease
> >  	NEEDS_CRYPTO_WITH_SSL = YesPlease
> >  	NO_LIBGEN_H = YesPlease
> > -	NO_SYS_POLL_H = YesPlease
> > +	NO_POLL_H = YesPlease
> 
> Likewise.
> 
> > @@ -1605,6 +1610,11 @@ ifdef NO_GETTEXT
> >  	BASIC_CFLAGS += -DNO_GETTEXT
> >  	USE_GETTEXT_SCHEME ?= fallthrough
> >  endif
> > +ifdef NO_POLL
> > +	NO_SYS_POLL_H = YesPlease
> > +	COMPAT_CFLAGS += -DNO_POLL -Icompat/poll
> > +	COMPAT_OBJS += compat/poll/poll.o
> > +endif
> 
> I think my guesses above are correct, so will queue with the trivial
> and obvious fixup.

Well I was unde the impression that is <sys/poll.h> isn't available, there might be a <poll.h> and it that isn't available either we use compat/.../poll.[ch]. But rethinking your changed does makes perfect sense.

OK, so I guess I'm ready for the 'final touch', my NonStop specific changes, will post them shortly...
Bye, Jojo
Junio C Hamano· Sep 18, 2012, 06:54 UTC · re: Joachim Schmitz · lore

Re: [PATCH v7 1/4] make poll available for other platforms lacking it

"Joachim Schmitz" <jojo@schmitz-digital.de> writes:
Show 17 quoted lines
>> > @@ -1605,6 +1610,11 @@ ifdef NO_GETTEXT
>> >  	BASIC_CFLAGS += -DNO_GETTEXT
>> >  	USE_GETTEXT_SCHEME ?= fallthrough
>> >  endif
>> > +ifdef NO_POLL
>> > +	NO_SYS_POLL_H = YesPlease
>> > +	COMPAT_CFLAGS += -DNO_POLL -Icompat/poll
>> > +	COMPAT_OBJS += compat/poll/poll.o
>> > +endif
>> 
>> I think my guesses above are correct, so will queue with the trivial
>> and obvious fixup.
>
> Well I was unde the impression that is <sys/poll.h> isn't
> available, there might be a <poll.h> and it that isn't available
> either we use compat/.../poll.[ch]. But rethinking your changed
> does makes perfect sense.

Heh, my comment was not about names between NO_POLL_H vs NO_POLL. With the way you wrote the code, the symbols defined for Windows and MINGW must match what controls the hunk around ll.1610, so what makes perfect sense to you is indeed your code ;-)

> OK, so I guess I'm ready for the 'final touch', my NonStop
> specific changes, will post them shortly...
Joachim Schmitz· Sep 18, 2012, 07:02 UTC · re: Junio C Hamano · lore

RE: [PATCH v7 1/4] make poll available for other platforms lacking it

Show 30 quoted lines
> From: Junio C Hamano [mailto:gitster@pobox.com]
> Sent: Tuesday, September 18, 2012 8:55 AM
> To: Joachim Schmitz
> Cc: git@vger.kernel.org
> Subject: Re: [PATCH v7 1/4] make poll available for other platforms lacking it
> 
> "Joachim Schmitz" <jojo@schmitz-digital.de> writes:
> 
> >> > @@ -1605,6 +1610,11 @@ ifdef NO_GETTEXT
> >> >  	BASIC_CFLAGS += -DNO_GETTEXT
> >> >  	USE_GETTEXT_SCHEME ?= fallthrough
> >> >  endif
> >> > +ifdef NO_POLL
> >> > +	NO_SYS_POLL_H = YesPlease
> >> > +	COMPAT_CFLAGS += -DNO_POLL -Icompat/poll
> >> > +	COMPAT_OBJS += compat/poll/poll.o
> >> > +endif
> >>
> >> I think my guesses above are correct, so will queue with the trivial
> >> and obvious fixup.
> >
> > Well I was unde the impression that is <sys/poll.h> isn't
> > available, there might be a <poll.h> and it that isn't available
> > either we use compat/.../poll.[ch]. But rethinking your changed
> > does makes perfect sense.
> 
> Heh, my comment was not about names between NO_POLL_H vs NO_POLL.
> With the way you wrote the code, the symbols defined for Windows and
> MINGW must match what controls the hunk around ll.1610, so what
> makes perfect sense to you is indeed your code ;-)

Yeah, I do understand myself pretty good ;-) Now I see my typo...

← back to recent threads