pyconfig.h: conflicting definitions for ssize_t

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


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

sipdnssdpart0.cpp
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;
#else
typedef _W64 int ssize_t;
#endif

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:

typedef LONG_PTR SSIZE_T, *PSSIZE_T;

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

for __midl see
http://msdn.microsoft.com/en-us/library/aa367301(v=vs.85).aspx

-- 
Wolfgang


More information about the Kde-windows mailing list