threads / rfc / 24735

RFC patchFix build on Windows

Subject: [PATCH il/rfc-remote-fd-ext] Fix build on Windows

## tl;dr

3 messages between Aug 13, 2010 and Aug 14, 2010. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Johannes Sixt· Aug 13, 2010, 22:09 UTC · lore

This adds the necessary #defines so that the programs can be built, but since the poll emulation is not extended to support POLLOUT and POLLNVAL, the resulting programs will most likely not function properly. (The test does not check them, yet.)

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
 compat/mingw.h |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
Show changes to compat/mingw.h +5 −0
diff --git a/compat/mingw.h b/compat/mingw.h
index 3b2477b..f27a7b6 100644
--- a/compat/mingw.h
+++ b/compat/mingw.h
@@ -23,6 +23,9 @@ typedef int pid_t;
 #define WEXITSTATUS(x) ((x) & 0xff)
 #define WTERMSIG(x) SIGTERM
 
+#define EWOULDBLOCK EAGAIN
+#define SHUT_WR SD_SEND
+
 #define SIGHUP 1
 #define SIGQUIT 3
 #define SIGKILL 9
@@ -50,6 +53,8 @@ struct pollfd {
 };
 #define POLLIN 1
 #define POLLHUP 2
+#define POLLOUT 4
+#define POLLNVAL 8
 #endif
 
 typedef void (__cdecl *sig_handler_t)(int);
-- 
1.7.1.402.gf1eeb
Ilari Liusvaara· Aug 14, 2010, 09:38 UTC · re: Johannes Sixt · lore

Re: [PATCH il/rfc-remote-fd-ext] Fix build on Windows

On Sat, Aug 14, 2010 at 12:09:19AM +0200, Johannes Sixt wrote:
> This adds the necessary #defines so that the programs can be built, but
> since the poll emulation is not extended to support POLLOUT and POLLNVAL,
> the resulting programs will most likely not function properly. (The test
> does not check them, yet.)

The code doesn't really need POLLNVAL (Its just there for "can't happen" case). POLLOUT is needed. I looked at poll emulation code: It returning EINVAL causes transfer loop to fail quick.

I think its possible to write the loop in terms of select instead of poll. Would this be better for Git on Windows?

-Ilari
Johannes Sixt· Aug 14, 2010, 18:31 UTC · re: Ilari Liusvaara · lore

Re: [PATCH il/rfc-remote-fd-ext] Fix build on Windows

On Samstag, 14. August 2010, Ilari Liusvaara wrote:
Show 6 quoted lines
> The code doesn't really need POLLNVAL (Its just there for "can't happen"
> case). POLLOUT is needed. I looked at poll emulation code: It returning
> EINVAL causes transfer loop to fail quick.
>
> I think its possible to write the loop in terms of select instead of poll.
> Would this be better for Git on Windows?
No. select does not work with pipes on Windows.
-- Hannes

← back to recent threads