Hi.
The recent commit to TSRM/readdir.h isn't quite right.
The later versions of the MS VC compiler set _WINNT32_WINNT to 0x600.
This causes problems later on in fopen_wrappers.c
fopen_wrappers.c
C:\Program Files\Microsoft SDKs\Windows\v6.1\include\ws2tcpip.h(583) :
error C2373: 'inet_pton' : redefinition; different type modifiers
..\php_build\include\arpa/inet.h(96) : see declaration of 'inet_pton'
C:\Program Files\Microsoft SDKs\Windows\v6.1\include\ws2tcpip.h(600) :
error C2373: 'inet_ntop' : redefinition; different type modifiers
..\php_build\include\arpa/inet.h(97) : see declaration of 'inet_ntop'
Changing readdir.h so that it simply undef _WIN32_WINNT first,
preserves PHP's value for this constant.
I've attached patches for 5.3 and head (HEAD is untested).
By adding and removing the patches, I can get 5.3 to compile or not.
This will only be a problem when using a MS compiler which supplies a
_WIN32_WINNT > 0x0400.
And as I'm following the new PHP documentation on compiling PHP for
windows, I hope this gets in.
Regards,
Richard.
--
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"
It's working fine here on VC6 and 2005 on XP.
afaik the code was only there to deal with older versions of Windows
that didn't have _WINNT32_WINNT defined.
More investigation is needed to see what exactly is broken. We may just
need to rebuild some of the things in zip.zip again.
Scott
Richard Quadling wrote:
Hi.
The recent commit to TSRM/readdir.h isn't quite right.
The later versions of the MS VC compiler set _WINNT32_WINNT to 0x600.
This causes problems later on in fopen_wrappers.c
fopen_wrappers.c
C:\Program Files\Microsoft SDKs\Windows\v6.1\include\ws2tcpip.h(583) :
error C2373: 'inet_pton' : redefinition; different type modifiers
..\php_build\include\arpa/inet.h(96) : see declaration of 'inet_pton'C:\Program Files\Microsoft SDKs\Windows\v6.1\include\ws2tcpip.h(600) :
error C2373: 'inet_ntop' : redefinition; different type modifiers
..\php_build\include\arpa/inet.h(97) : see declaration of 'inet_ntop'Changing readdir.h so that it simply undef _WIN32_WINNT first,
preserves PHP's value for this constant.I've attached patches for 5.3 and head (HEAD is untested).
By adding and removing the patches, I can get 5.3 to compile or not.
This will only be a problem when using a MS compiler which supplies a
_WIN32_WINNT > 0x0400.And as I'm following the new PHP documentation on compiling PHP for
windows, I hope this gets in.Regards,
Richard.
Scott MacVicar wrote:
It's working fine here on VC6 and 2005 on XP.
afaik the code was only there to deal with older versions of Windows
that didn't have _WINNT32_WINNT defined.More investigation is needed to see what exactly is broken. We may just
need to rebuild some of the things in zip.zip again.Scott
Confirmed that it's a problem with the 6.1 sdk - the issue is microsoft
suddenly defines something that they've never bothered to before, and
the bindlib that PHP on windows uses is trying to define it too -
probably need to fix it in the bundled lib
You can make 2008 use the older 6.0 sdk if you must build it right now,
or wait until we get the bundled lib ready for the 2008 compiler
Thanks,
Elizabeth
It's working fine here on VC6 and 2005 on XP.
afaik the code was only there to deal with older versions of Windows that
didn't have _WINNT32_WINNT defined.More investigation is needed to see what exactly is broken. We may just
need to rebuild some of the things in zip.zip again.Scott
Richard Quadling wrote:
Hi.
The recent commit to TSRM/readdir.h isn't quite right.
The later versions of the MS VC compiler set _WINNT32_WINNT to 0x600.
This causes problems later on in fopen_wrappers.c
fopen_wrappers.c
C:\Program Files\Microsoft
SDKs\Windows\v6.1\include\ws2tcpip.h(583) :
error C2373: 'inet_pton' : redefinition; different type modifiers
..\php_build\include\arpa/inet.h(96) : see
declaration of 'inet_pton'C:\Program Files\Microsoft
SDKs\Windows\v6.1\include\ws2tcpip.h(600) :
error C2373: 'inet_ntop' : redefinition; different type modifiers
..\php_build\include\arpa/inet.h(97) : see
declaration of 'inet_ntop'Changing readdir.h so that it simply undef _WIN32_WINNT first,
preserves PHP's value for this constant.I've attached patches for 5.3 and head (HEAD is untested).
By adding and removing the patches, I can get 5.3 to compile or not.
This will only be a problem when using a MS compiler which supplies a
_WIN32_WINNT > 0x0400.And as I'm following the new PHP documentation on compiling PHP for
windows, I hope this gets in.Regards,
Richard.
With later releases of the MS compiler, more versions of windows are understood.
C:\Program Files\Microsoft SDKs\Windows\v6.1\include\sdkddkver.h, line
186+ has ...
#if !defined(_WIN32_WINNT) && !defined(CHICAGO)
#define _WIN32_WINNT 0x0600
#endif
#ifndef NTDDI_VERSION
#ifdef _WIN32_WINNT
// set NTDDI_VERSION based on _WIN32_WINNT
#define NTDDI_VERSION NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT)
#else
#define NTDDI_VERSION 0x06000100
#endif
#endif
Also on line 35, it has ...
#define _WIN32_WINNT_VISTA 0x0600
These 2 things cause the problem.
In /php_build/include/arpa/inet.h, the ntop/pton calls are different
enough to cause the compilation to bork.
--
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"