Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(746)

Unified Diff: src/ports/SkAtomics_sync.h

Issue 398153002: Fix broken android framework builds where 32-bit MIPS compilers lack 64-bit __sync operators. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gyp/common_conditions.gypi ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ports/SkAtomics_sync.h
diff --git a/src/ports/SkAtomics_sync.h b/src/ports/SkAtomics_sync.h
index ed9e3d1695a1221345a78616db07ec49e4f02620..635508257fa31ac7d8d1d6b43e4153d3f37f5966 100644
--- a/src/ports/SkAtomics_sync.h
+++ b/src/ports/SkAtomics_sync.h
@@ -17,7 +17,15 @@ static inline __attribute__((always_inline)) int32_t sk_atomic_inc(int32_t* addr
}
static inline __attribute__((always_inline)) int64_t sk_atomic_inc(int64_t* addr) {
+#if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) && defined(__mips__) && !defined(__LP64__)
petarj 2014/07/18 16:41:04 Can you remove this part: defined(SK_BUILD_FOR_AND
+ /** The 32-bit MIPS toolchain for the android framework is missing support
+ * for __sync* functions that operate on 64-bit values. The workaround is
+ * to use __atomic* functions until we can move everything to <stdatomic.h>.
+ */
+ return __atomic_fetch_add(addr, 1, __ATOMIC_SEQ_CST);
+#else
return __sync_fetch_and_add(addr, 1);
+#endif
}
static inline __attribute__((always_inline)) int32_t sk_atomic_add(int32_t* addr, int32_t inc) {
« no previous file with comments | « gyp/common_conditions.gypi ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698