On Aug 28, 2012, at 4:10 PM, Roumen Petrov <bugtrack roumenpetrov info> wrote:
Rob Richards wrote:This broke the win build (VS 2008 and below) as it doesn't contain stdint.hOk but this mean that VS 2010 and later contain this file, right ?Outside on windows I don't have a system without stdint.h so can't completely test this change but assume it should be changes as follows (for consistency using same WIN32 define from dict.c): #ifdef HAVE_STDINT_H #include <stdint.h> #else #ifdef HAVE_INTTYPES_H #include <inttypes.h> #elif defined(WIN32) typedef __int64 int64_t; typedef unsigned __int64 uint64_t; #endif #endifI think that definitions has to be protected by _MSC_VER since mingw* projects offer this file . What about if _MSC_VER < xxxx (version for VS 2010) typedef .... #else # define HAVE_STDINT_H #endif Also if defined(__MINGW32__) && !defined HAVE_STDINT_H #define HAVE_STDINT_H #endif Later could by replaced by define in Makefile.mingw as configure based build will detect presence of this header file.The windows defs do at least fix the win build RobRoumen
It does but it defines HAVE_STDINT_H so is already covered by the first ifdef - tested it both with and without the ifdef block and it built fine. I assume mingw already defines that as well, otherwise compiling dict.c would fail too as it uses the same ifdef block. While ideally would just deal with those defines inside the make files but I don't know the combinations that mingw, Borland and other non windows builds work (as the addition and uae of that file definitely broke more than just some window builds) otherwise I would definitely say lets just handle this in the makefiles and fix in all the files that use this define block. IMO that's too big of a potential breaking change for a variety of platforms so late in the game to simplify this. Rob
Attachment:
smime.p7s
Description: S/MIME cryptographic signature