Re: Critical typedef redefinitions

php.internals

Frank M. Kromann

21 years ago
Hi, Adding these two lines to main/win95nt.h kills these warnings with vs 6 typedef int socklen_t; #define HAVE_SOCKLEN_T 1 - Frank
> We only support the MSVC compiler and libc under windows (there are > plenty of quirks and assumptions made about it for the win32 build). > > Changing that typedef is slightly tricky; I left it as it was because > there were compilation problems using older versons of MSVC and the > platform SDK, and this redefinition is benign. > > If you can test you proposed change with MSVC 6, VS.Net and your > VectorC compiler and make sure that it all still works, then we can > commit it. > > --Wez. > > On Sun, 02 Jan 2005 11:41:32 +0100, David Strauss <kintaroZ@msn.com>
wrote:
> > 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