瀏覽代碼

Fix compilation with older gccs

They don't like to have #preprocessor directives inside macro arguments.

Fixes #6842; fix on 0.2.4.2-alpha.

Found by grarpamp.
Nick Mathewson 11 年之前
父節點
當前提交
e4ce8cd969
共有 3 個文件被更改,包括 16 次插入8 次删除
  1. 5 0
      changes/old_gcc_macro_fix
  2. 6 4
      src/common/util.c
  3. 5 4
      src/or/main.c

+ 5 - 0
changes/old_gcc_macro_fix

@@ -0,0 +1,5 @@
+  o Minor bugfixes:
+    - Fix building with older versions of GCC that don't like preprocessor
+      directives inside macro arguments. Found by grarpamp. Fixes bug 6842;
+      bugfix on 0.2.4.2-alpha.
+     

+ 6 - 4
src/common/util.c

@@ -3923,13 +3923,15 @@ tor_process_handle_destroy(process_handle_t *process_handle,
 
   if (also_terminate_process) {
     if (tor_terminate_process(process_handle) < 0) {
-      log_notice(LD_GENERAL, "Failed to terminate process with "
-                 "PID '%d' ('%s').", tor_process_get_pid(process_handle),
+      const char *errstr =
 #ifdef _WIN32
-                 format_win32_error(GetLastError()));
+        format_win32_error(GetLastError());
 #else
-                 strerror(errno));
+        strerror(errno);
 #endif
+      log_notice(LD_GENERAL, "Failed to terminate process with "
+                 "PID '%d' ('%s').", tor_process_get_pid(process_handle),
+                 errstr);
     } else {
       log_info(LD_GENERAL, "Terminated process with PID '%d'.",
                tor_process_get_pid(process_handle));

+ 5 - 4
src/or/main.c

@@ -2309,13 +2309,14 @@ tor_init(int argc, char *argv[])
 
   {
     const char *version = get_version();
-    log_notice(LD_GENERAL, "Tor v%s %srunning on %s with Libevent %s "
-               "and OpenSSL %s.", version,
+    const char *bev_str =
 #ifdef USE_BUFFEREVENTS
-               "(with bufferevents) ",
+      "(with bufferevents) ";
 #else
-               "",
+      "";
 #endif
+    log_notice(LD_GENERAL, "Tor v%s %srunning on %s with Libevent %s "
+               "and OpenSSL %s.", version, bev_str,
                get_uname(),
                tor_libevent_get_version_str(),
                crypto_openssl_get_version_str());