Browse Source

Update _GNUC_VER to use the correct implementation of atomic operation on Mac.

Bo Yang 8 years ago
parent
commit
117f771641
2 changed files with 7 additions and 1 deletions
  1. 7 0
      python/setup.py
  2. 0 1
      src/google/protobuf/stubs/atomicops.h

+ 7 - 0
python/setup.py

@@ -5,6 +5,7 @@ import glob
 import os
 import subprocess
 import sys
+import platform
 
 # We must use setuptools, not distutils, because we need to use the
 # namespace_packages option for the "google" package.
@@ -189,6 +190,12 @@ if __name__ == '__main__':
     if "clang" in os.popen('$CC --version 2> /dev/null').read():
       extra_compile_args.append('-Wno-shorten-64-to-32')
 
+    v, _, _ = platform.mac_ver()
+    if not v:
+      v = float('.'.join(v.split('.')[:2]))
+      if v >= 10.12:
+        extra_compile_args=['-std=c++11'],
+
     if warnings_as_errors in sys.argv:
       extra_compile_args.append('-Werror')
       sys.argv.remove(warnings_as_errors)

+ 0 - 1
src/google/protobuf/stubs/atomicops.h

@@ -196,7 +196,6 @@ Atomic64 Release_Load(volatile const Atomic64* ptr);
 
 // Apple.
 #elif defined(GOOGLE_PROTOBUF_OS_APPLE)
-#pragma message(_GNUC_VER)
 #if __has_feature(cxx_atomic) || _GNUC_VER >= 407
 #include <google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h>
 #else  // __has_feature(cxx_atomic) || _GNUC_VER >= 407