aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/openjdk/openjdk-6-6b18-1.8/zero-cmpswap-long.patch
diff options
context:
space:
mode:
authorHenning Heinold <h.heinold@tarent.de>2010-07-12 13:29:16 +0200
committerHenning Heinold <h.heinold@tarent.de>2010-08-02 10:23:46 +0200
commitb78fc95424b5f0fb28246e8c61bb8b4d6a9d733a (patch)
treef65f5609aabafe474f1f35bb7e284aa733be1081 /recipes/openjdk/openjdk-6-6b18-1.8/zero-cmpswap-long.patch
parent9e043b45ceba7e65565722c7dc14910547b04d17 (diff)
downloadopenembedded-b78fc95424b5f0fb28246e8c61bb8b4d6a9d733a.tar.gz
openjdk: backport from openembedded-devstable/2009
Acked-by: Stefan Schmidt <stefan@buglabs.net> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
Diffstat (limited to 'recipes/openjdk/openjdk-6-6b18-1.8/zero-cmpswap-long.patch')
-rw-r--r--recipes/openjdk/openjdk-6-6b18-1.8/zero-cmpswap-long.patch20
1 files changed, 20 insertions, 0 deletions
diff --git a/recipes/openjdk/openjdk-6-6b18-1.8/zero-cmpswap-long.patch b/recipes/openjdk/openjdk-6-6b18-1.8/zero-cmpswap-long.patch
new file mode 100644
index 0000000000..ca21ccfea4
--- /dev/null
+++ b/recipes/openjdk/openjdk-6-6b18-1.8/zero-cmpswap-long.patch
@@ -0,0 +1,20 @@
+Index: icedtea6-1.8/ports/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp
+===================================================================
+--- icedtea6-1.8.orig/ports/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp 2010-06-17 10:26:16.885292426 +0200
++++ icedtea6-1.8/ports/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp 2010-06-17 10:29:19.034668305 +0200
+@@ -266,7 +266,15 @@
+ volatile jlong* dest,
+ jlong compare_value) {
+
++#ifdef ARM
++ return arm_compare_and_swap((jint *) dest, (jint) compare_value, (jint) exchange_value);
++#else
++#ifdef M68K
++ return m68k_compare_and_swap((jint *) dest, (jint) compare_value, (jint) exchange_value);
++#else
+ return __sync_val_compare_and_swap(dest, compare_value, exchange_value);
++#endif // M68K
++#endif // ARM
+ }
+
+ inline intptr_t Atomic::cmpxchg_ptr(intptr_t exchange_value,