~ubuntu-branches/debian/experimental/protobuf/experimental

« back to all changes in this revision

Viewing changes to src/google/protobuf/stubs/atomicops.h

  • Committer: Package Import Robot
  • Author(s): Robert S. Edmonds
  • Date: 2014-09-02 16:57:20 UTC
  • mfrom: (1.3.2) (10.1.7 sid)
  • Revision ID: package-import@ubuntu.com-20140902165720-iafc3f2orkn6i76v
Tags: 2.6.0-1
* New upstream release.
* Upload to experimental.
* Switch to dh sequencer in debian/rules.
* Bump ABI version from 8 to 9.
* Drop all patches from debian/patches/:
  - arm_optimization.diff
      (Appears to be no longer needed.)
  - disable-setuptools-download.diff
      (Disable ez_setup entirely, rather than disabling the downloader
      component inside ez_setup.)
  - fix-ftbfs-gcc4.7-kfreebsd.patch
      (Fixed upstream.)
  - fix-ftbfs-upstream-issue-488.patch
      (Fixed upstream.)
  - revert_upstream_issue_388_about_rpath.diff
      (Fixed upstream.)
* Use dh-autoreconf. (Closes: #725976.)
* Enable the new C++-based Python extension module shipped in 2.6.0.
  See /usr/share/doc/python-protobuf/README.Debian for details.

Show diffs side-by-side

added added

removed removed

Lines of Context:
66
66
#ifdef GOOGLE_PROTOBUF_ARCH_64_BIT
67
67
// We need to be able to go between Atomic64 and AtomicWord implicitly.  This
68
68
// means Atomic64 and AtomicWord should be the same type on 64-bit.
69
 
#if defined(GOOGLE_PROTOBUF_OS_NACL)
 
69
#if defined(__ILP32__) || defined(GOOGLE_PROTOBUF_OS_NACL)
70
70
// NaCl's intptr_t is not actually 64-bits on 64-bit!
71
71
// http://code.google.com/p/nativeclient/issues/detail?id=1162
72
72
typedef int64 Atomic64;
120
120
                                Atomic32 old_value,
121
121
                                Atomic32 new_value);
122
122
 
 
123
#if defined(__MINGW32__) && defined(MemoryBarrier)
 
124
#undef MemoryBarrier
 
125
#endif
123
126
void MemoryBarrier();
124
127
void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value);
125
128
void Acquire_Store(volatile Atomic32* ptr, Atomic32 value);
160
163
#define GOOGLE_PROTOBUF_ATOMICOPS_ERROR \
161
164
#error "Atomic operations are not supported on your platform"
162
165
 
 
166
// ThreadSanitizer, http://clang.llvm.org/docs/ThreadSanitizer.html.
 
167
#if defined(THREAD_SANITIZER)
 
168
#include <google/protobuf/stubs/atomicops_internals_tsan.h>
163
169
// MSVC.
164
 
#if defined(_MSC_VER)
 
170
#elif defined(_MSC_VER)
165
171
#if defined(GOOGLE_PROTOBUF_ARCH_IA32) || defined(GOOGLE_PROTOBUF_ARCH_X64)
166
172
#include <google/protobuf/stubs/atomicops_internals_x86_msvc.h>
167
173
#else
176
182
#elif defined(__GNUC__)
177
183
#if defined(GOOGLE_PROTOBUF_ARCH_IA32) || defined(GOOGLE_PROTOBUF_ARCH_X64)
178
184
#include <google/protobuf/stubs/atomicops_internals_x86_gcc.h>
179
 
#elif defined(GOOGLE_PROTOBUF_ARCH_ARM)
 
185
#elif defined(GOOGLE_PROTOBUF_ARCH_ARM) && defined(__linux__)
180
186
#include <google/protobuf/stubs/atomicops_internals_arm_gcc.h>
 
187
#elif defined(GOOGLE_PROTOBUF_ARCH_AARCH64)
 
188
#include <google/protobuf/stubs/atomicops_internals_arm64_gcc.h>
181
189
#elif defined(GOOGLE_PROTOBUF_ARCH_ARM_QNX)
182
190
#include <google/protobuf/stubs/atomicops_internals_arm_qnx.h>
183
 
#elif defined(GOOGLE_PROTOBUF_ARCH_MIPS)
 
191
#elif defined(GOOGLE_PROTOBUF_ARCH_MIPS) || defined(GOOGLE_PROTOBUF_ARCH_MIPS64)
184
192
#include <google/protobuf/stubs/atomicops_internals_mips_gcc.h>
185
 
#elif defined(__pnacl__)
 
193
#elif defined(__native_client__)
186
194
#include <google/protobuf/stubs/atomicops_internals_pnacl.h>
187
 
#else
 
195
#elif (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4))
188
196
#include <google/protobuf/stubs/atomicops_internals_generic_gcc.h>
 
197
#else
 
198
GOOGLE_PROTOBUF_ATOMICOPS_ERROR
189
199
#endif
190
200
 
191
201
// Unknown.