* [PATCH 01/14] msvc: Fix compilation errors in compat/win32/sys/poll.c
@ 2010-12-04 18:54 Ramsay Jones
2010-12-04 20:45 ` Jonathan Nieder
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Ramsay Jones @ 2010-12-04 18:54 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Johannes Sixt, kusmabite, GIT Mailing-list
The msvc winsock2.h header file conditionally defines or declares
poll() related symbols which cause many macro redefinition errors,
a struct type redefinition error and syntax errors. These symbols
are defined in support of the WSAPoll() API, new in Windows Vista,
when the symbol _WIN32_WINNT is defined and _WIN32_WINNT >= 0x0600.
In order to avoid the compilation errors, we set _WIN32_WINNT to
0x0502 (which would target Windows Server 2003) prior to including
the winsock2.h header file.
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
---
compat/win32/sys/poll.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/compat/win32/sys/poll.c b/compat/win32/sys/poll.c
index 7e74ebe..708a6c9 100644
--- a/compat/win32/sys/poll.c
+++ b/compat/win32/sys/poll.c
@@ -34,6 +34,9 @@
#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
# define WIN32_NATIVE
+# if defined (_MSC_VER)
+# define _WIN32_WINNT 0x0502
+# endif
# include <winsock2.h>
# include <windows.h>
# include <io.h>
--
1.7.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 01/14] msvc: Fix compilation errors in compat/win32/sys/poll.c
2010-12-04 18:54 [PATCH 01/14] msvc: Fix compilation errors in compat/win32/sys/poll.c Ramsay Jones
@ 2010-12-04 20:45 ` Jonathan Nieder
2010-12-07 22:54 ` Ramsay Jones
2010-12-04 21:12 ` Erik Faye-Lund
2010-12-04 21:22 ` Johannes Sixt
2 siblings, 1 reply; 8+ messages in thread
From: Jonathan Nieder @ 2010-12-04 20:45 UTC (permalink / raw)
To: Ramsay Jones; +Cc: Junio C Hamano, Johannes Sixt, kusmabite, GIT Mailing-list
Ramsay Jones wrote:
> The msvc winsock2.h header file conditionally defines or declares
> poll() related symbols which cause many macro redefinition errors,
> a struct type redefinition error and syntax errors. These symbols
> are defined in support of the WSAPoll() API, new in Windows Vista,
> when the symbol _WIN32_WINNT is defined and _WIN32_WINNT >= 0x0600.
Could it make sense to define this at the same time as _GNU_SOURCE et
al?
#define _ALL_SOURCE 1
#define _GNU_SOURCE 1
#define _BSD_SOURCE 1
#define _NETBSD_SOURCE 1
#define _SGI_SOURCE 1
#define _WIN32_WINNT 0x0502
Haven't thought carefully about the consequences, though; your patch
is probably safer.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 01/14] msvc: Fix compilation errors in compat/win32/sys/poll.c
2010-12-04 18:54 [PATCH 01/14] msvc: Fix compilation errors in compat/win32/sys/poll.c Ramsay Jones
2010-12-04 20:45 ` Jonathan Nieder
@ 2010-12-04 21:12 ` Erik Faye-Lund
2010-12-04 21:22 ` Johannes Sixt
2 siblings, 0 replies; 8+ messages in thread
From: Erik Faye-Lund @ 2010-12-04 21:12 UTC (permalink / raw)
To: Ramsay Jones; +Cc: Junio C Hamano, Johannes Sixt, GIT Mailing-list
On Sat, Dec 4, 2010 at 7:54 PM, Ramsay Jones <ramsay@ramsay1.demon.co.uk> wrote:
>
> The msvc winsock2.h header file conditionally defines or declares
> poll() related symbols which cause many macro redefinition errors,
> a struct type redefinition error and syntax errors. These symbols
> are defined in support of the WSAPoll() API, new in Windows Vista,
> when the symbol _WIN32_WINNT is defined and _WIN32_WINNT >= 0x0600.
>
> In order to avoid the compilation errors, we set _WIN32_WINNT to
> 0x0502 (which would target Windows Server 2003) prior to including
> the winsock2.h header file.
>
> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
> ---
> compat/win32/sys/poll.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/compat/win32/sys/poll.c b/compat/win32/sys/poll.c
> index 7e74ebe..708a6c9 100644
> --- a/compat/win32/sys/poll.c
> +++ b/compat/win32/sys/poll.c
> @@ -34,6 +34,9 @@
>
> #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
> # define WIN32_NATIVE
> +# if defined (_MSC_VER)
> +# define _WIN32_WINNT 0x0502
> +# endif
> # include <winsock2.h>
> # include <windows.h>
> # include <io.h>
I have an almost identical patch in my msvc-tree, so FWIW:
Acked-by: Erik Faye-Lund <kusmabite@gmail.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 01/14] msvc: Fix compilation errors in compat/win32/sys/poll.c
2010-12-04 18:54 [PATCH 01/14] msvc: Fix compilation errors in compat/win32/sys/poll.c Ramsay Jones
2010-12-04 20:45 ` Jonathan Nieder
2010-12-04 21:12 ` Erik Faye-Lund
@ 2010-12-04 21:22 ` Johannes Sixt
2010-12-08 0:18 ` Ramsay Jones
2 siblings, 1 reply; 8+ messages in thread
From: Johannes Sixt @ 2010-12-04 21:22 UTC (permalink / raw)
To: Ramsay Jones; +Cc: Junio C Hamano, kusmabite, GIT Mailing-list
On Samstag, 4. Dezember 2010, Ramsay Jones wrote:
> The msvc winsock2.h header file conditionally defines or declares
> poll() related symbols which cause many macro redefinition errors,
> a struct type redefinition error and syntax errors. These symbols
> are defined in support of the WSAPoll() API, new in Windows Vista,
> when the symbol _WIN32_WINNT is defined and _WIN32_WINNT >= 0x0600.
>
> In order to avoid the compilation errors, we set _WIN32_WINNT to
> 0x0502 (which would target Windows Server 2003) prior to including
> the winsock2.h header file.
>
> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
> ---
> compat/win32/sys/poll.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/compat/win32/sys/poll.c b/compat/win32/sys/poll.c
> index 7e74ebe..708a6c9 100644
> --- a/compat/win32/sys/poll.c
> +++ b/compat/win32/sys/poll.c
> @@ -34,6 +34,9 @@
>
> #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
> # define WIN32_NATIVE
> +# if defined (_MSC_VER)
> +# define _WIN32_WINNT 0x0502
> +# endif
> # include <winsock2.h>
> # include <windows.h>
> # include <io.h>
Don't you have to do the same in git-compat-util.h?
-- Hannes
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 01/14] msvc: Fix compilation errors in compat/win32/sys/poll.c
2010-12-04 20:45 ` Jonathan Nieder
@ 2010-12-07 22:54 ` Ramsay Jones
0 siblings, 0 replies; 8+ messages in thread
From: Ramsay Jones @ 2010-12-07 22:54 UTC (permalink / raw)
To: Jonathan Nieder
Cc: Junio C Hamano, Johannes Sixt, kusmabite, GIT Mailing-list
Jonathan Nieder wrote:
> Could it make sense to define this at the same time as _GNU_SOURCE et
> al?
>
> #define _ALL_SOURCE 1
> #define _GNU_SOURCE 1
> #define _BSD_SOURCE 1
> #define _NETBSD_SOURCE 1
> #define _SGI_SOURCE 1
> #define _WIN32_WINNT 0x0502
>
> Haven't thought carefully about the consequences, though; your patch
> is probably safer.
[Sorry for the late reply, I've been away from email for several days]
This would not fix the compilation errors, since compat/win32/sys/poll.c
does not include the git-compat-util.h header file (and I *don't* think
it should). ;-)
ATB,
Ramsay Jones
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 01/14] msvc: Fix compilation errors in compat/win32/sys/poll.c
2010-12-04 21:22 ` Johannes Sixt
@ 2010-12-08 0:18 ` Ramsay Jones
2010-12-08 19:42 ` Johannes Sixt
0 siblings, 1 reply; 8+ messages in thread
From: Ramsay Jones @ 2010-12-08 0:18 UTC (permalink / raw)
To: Johannes Sixt; +Cc: Junio C Hamano, kusmabite, GIT Mailing-list
Johannes Sixt wrote:
> On Samstag, 4. Dezember 2010, Ramsay Jones wrote:
>> diff --git a/compat/win32/sys/poll.c b/compat/win32/sys/poll.c
>> index 7e74ebe..708a6c9 100644
>> --- a/compat/win32/sys/poll.c
>> +++ b/compat/win32/sys/poll.c
>> @@ -34,6 +34,9 @@
>>
>> #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
>> # define WIN32_NATIVE
>> +# if defined (_MSC_VER)
>> +# define _WIN32_WINNT 0x0502
>> +# endif
>> # include <winsock2.h>
>> # include <windows.h>
>> # include <io.h>
>
> Don't you have to do the same in git-compat-util.h?
No. compat/win32/sys/poll.c doesn't include git-compat-util.h (and I
don't think it should), so adding it there would not solve the immediate
problem. Also, I don't see any reason to restrict the API used by both
MinGW and msvc in other parts of git.
ATB,
Ramsay Jones
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 01/14] msvc: Fix compilation errors in compat/win32/sys/poll.c
2010-12-08 0:18 ` Ramsay Jones
@ 2010-12-08 19:42 ` Johannes Sixt
[not found] ` <4D039E73.80301@ramsay1.demon.co.uk>
0 siblings, 1 reply; 8+ messages in thread
From: Johannes Sixt @ 2010-12-08 19:42 UTC (permalink / raw)
To: Ramsay Jones; +Cc: Junio C Hamano, kusmabite, GIT Mailing-list
On Mittwoch, 8. Dezember 2010, Ramsay Jones wrote:
> Johannes Sixt wrote:
> > On Samstag, 4. Dezember 2010, Ramsay Jones wrote:
> >> diff --git a/compat/win32/sys/poll.c b/compat/win32/sys/poll.c
> >> index 7e74ebe..708a6c9 100644
> >> --- a/compat/win32/sys/poll.c
> >> +++ b/compat/win32/sys/poll.c
> >> @@ -34,6 +34,9 @@
> >>
> >> #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
> >> # define WIN32_NATIVE
> >> +# if defined (_MSC_VER)
> >> +# define _WIN32_WINNT 0x0502
> >> +# endif
> >> # include <winsock2.h>
> >> # include <windows.h>
> >> # include <io.h>
> >
> > Don't you have to do the same in git-compat-util.h?
>
> No. compat/win32/sys/poll.c doesn't include git-compat-util.h (and I
> don't think it should),
I know and I agree.
> so adding it there would not solve the immediate
> problem.
Didn't I say: "do the same..."? :-) So the question remains open. After all,
by doing so, you would make sure that the rest of git sees the same API
(struct definitions and #defined constants) as compat/win32/sys/poll.c, no?
-- Hannes
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 01/14] msvc: Fix compilation errors in compat/win32/sys/poll.c
[not found] ` <4D039E73.80301@ramsay1.demon.co.uk>
@ 2010-12-11 22:09 ` Johannes Sixt
0 siblings, 0 replies; 8+ messages in thread
From: Johannes Sixt @ 2010-12-11 22:09 UTC (permalink / raw)
To: Ramsay Jones; +Cc: Junio C Hamano, kusmabite, GIT Mailing-list
On Samstag, 11. Dezember 2010, Ramsay Jones wrote:
> Before sending the patch, I generated a
> before and after pre-processor file and spent about 2-3 hours using tkdiff,
> vim, grep etc., to try and determine if it was a "safe" change.
Thanks. This dispels my concerns.
-- Hannes
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-12-11 22:10 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-04 18:54 [PATCH 01/14] msvc: Fix compilation errors in compat/win32/sys/poll.c Ramsay Jones
2010-12-04 20:45 ` Jonathan Nieder
2010-12-07 22:54 ` Ramsay Jones
2010-12-04 21:12 ` Erik Faye-Lund
2010-12-04 21:22 ` Johannes Sixt
2010-12-08 0:18 ` Ramsay Jones
2010-12-08 19:42 ` Johannes Sixt
[not found] ` <4D039E73.80301@ramsay1.demon.co.uk>
2010-12-11 22:09 ` Johannes Sixt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).