[openmpi] Update atomics patch for ARM (thanks to Jon Masters)
Peter Robinson
pbrobinson at fedoraproject.org
Sun Nov 18 16:36:50 UTC 2012
commit b44370fe2d8976da8c8d9b6ef7db5e003e21dba0
Author: Peter Robinson <pbrobinson at gmail.com>
Date: Sun Nov 18 16:36:37 2012 +0000
Update atomics patch for ARM (thanks to Jon Masters)
openmpi-1.6.3-arm-atomics.patch | 110 ++++++++++++++++++---------------------
openmpi.spec | 5 ++-
2 files changed, 54 insertions(+), 61 deletions(-)
---
diff --git a/openmpi-1.6.3-arm-atomics.patch b/openmpi-1.6.3-arm-atomics.patch
index 6f7407f..dcb5928 100644
--- a/openmpi-1.6.3-arm-atomics.patch
+++ b/openmpi-1.6.3-arm-atomics.patch
@@ -1,4 +1,3 @@
-Binary files openmpi-1.6.3_orig/opal/asm/.asm-data.txt.swp and openmpi-1.6.3/opal/asm/.asm-data.txt.swp differ
diff -urNp openmpi-1.6.3_orig/opal/asm/base/ARM.asm openmpi-1.6.3/opal/asm/base/ARM.asm
--- openmpi-1.6.3_orig/opal/asm/base/ARM.asm 2012-04-03 10:29:44.000000000 -0400
+++ openmpi-1.6.3/opal/asm/base/ARM.asm 1969-12-31 19:00:00.000000000 -0500
@@ -158,8 +157,8 @@ diff -urNp openmpi-1.6.3_orig/opal/asm/base/ARM.asm openmpi-1.6.3/opal/asm/base/
-END_FUNC(opal_atomic_sub_32)
diff -urNp openmpi-1.6.3_orig/opal/asm/base/ARMV5.asm openmpi-1.6.3/opal/asm/base/ARMV5.asm
--- openmpi-1.6.3_orig/opal/asm/base/ARMV5.asm 1969-12-31 19:00:00.000000000 -0500
-+++ openmpi-1.6.3/opal/asm/base/ARMV5.asm 2012-11-11 00:04:19.340576499 -0500
-@@ -0,0 +1,120 @@
++++ openmpi-1.6.3/opal/asm/base/ARMV5.asm 2012-11-13 14:43:17.018685692 -0500
+@@ -0,0 +1,109 @@
+START_FILE
+ TEXT
+
@@ -183,102 +182,91 @@ diff -urNp openmpi-1.6.3_orig/opal/asm/base/ARMV5.asm openmpi-1.6.3/opal/asm/bas
+
+
+START_FUNC(opal_atomic_cmpset_32)
++ push {r4, lr}
+ mov r3, r0
+ mov r0, r1
+ mov r1, r2
+ mov r2, r3
-+ mov r12, lr
+ ldr r3, REFLSYM(1)
+ blx r3
-+ cmp r0, #0
-+ movne r0, #0
-+ moveq r0, #1
-+ mov lr, r12
++ movcc r0, #0
++ movcs r0, #1
++ pop {r4, lr}
+ bx lr
-+ LSYM(1)
+ .align 2
-+ .word -61504
++ LSYM(1)
++ .word 0xffff0fc0
+END_FUNC(opal_atomic_cmpset_32)
+
+
+START_FUNC(opal_atomic_cmpset_acq_32)
++ push {r4, lr}
+ mov r3, r0
+ mov r0, r1
+ mov r1, r2
+ mov r2, r3
-+ mov r12, lr
+ ldr r3, REFLSYM(2)
+ blx r3
-+ cmp r0, #0
-+ movne r0, #0
-+ moveq r0, #1
-+ mov lr, r12
++ movcc r0, #0
++ movcs r0, #1
++ pop {r4, lr}
+ bx lr
-+ LSYM(2)
+ .align 2
-+ .word -61504
++ LSYM(2)
++ .word 0xffff0fc0
+END_FUNC(opal_atomic_cmpset_acq_32)
+
+
+START_FUNC(opal_atomic_cmpset_rel_32)
++ push {r4, lr}
+ mov r3, r0
+ mov r0, r1
+ mov r1, r2
+ mov r2, r3
-+ mov r12, lr
+ ldr r3, REFLSYM(3)
+ blx r3
-+ cmp r0, #0
-+ movne r0, #0
-+ moveq r0, #1
-+ mov lr, r12
++ movcc r0, #0
++ movcs r0, #1
++ pop {r4, lr}
+ bx lr
-+ LSYM(3)
+ .align 2
-+ .word -61504
++ LSYM(3)
++ .word 0xffff0fc0
+END_FUNC(opal_atomic_cmpset_rel_32)
+
+START_FUNC(opal_atomic_add_32)
-+ push {r4-r7}
-+ mov r4, r1
-+ mov r2, r0
-+ mov r12, lr
-+ ldr r3, REFLSYM(5)
-+ LSYM(4)
-+ ldr r0, [r2]
-+ add r1, r0, r4
-+ blx r3
-+ cmp r0, #0
-+ movne r0, #1
-+ bne REFLSYM(4)
-+ mov lr, r12
-+ pop {r4-r7}
-+ bx lr
-+ LSYM(5)
-+ .align 2
-+ .word -61504
++ push {r4, lr}
++ mov r4, r1
++ mov r2, r0
++ LSYM(4)
++ ldr r0, [r2]
++ ldr r3, REFLSYM(5)
++ add r1, r0, r4
++ blx r3
++ bcc REFLSYM(4)
++ pop {r4, lr}
++ bx lr
++ .align 2
++ LSYM(5)
++ .word 0xffff0fc0
+END_FUNC(opal_atomic_add_32)
+
+
+START_FUNC(opal_atomic_sub_32)
-+ push {r4-r7}
-+ mov r4, r1
-+ mov r2, r0
-+ mov r12, lr
-+ ldr r3, REFLSYM(5)
-+ LSYM(6)
-+ ldr r0, [r2]
-+ sub r1, r0, r4
-+ blx r3
-+ cmp r0, #0
-+ movne r0, #1
-+ bne REFLSYM(4)
-+ mov lr, r12
-+ pop {r4-r7}
-+ bx lr
-+ LSYM(7)
-+ .align 2
-+ .word -61504
++ push {r4, lr}
++ mov r4, r1
++ mov r2, r0
++ LSYM(6)
++ ldr r0, [r2]
++ ldr r3, REFLSYM(7)
++ sub r1, r0, r4
++ blx r3
++ bcc REFLSYM(6)
++ pop {r4, lr}
++ bx lr
++ .align 2
++ LSYM(7)
++ .word 0xffff0fc0
+END_FUNC(opal_atomic_sub_32)
diff -urNp openmpi-1.6.3_orig/opal/asm/base/ARMV6.asm openmpi-1.6.3/opal/asm/base/ARMV6.asm
--- openmpi-1.6.3_orig/opal/asm/base/ARMV6.asm 1969-12-31 19:00:00.000000000 -0500
@@ -649,3 +637,5 @@ diff -urNp openmpi-1.6.3_orig/opal/config/opal_config_asm.m4 openmpi-1.6.3/opal/
AC_DEFINE_UNQUOTED([OPAL_ASM_ARM_VERSION], [$OPAL_ASM_ARM_VERSION],
[What ARM assembly version to use])
OMPI_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)'
+Binary files openmpi-1.6.3_orig/opal/include/opal/sys/arm/.atomic.h.swp and openmpi-1.6.3/opal/include/opal/sys/arm/.atomic.h.swp differ
+
diff --git a/openmpi.spec b/openmpi.spec
index cb31a70..204b094 100644
--- a/openmpi.spec
+++ b/openmpi.spec
@@ -19,7 +19,7 @@
Name: openmpi%{?_cc_name_suffix}
Version: 1.6.3
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: Open Message Passing Interface
Group: Development/Libraries
License: BSD, MIT and Romio
@@ -243,6 +243,9 @@ make check
%{_sysconfdir}/rpm/macros.%{namearch}
%changelog
+* Sun Nov 18 2012 Peter Robinson <pbrobinson at fedoraproject.org> 1.6.3-6
+- Update atomics patch for ARM (thanks to Jon Masters)
+
* Sun Nov 11 2012 Peter Robinson <pbrobinson at fedoraproject.org> 1.6.3-5
- Atomics patch to fix building on ARM (thanks to Jon Masters)
More information about the scm-commits
mailing list