pyconfig.h: conflicting definitions for ssize_t

Wolfgang Rohdewald wolfgang at
Wed Mar 30 01:51:08 CEST 2011

compiling pykde on windows with msvc2010 on a 32bit Windows 7:

R:\include\msvc\sys/types.h(52) : error C2371: 'ssize_t' : redefinition; different basic types
        c:\python27\include\pyconfig.h(201) : see declaration of 'ssize_t'

I can fix this by defining ssize_t as long in pyconfig.h or 
as int in kdewin/include/msvc/sys/types.h

the original files from windows define SSIZE_T as long so to
me this seems like a bug in pyconfig.h, it should say
typedef _W64 long ssize_t

Python27\include\pyconfig.h says (same in Python32):

#ifdef MS_WIN64
typedef __int64 ssize_t;
typedef _W64 int ssize_t;

while kdewin/include/msvc/sys/types.h says:

typedef SSIZE_T ssize_t;

SSIZE_T is defined in Microsoft SDKs/Windows/v7.0A/Include/BaseTsd.h:


and LONG_PTR from same directory, intsafe.h:
#if (__midl > 501)
typedef [public]          __int3264 LONG_PTR;
#ifdef _WIN64
typedef __int64             LONG_PTR;
typedef _W64 long           LONG_PTR;
#endif // WIN64
#endif // (__midl > 501)

for __midl see


More information about the Kde-windows mailing list