
Nick Mathewson wrote:
I made the changes conditional on not having GCC, since the GCC syntax will work with older versions of GCC. (Somebody should check whether we care about those versions.)
I saw that; from the Changelog: o Minor features (portability): - Use C99 variadic macros when the compiler is not GCC. This avoids failing compilations on MSVC, and fixes a log-file-based race condition in our old workarounds. Original patch from Gisle Vanem. I don't know what the "race conditions" is about, but this (?) change broke MSVC again by a '__PRETTY_FUNCTION__' which MSVC doesn't have. I suggest you add a: #define __PRETTY_FUNCTION__ __FUNCTION__ to win32/orconfig.h. Trying to find the change under https://trac.torproject.org/projects/tor/browse proved impossible. That site is so slow so I add some more MSVC-porting issues here: 1) Base-types like 'uint8_t' have been part of MSVC's <stdint.h> since ver. 1600. So this patch was needed here: --- a/src/ext/trunnel/trunnel-impl.h 2015-06-04 19:32:02 +0000 +++ b/ext/trunnel/trunnel-impl.h 2015-06-04 19:49:06 +0000 @@ -18,7 +18,7 @@ #include "trunnel-local.h" #endif -#ifdef _MSC_VER +#if defined(_MSC_VER) && (_MSC_VER < 1600) #define uint8_t unsigned char #define uint16_t unsigned short #define uint32_t unsigned int 2) MSVC have never had <dirent.h>: --- a/src/test/test_checkdir.c 2015-03-03 20:36:19 +0000 +++ b/src/test/test_checkdir.c 2015-03-04 15:29:02 +0000 @@ -3,7 +3,11 @@ #include "orconfig.h" #include "or.h" + +#ifndef _MSC_VER #include <dirent.h> +#endif + #include "config.h" #include "test.h" #include "util.h" -- --gv