aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/stubs/platform_macros.h
Commit message (Collapse)AuthorAge
* Add support for Windows ARM64 buildGravatar Miradham Kamilov2017-12-19
|
* Add support for Windows ARM buildsGravatar Gergely Nagy2016-12-12
|
* define no_threadlocal on OpenBSDGravatar ramrunner2016-10-26
|
* Merge pull request #804 from bsilver8192/masterGravatar Feng Xiao2016-02-22
|\ | | | | Add atomics support for 32-bit PPC.
* \ Merge pull request #789 from motahan/solaris64_fixGravatar Feng Xiao2016-01-20
|\ \ | | | | | | Fixing compile errors on Solaris in 64-bit mode
* | | Adds support for buliding protobuf with emscripten; we just needed the ↵Gravatar Craig Donner2015-11-24
| | | | | | | | | | | | proper platform define used in the right place.
* | | Add support for POWER LinuxGravatar Doug Kwan2015-11-03
| | |
| | * Add atomics support for 32-bit PPC.Gravatar Brian Silverman2015-09-09
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | This was originally submitted as a patch on the Google Code issue tracker, but the original author didn't submit a pull request. They did, however, give permission for somebody else to do so. I cleaned up a few things myself and am now submitting it. I can't find any record of what the original patch was, but there is a copy of the discussion at <https://groups.google.com/forum/#!topic/protobuf/SMwF5fYHIi0>. Fixes google/protobuf#581
| * Fixing compile errors on Solaris in 64-bit modeGravatar Mohamed El-Tahan2015-09-02
|/
* Refactored threadlocal logic.Gravatar Austin Schuh2015-06-08
| | | | | | | Refactored the threadlocal logic for Android and IOS into logic in platform_macro.h which computes a GOOGLE_PROTOBUF_NO_THREADLOCAL define which is then used elsewhere. This allows new platforms without THREADLOCAL to be easily defined.
* internal changesGravatar Bo Yang2015-04-24
| | | | Change-Id: I66f216c70a19f44637090878d7e442d4d0f8991b
* Revert pull request 175: Add support for the TILE-Gx processor family.Gravatar Bo Yang2015-03-14
|
* Add support for the TILE-Gx processor family.Gravatar Martin Ertsaas2015-01-22
|
* Add atomicops for AIX/POWER + IBM xlC compiler.Gravatar Andrew Paprocki2014-11-11
|
* Replace links to code.google.com/protobuf with ↵Gravatar Feng Xiao2014-10-01
| | | | developers.google.com/protocol-buffers
* Add support for solaris atomicopsGravatar William Orr2014-09-19
| | | | | | This patch adds support for atomic operations on Solaris, on any platform. It makes use of the atomic functions made available in Solaris' atomic.h header.
* platform_macros.h: #undef GOOGLE_PROTOBUF_PLATFORM_ERROR once it's no longer ↵Gravatar Robert Edmonds2014-09-18
| | | | needed
* Fix atomicops build failure on non-ClangGravatar Robert Edmonds2014-09-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We cannot use Clang's __has_extension macro unless we really are compiling on Clang, which means we cannot use this expression: #if (defined(__clang__) && __has_extension(c_atomic))) // ... #endif On GCC, this generates the following errors: In file included from ./google/protobuf/stubs/atomicops.h:59:0, from google/protobuf/stubs/atomicops_internals_x86_gcc.cc:36: ./google/protobuf/stubs/platform_macros.h:67:41: error: missing binary operator before token "(" (defined(__clang__) && __has_extension(c_atomic))) ^ In file included from google/protobuf/stubs/atomicops_internals_x86_gcc.cc:36:0: ./google/protobuf/stubs/atomicops.h:196:40: error: missing binary operator before token "(" (defined(__clang__) && __has_extension(c_atomic)) ^ Instead, we have to protect the __has_extension expression by only executing it when __clang__ is defined: #if defined(__clang__) # if __has_extension(c_atomic) // ... # endif #endif
* Expose generic atomicops on ClangGravatar Robert S. Edmonds2014-09-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | The generic atomicops implementation is only exposed if GCC >= 4.7 is available, but Clang, where the underlying __atomic built-ins are also available, typically only claims to be GCC 4.2. This causes build failures when compiling protobuf or the output of protoc's C++ code generator on an architecture that needs the generic atomicops implementation with Clang. Clang has a "c_atomic" extension which can be tested for which almost does what we want: C11 atomic operations Use __has_feature(c_atomic) or __has_extension(c_atomic) to determine if support for atomic types using _Atomic is enabled. Clang also provides a set of builtins which can be used to implement the <stdatomic.h> operations on _Atomic types. I'm not sure if this guarantees that the GNU atomic builtins (the ones with the __atomic prefix) are also available, but in practice this should guarantee that Clang is new enough. With this change in place, Clang generates several diagnostics when compiling the generic atomicops implementation. These appear to be bugs in the generic atomicops implementation and are not Clang-specific.
* Remove GOOGLE_PROTOBUF_ARCH_PPCGravatar Robert S. Edmonds2014-09-13
| | | | | | | | | | | | | | | | | The macro GOOGLE_PROTOBUF_ARCH_PPC is not used anywhere in the protobuf source; there is no Power-specific atomics implementation, etc. Funnily enough, the macro __ppc__ is not actually defined on 32-bit Power on GCC/Linux, according to the following webpage: http://nadeausoftware.com/articles/2012/02/c_c_tip_how_detect_processor_type_using_compiler_predefined_macros#POWER and verified on a 32-bit Debian sid 'powerpc' chroot: (sid_powerpc-dchroot)edmonds@partch:~$ gcc -dM -E - < /dev/null | grep -c __ppc__ 0 (sid_powerpc-dchroot)edmonds@partch:~$ gcc -dM -E - < /dev/null | grep -c __LP64__ 0
* merge tags/2.6.0 into trunkGravatar jieluo@google.com2014-08-25
|
* patch Issue 130740043 to trunk for other atomicops patches: [MIPS64] Add ↵Gravatar jieluo@google.com2014-08-20
| | | | support for MIPS64 in protobuf
* Add aarch64 architecture to platform_macros.h (patch by Sylvain Defresne)Gravatar liujisi@google.com2014-02-13
| | | | | | | | Both gcc and clang defines the __aarch64__ macro when building for the 64-bit AArch64 execution state of ARMv8 processors, so use this to detect the architecture.
* Add arm_qnx atomic ops support and add missing header files in Makefile.amGravatar liujisi@google.com2013-01-10
|
* Down-integrate form internal opensource branchGravatar liujisi@google.com2012-12-19
|
* Add support for NaCl in atomicops.Gravatar pliard@google.com2012-07-17
| | | | | | | | | | This does additionally a significant cleanup in platform_macros.h (initially pulled from v8). It implemented some subtleties that we don't use like the HOST/TARGET arch distinction. Changes related to NaCl support come from Chromium's build/build_config.h. BUG=392
* Update atomicops to support new platforms where intptr_t = long.Gravatar liujisi@google.com2012-06-05
| | | | Fix license headers.
* Fix build error in Mac atomicops.Gravatar pliard@google.com2012-03-06
|
* Add atomicops from V8.Gravatar pliard@google.com2012-03-02