Hi!

There is a small problem in cgi_main.c preventing it to be compiled properly
with some compilers.


WS2tcpip.h will get included into cgi_main.c by following inclusion chain:
cgi_main.c <- php_standard.h <- fsock.h <- php_network.h <- WS2tcpip.h

Since php.h is included several lines before, socklen_t is already defined as:
php.h (151): typedef unsigned int socklen_t;


Now WS2tcpip.h gets included and tries to redefine socklen_t as:
WS2tcpip.h (593): typedef int socklen_t;

I successfully tested it with the VectorC compiler, where this lead to a
terminal error.

- David


Addendum:
If you take a look into the CVS snapshot build log, you'll probably see this
warning quite a lot of times (58x according to my editor):
C:\\Program Files\\Microsoft SDK\\Include\\.\ws2tcpip.h(593) : warning C4142: benign redefinition of type


Since this occurs throughout the whole build, the easiest solution is proabably
to just change the lines 150-152 in php.h to something like this:


#ifndef HAVE_SOCKLEN_T
# ifdef PHP_WIN32
    typedef int socklen_t;
# else
    typedef unsigned int socklen_t;
# endif
#endif

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to