Critical typedef redefinitions

From: Date: Sun, 02 Jan 2005 10:41:32 +0000
Subject: Critical typedef redefinitions
Groups: php.internals 
Request: Send a blank email to internals+get-14261@lists.php.net to get a copy of this message
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

« previous php.internals (#14261) next »