[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