[tor-dev] [Patch] or/config.c for MSVC

Gisle Vanem gvanem at yahoo.no
Fri Jul 17 10:32:33 UTC 2015

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:

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

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"

-#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>
  #include "config.h"
  #include "test.h"
  #include "util.h"


More information about the tor-dev mailing list