[Pkg-openmpi-commits] r345 - in /openmpi/trunk/debian: changelog control patches/mips-detection.diff patches/mips-support-fix.diff patches/mips-support-upstream-1.7.3.diff patches/series

sylvestre at users.alioth.debian.org sylvestre at users.alioth.debian.org
Fri Dec 13 10:01:17 UTC 2013


Author: sylvestre
Date: Fri Dec 13 10:01:17 2013
New Revision: 345

URL: http://svn.debian.org/wsvn/pkg-openmpi/?sc=1&rev=345
Log:
* Also support of mips & mipsel. Thanks to Jurica Stanojkovic
  (Closes: #732027)
* Standards-Version updated to 3.9.5

Added:
    openmpi/trunk/debian/patches/mips-detection.diff
    openmpi/trunk/debian/patches/mips-support-fix.diff
    openmpi/trunk/debian/patches/mips-support-upstream-1.7.3.diff
Modified:
    openmpi/trunk/debian/changelog
    openmpi/trunk/debian/control
    openmpi/trunk/debian/patches/series

Modified: openmpi/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/debian/changelog?rev=345&op=diff
==============================================================================
--- openmpi/trunk/debian/changelog	(original)
+++ openmpi/trunk/debian/changelog	Fri Dec 13 10:01:17 2013
@@ -2,7 +2,10 @@
 
   * Add the support of mips64 & mips64el. (Closes: #727141)
     Thanks to YunQiang Su
+  * Also support of mips & mipsel. Thanks to Jurica Stanojkovic
+    (Closes: #732027)
   * Fix an upgrade issue (Closes: #730622)
+  * Standards-Version updated to 3.9.5
 
  -- Sylvestre Ledru <sylvestre at debian.org>  Wed, 04 Dec 2013 18:14:59 +0100
 

Modified: openmpi/trunk/debian/control
URL: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/debian/control?rev=345&op=diff
==============================================================================
--- openmpi/trunk/debian/control	(original)
+++ openmpi/trunk/debian/control	Fri Dec 13 10:01:17 2013
@@ -10,13 +10,13 @@
  libnuma-dev [amd64 i386 ia64 mips mipsel mipsn32 mipsn32el mips64 mips64el powerpc], autoconf (>= 2.59),
  automake
 Build-Conflicts: libopenmpi1.3
-Standards-Version: 3.9.4
+Standards-Version: 3.9.5
 Homepage: http://www.open-mpi.org/
 Vcs-Svn: svn://svn.debian.org/svn/pkg-openmpi/openmpi/trunk/
 Vcs-Browser: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/
 
 Package: openmpi-bin
-Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el
+Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
 Depends: ${shlibs:Depends}, ${misc:Depends}, openmpi-common (= ${source:Version})
 Conflicts: openmpi-bin
 Suggests: gfortran, openmpi-checkpoint [amd64 armel armhf i386 powerpc]
@@ -45,7 +45,7 @@
 
 Package: libopenmpi-dev
 Section: libdevel
-Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el
+Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
 Depends: ${shlibs:Depends}, ${misc:Depends}, libopenmpi1.6 (= ${binary:Version}), openmpi-common (= ${source:Version}), libibverbs-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], libhwloc-dev
 Conflicts: openmpi-dev, libopenmpi-dev, openmpi-bin (<= 1.2.4-0)
 Description: high performance message passing library -- header files
@@ -60,7 +60,7 @@
 
 Package: libopenmpi1.6
 Section: libs
-Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el
+Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Conflicts: openmpi-libs0, libopenmpi1, libopenmpi1.3, libopenmpi2
 Replaces: openmpi-checkpoint (<< 1.6.5-1)
@@ -106,7 +106,7 @@
 
 Package: libopenmpi1.6-dbg
 Section: debug
-Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el
+Architecture: alpha amd64 armel armhf i386 ia64 powerpc powerpcspe ppc64 sparc sparc64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips64 mips64el mips mipsel
 Depends: ${misc:Depends}, openmpi-bin (= ${binary:Version}), libopenmpi1.6 (= ${binary:Version})
 Conflicts: openmpi-dbg, libopenmpi-dbg
 Description: high performance message passing library -- debug library

Added: openmpi/trunk/debian/patches/mips-detection.diff
URL: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/debian/patches/mips-detection.diff?rev=345&op=file
==============================================================================
--- openmpi/trunk/debian/patches/mips-detection.diff	(added)
+++ openmpi/trunk/debian/patches/mips-detection.diff	Fri Dec 13 10:01:17 2013
@@ -0,0 +1,39 @@
+Description: Support detection of mips, mipsel, mips64, mips64el architectures
+Author: Jurica Stanojkovic <Jurica.Stanojkovic at imgtec.com>
+
+--- openmpi-1.6.5.orig/configure
++++ openmpi-1.6.5/configure
+@@ -27231,8 +27231,13 @@ _ACEOF
+             OMPI_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)'
+             ;;
+ 
+-        mips-*|mips64*)
+-            # Should really find some way to make sure that we are on
++        mips-*|mipsel-*)
++            ompi_cv_asm_arch="MIPS"
++            OPAL_ASM_SUPPORT_64BIT=0
++            OMPI_GCC_INLINE_ASSIGN='"or %0,$0,$0" : "=&r"(ret)'
++            ;;
++	
++	mips64-*|mips64el-*)
+             # a MIPS III machine (r4000 and later)
+             ompi_cv_asm_arch="MIPS"
+             OPAL_ASM_SUPPORT_64BIT=1
+--- openmpi-1.6.5.orig/opal/config/opal_config_asm.m4
++++ openmpi-1.6.5/opal/config/opal_config_asm.m4
+@@ -930,8 +930,13 @@ AC_DEFUN([OMPI_CONFIG_ASM],[
+             OMPI_GCC_INLINE_ASSIGN='"mov %0, #0" : "=&r"(ret)'
+             ;;
+ 
+-        mips-*|mips64*)
+-            # Should really find some way to make sure that we are on
++        mips-*|mipsel-*)
++            ompi_cv_asm_arch="MIPS"
++            OPAL_ASM_SUPPORT_64BIT=0
++            OMPI_GCC_INLINE_ASSIGN='"or %0,[$]0,[$]0" : "=&r"(ret)'
++            ;;
++	
++	mips64-*|mips64el-*)
+             # a MIPS III machine (r4000 and later)
+             ompi_cv_asm_arch="MIPS"
+             OPAL_ASM_SUPPORT_64BIT=1

Added: openmpi/trunk/debian/patches/mips-support-fix.diff
URL: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/debian/patches/mips-support-fix.diff?rev=345&op=file
==============================================================================
--- openmpi/trunk/debian/patches/mips-support-fix.diff	(added)
+++ openmpi/trunk/debian/patches/mips-support-fix.diff	Fri Dec 13 10:01:17 2013
@@ -0,0 +1,95 @@
+Description:  Patch resolve issue of misinterpretation of assembler code from MIPS.asm
+ and fix mips64(el) assembler code.
+Author: Jurica Stanojkovic <Jurica.Stanojkovic at imgtec.com>
+
+--- openmpi-1.6.5.orig/opal/asm/base/MIPS.asm
++++ openmpi-1.6.5/opal/asm/base/MIPS.asm
+@@ -68,11 +68,11 @@ retry1:
+ #endif
+ 	beqz   $2, retry1
+ done1:                 
+-	.set reorder          
+ 
+ 	xor	$3,$3,$5
+ 	j	ra
+ 	sltu	$2,$3,1
++        .set reorder
+ END(opal_atomic_cmpset_32)
+ 
+ 
+@@ -104,11 +104,11 @@ done2:
+ #ifdef __linux__
+ 	.set mips0
+ #endif
+-	.set reorder          
+ 
+ 	xor	$3,$3,$5
+ 	j	ra
+ 	sltu	$2,$3,1
++	.set reorder
+ END(opal_atomic_cmpset_acq_32)
+ 
+ 	
+@@ -140,16 +140,16 @@ retry3:
+ #endif
+ 	beqz   $2, retry3   
+ done3:                 
+-	.set reorder          
+ 
+ 	xor	$3,$3,$5
+ 	j	ra
+ 	sltu	$2,$3,1
++	.set reorder
+ END(opal_atomic_cmpset_rel_32)
+ 	
+ #ifdef __mips64	
+ LEAF(opal_atomic_cmpset_64)
+-		.set noreorder        
++	.set noreorder        
+ retry4:                
+ 	lld    $3, 0($4)         
+ 	bne    $3, $5, done4   
+@@ -157,11 +157,11 @@ retry4:
+ 	scd    $2, 0($4)         
+ 	beqz   $2, retry4   
+ done4:                 
+-	.set reorder          
+ 
+-	xor	$4,$3,$5
++	xor	$3,$3,$5
+ 	j	ra
+-	sltu	$3,$4,1
++	sltu	$2,$3,1
++	.set reorder
+ END(opal_atomic_cmpset_64)
+ 
+ 
+@@ -174,11 +174,11 @@ retry5:
+ 	scd    $2, 0($4)         
+ 	beqz   $2, retry5   
+ done5:                 
+-	.set reorder          
+ 	sync
+-	xor	$4,$3,$5
++	xor	$3,$3,$5
+ 	j	ra
+-	sltu	$3,$4,1
++	sltu	$2,$3,1
++	.set reorder
+ END(opal_atomic_cmpset_acq_64)
+ 
+ 
+@@ -192,10 +192,10 @@ retry6:
+ 	scd    $2, 0($4)         
+ 	beqz   $2, retry6   
+ done6:                 
+-	.set reorder          
+ 
+-	xor	$4,$3,$5
++	xor	$3,$3,$5
+ 	j	ra
+-	sltu	$3,$4,1
++	sltu	$2,$3,1
++	.set reorder
+ END(opal_atomic_cmpset_rel_64)
+ #endif /* __mips64 */

Added: openmpi/trunk/debian/patches/mips-support-upstream-1.7.3.diff
URL: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/debian/patches/mips-support-upstream-1.7.3.diff?rev=345&op=file
==============================================================================
--- openmpi/trunk/debian/patches/mips-support-upstream-1.7.3.diff	(added)
+++ openmpi/trunk/debian/patches/mips-support-upstream-1.7.3.diff	Fri Dec 13 10:01:17 2013
@@ -0,0 +1,225 @@
+Description: Patches MIPS.asm and mips/atomic.h files to a 1.7.3 version of source
+Author: Jurica Stanojkovic <Jurica.Stanojkovic at imgtec.com>
+
+--- openmpi-1.6.5.orig/opal/asm/base/MIPS.asm
++++ openmpi-1.6.5/opal/asm/base/MIPS.asm
+@@ -1,26 +1,48 @@
+ START_FILE
+ 
++#ifdef __linux__
+ #include <sys/asm.h>
++#else
++#include <asm.h>
++#endif
+ #include <regdef.h>
+ 	
+ 	TEXT
+ 
+ 	ALIGN(8)
+ LEAF(opal_atomic_mb)
+-	sync
++#ifdef __linux__
++	.set mips2
++#endif
++	sync
++#ifdef __linux__
++	.set mips0
++#endif	
+ 	j	ra
+ END(opal_atomic_mb)
+ 
+ 	
+ 	ALIGN(8)
+ LEAF(opal_atomic_rmb)
+-	sync
++#ifdef __linux__
++	.set mips2
++#endif
++	sync
++#ifdef __linux__
++	.set mips0
++#endif
+ 	j	ra
+ END(opal_atomic_rmb)
+ 	
+ 	
+ LEAF(opal_atomic_wmb)
+-	sync
++#ifdef __linux__
++	.set mips2
++#endif
++	sync
++#ifdef __linux__
++	.set mips0
++#endif
+ 	j	ra
+ END(opal_atomic_wmb)
+ 
+@@ -28,10 +50,22 @@ END(opal_atomic_wmb)
+ LEAF(opal_atomic_cmpset_32)
+ 	.set noreorder        
+ retry1:                
++#ifdef __linux__
++	.set mips2
++#endif
+ 	ll     $3, 0($4)         
++#ifdef __linux__
++	.set mips0
++#endif
+ 	bne    $3, $5, done1   
+ 	or     $2, $6, 0      
++#ifdef __linux__
++	.set mips2
++#endif
+ 	sc     $2, 0($4)         
++#ifdef __linux__
++	.set mips0
++#endif
+ 	beqz   $2, retry1
+ done1:                 
+ 	.set reorder          
+@@ -45,13 +79,31 @@ END(opal_atomic_cmpset_32)
+ LEAF(opal_atomic_cmpset_acq_32)
+ 	.set noreorder        
+ retry2:                
++#ifdef __linux__
++	.set mips2
++#endif
+ 	ll     $3, 0($4)         
++#ifdef __linux__
++	.set mips0
++#endif
+ 	bne    $3, $5, done2   
+ 	or     $2, $6, 0      
++#ifdef __linux__
++	.set mips2
++#endif
+ 	sc     $2, 0($4)         
++#ifdef __linux__
++	.set mips0
++#endif
+ 	beqz   $2, retry2   
+ done2:                 
+-	sync
++#ifdef __linux__
++	.set mips2
++#endif
++	sync
++#ifdef __linux__
++	.set mips0
++#endif
+ 	.set reorder          
+ 
+ 	xor	$3,$3,$5
+@@ -62,12 +114,30 @@ END(opal_atomic_cmpset_acq_32)
+ 	
+ LEAF(opal_atomic_cmpset_rel_32)
+ 	.set noreorder        
+-	sync
++#ifdef __linux__
++	.set mips2
++#endif
++	sync
++#ifdef __linux__
++	.set mips0
++#endif
+ retry3:                
++#ifdef __linux__
++	.set mips2
++#endif
+ 	ll     $3, 0($4)         
++#ifdef __linux__
++	.set mips0
++#endif
+ 	bne    $3, $5, done3   
+ 	or     $2, $6, 0      
++#ifdef __linux__
++	.set mips2
++#endif
+ 	sc     $2, 0($4)         
++#ifdef __linux__
++	.set mips0
++#endif
+ 	beqz   $2, retry3   
+ done3:                 
+ 	.set reorder          
+@@ -77,7 +147,7 @@ done3:
+ 	sltu	$2,$3,1
+ END(opal_atomic_cmpset_rel_32)
+ 	
+-	
++#ifdef __mips64	
+ LEAF(opal_atomic_cmpset_64)
+ 		.set noreorder        
+ retry4:                
+@@ -128,3 +198,4 @@ done6:
+ 	j	ra
+ 	sltu	$3,$4,1
+ END(opal_atomic_cmpset_rel_64)
++#endif /* __mips64 */
+--- openmpi-1.6.5.orig/opal/include/opal/sys/mips/atomic.h
++++ openmpi-1.6.5/opal/include/opal/sys/mips/atomic.h
+@@ -23,10 +23,17 @@
+ #if OPAL_WANT_SMP_LOCKS
+ 
+ /* BWB - FIX ME! */
++#ifdef __linux__
++#define MB() __asm__ __volatile__(".set mips2; sync; .set mips0": : :"memory")
++#define RMB() __asm__ __volatile__(".set mips2; sync; .set mips0": : :"memory")
++#define WMB() __asm__ __volatile__(".set mips2; sync; .set mips0": : :"memory")
++#define SMP_SYNC ".set mips2; sync; .set mips0"
++#else
+ #define MB() __asm__ __volatile__("sync": : :"memory")
+ #define RMB() __asm__ __volatile__("sync": : :"memory")
+ #define WMB() __asm__ __volatile__("sync": : :"memory")
+ #define SMP_SYNC "sync"
++#endif
+ 
+ #else
+ 
+@@ -46,8 +53,10 @@
+ #define OPAL_HAVE_ATOMIC_MEM_BARRIER 1
+ 
+ #define OPAL_HAVE_ATOMIC_CMPSET_32 1
+-#define OPAL_HAVE_ATOMIC_CMPSET_64 1
+ 
++#ifdef __mips64
++#define OPAL_HAVE_ATOMIC_CMPSET_64 1
++#endif
+ 
+ /**********************************************************************
+  *
+@@ -93,10 +102,16 @@ static inline int opal_atomic_cmpset_32(
+    __asm__ __volatile__ (".set noreorder        \n"
+                          ".set noat             \n"
+                          "1:                    \n"
++#ifdef __linux__
++                         ".set mips2         \n\t"
++#endif
+                          "ll     %0, %2         \n" /* load *addr into ret */
+                          "bne    %0, %z3, 2f    \n" /* done if oldval != ret */
+                          "or     $1, %z4, 0     \n" /* tmp = newval (delay slot) */
+                          "sc     $1, %2         \n" /* store tmp in *addr */
++#ifdef __linux__
++                         ".set mips0         \n\t"
++#endif
+                          /* note: ret will be 0 if failed, 1 if succeeded */
+                          "beqz   $1, 1b         \n" /* if 0 jump back to 1b */
+ 			 "nop                   \n" /* fill delay slots */
+@@ -133,7 +148,7 @@ static inline int opal_atomic_cmpset_rel
+     return opal_atomic_cmpset_32(addr, oldval, newval);
+ }
+ 
+-
++#ifdef OPAL_HAVE_ATOMIC_CMPSET_64
+ static inline int opal_atomic_cmpset_64(volatile int64_t *addr,
+                                         int64_t oldval, int64_t newval)
+ {
+@@ -182,6 +197,7 @@ static inline int opal_atomic_cmpset_rel
+     opal_atomic_wmb();
+     return opal_atomic_cmpset_64(addr, oldval, newval);
+ }
++#endif /* OPAL_HAVE_ATOMIC_CMPSET_64 */
+ 
+ #endif /* OMPI_GCC_INLINE_ASSEMBLY */
+ 

Modified: openmpi/trunk/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-openmpi/openmpi/trunk/debian/patches/series?rev=345&op=diff
==============================================================================
--- openmpi/trunk/debian/patches/series	(original)
+++ openmpi/trunk/debian/patches/series	Fri Dec 13 10:01:17 2013
@@ -11,3 +11,6 @@
 arm_detection.diff
 fix-bashims.diff
 fix-testsuite-compile
+mips-detection.diff
+mips-support-upstream-1.7.3.diff
+mips-support-fix.diff




More information about the Pkg-openmpi-commits mailing list