winsock.h: msvcrt headers versus systems headers

Gerald Pfeifer pfeifer at
Fri Jun 6 17:05:09 CDT 2003

The following change to include/winsock.h

  revision 1.59
  date: 2003/06/04 20:15:39;  author: julliard;  state: Exp;  lines: +1 -0
  Yorick Hardy <yh at>
  Include sys/time.h for struct timeval definition.

causes compilation failure of programs/notepad:

  /sw/gcc-3.2.2/bin/gcc -c -I. -I. -I../../include -I../../include
  -I../../include/msvcrt -D_REENTRANT -fPIC -DNO_LIBWINE_PORT -Wall
  -mpreferred-stack-boundary=2 -gstabs+ -Wpointer-arith -g -O2 -o
  License_En.o License_En.c
  In file included from ../../include/winsock.h:68,
                   from ../../include/winsock2.h:47,
                   from ../../include/windows.h:62,
                   from License_En.c:1:
  /usr/include/sys/time.h:135: parse error before "__P"
  /usr/include/sys/time.h:136: parse error before "__P"
  /usr/include/sys/time.h:140: parse error before "timecounter_get_t"

The problem is that by virtue of -I../../include/msvcrt in
programs/notepad/Makefile, the statement
  #include <sys/types.h>
in line 67 of include/winsock.h actually includes the file
include/msvcrt/sys/types.h, which does not to define __P which
the FreeBSD system header which then gets pulled in by means of
  #include <sys/time.h>
in line 68 of include/winsock.h.

So, with this nice analysis ;-), is anybody going to fix this?

Gerald "Jerry"   pfeifer at

More information about the wine-devel mailing list