[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#489173: marked as done (Support for mips/mipsel)



Your message dated Fri, 13 Dec 2013 10:49:54 +0000
with message-id <E1VrQJe-0001EX-1B@franck.debian.org>
and subject line Accepted openmpi 1.6.5-6 (source amd64 all)
has caused the Debian Bug report #489173,
regarding Support for mips/mipsel
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
489173: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=489173
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: openmpi
Version: 1.2.7~rc2-1
Tags: patch
Severity: wishlist

I believe the appended patch is sufficient to add Linux/MIPS support
to openmpi (for both the mips and mipsel variants). That said, I wasn't
able to build and test it, due to some libtool-induced trouble:

- With just this patch, ./libtool gets triggered and falls over an
  undefined CDPATH variable:

[...]
Making all in asm
make[3]: Entering directory `/srv/ths/debian/openmpi/openmpi-1.2.7~rc2/opal/asm'
depbase=`echo asm.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
	/bin/sh ../../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../opal/include -I../../orte/include -I../../ompi/include   -I../..    -DNDEBUG -Wall -g -O2 -finline-functions -fno-strict-aliasing -pthread -MT asm.lo -MD -MP -MF $depbase.Tpo -c -o asm.lo asm.c &&\
	mv -f $depbase.Tpo $depbase.Plo
../../libtool: line 463: CDPATH: command not found
../../libtool: line 1266: func_opt_split: command not found
libtool: Version mismatch error.  This is libtool 2.1a, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.1a
libtool: and run autoconf again.
make[3]: *** [asm.lo] Error 63
make[3]: Leaving directory `/srv/ths/debian/openmpi/openmpi-1.2.7~rc2/opal/asm'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/srv/ths/debian/openmpi/openmpi-1.2.7~rc2/opal'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/srv/ths/debian/openmpi/openmpi-1.2.7~rc2'
make: *** [build] Error 2
dpkg-buildpackage: failure: debian/rules build gave error exit status 2


- The native approach of re-libtoolizing broke down in opal/libltdl,
  which does some special libtool handling I couldn't figure out.


Thiemo


Index: openmpi-1.2.7~rc2/config/ompi_config_asm.m4
===================================================================
--- openmpi-1.2.7~rc2.orig/config/ompi_config_asm.m4	2007-12-06 20:20:58.000000000 +0000
+++ openmpi-1.2.7~rc2/config/ompi_config_asm.m4	2008-07-03 18:21:34.000000000 +0100
@@ -873,6 +873,18 @@
             OMPI_GCC_INLINE_ASSIGN='"bis [$]31,[$]31,%0" : "=&r"(ret)'
             ;;
 
+        mips64*-linux-*)
+            ompi_cv_asm_arch="MIPS"
+            OMPI_ASM_SUPPORT_64BIT=1
+            OMPI_GCC_INLINE_ASSIGN='"or %0,[$]0,[$]0" : "=&r"(ret)'
+            ;;
+
+        mips*-linux-*)
+            ompi_cv_asm_arch="MIPS"
+            OMPI_ASM_SUPPORT_64BIT=0
+            OMPI_GCC_INLINE_ASSIGN='"or %0,[$]0,[$]0" : "=&r"(ret)'
+            ;;
+
         mips-*|mips64-*)
             # Should really find some way to make sure that we are on
             # a MIPS III machine (r4000 and later)
Index: openmpi-1.2.7~rc2/debian/control
===================================================================
--- openmpi-1.2.7~rc2.orig/debian/control	2008-07-03 18:21:22.000000000 +0100
+++ openmpi-1.2.7~rc2/debian/control	2008-07-03 18:21:34.000000000 +0100
@@ -12,7 +12,7 @@
 XS-Dm-Upload-Allowed: yes
 
 Package: openmpi-bin
-Architecture: alpha amd64 i386 ia64 powerpc ppc64 sparc kfreebsd-i386 kfreebsd-amd64 hurd-i386
+Architecture: alpha amd64 i386 ia64 powerpc ppc64 sparc kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips mipsel
 Depends: ${shlibs:Depends}, ${misc:Depends}, openmpi-common (= ${source:Version})
 Suggests: gfortran
 Description: high performance message passing library -- binaries
@@ -40,7 +40,7 @@
 
 Package: libopenmpi-dev
 Section: libdevel
-Architecture: alpha amd64 i386 ia64 powerpc ppc64 sparc kfreebsd-i386 kfreebsd-amd64 hurd-i386
+Architecture: alpha amd64 i386 ia64 powerpc ppc64 sparc kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips mipsel
 Depends: ${shlibs:Depends}, libopenmpi1 (= ${binary:Version}), openmpi-common (= ${source:Version})
 Conflicts: libopal-dev, pgapack (<= 1.0.0.1-4.2), openmpi-dev
 Replaces: openmpi-dev, openmpi-bin (<= 1.2.4-0)
@@ -57,7 +57,7 @@
 
 Package: libopenmpi1
 Section: libs
-Architecture: alpha amd64 i386 ia64 powerpc ppc64 sparc kfreebsd-i386 kfreebsd-amd64 hurd-i386
+Architecture: alpha amd64 i386 ia64 powerpc ppc64 sparc kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips mipsel
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Conflicts: openmpi-libs0
 Replaces: openmpi-libs0
@@ -100,7 +100,7 @@
 
 Package: libopenmpi-dbg
 Section: devel
-Architecture: alpha amd64 i386 ia64 powerpc ppc64 sparc kfreebsd-i386 kfreebsd-amd64 hurd-i386
+Architecture: alpha amd64 i386 ia64 powerpc ppc64 sparc kfreebsd-i386 kfreebsd-amd64 hurd-i386 mips mipsel
 Depends: openmpi-bin (= ${binary:Version}), libopenmpi1 (= ${binary:Version})
 Conflicts: openmpi-dbg
 Replaces: openmpi-dbg
Index: openmpi-1.2.7~rc2/opal/asm/asm-data.txt
===================================================================
--- openmpi-1.2.7~rc2.orig/opal/asm/asm-data.txt	2006-11-09 18:53:28.000000000 +0000
+++ openmpi-1.2.7~rc2/opal/asm/asm-data.txt	2008-07-03 18:21:34.000000000 +0100
@@ -126,3 +126,7 @@
 # means that we can use the same code either way.  Woo hoo!
 
 MIPS	default-.text-.globl-:--L--1-1-1-1-0	mips-irix
+MIPS	default-.text-.globl-:--L-@-1-1-1-1-1	mips64-linux
+
+# However, this doesn't hold true for 32-bit MIPS as used on Linux.
+MIPS	default-.text-.globl-:--L-@-1-1-1-0-1	mips-linux
Index: openmpi-1.2.7~rc2/opal/include/opal/sys/mips/atomic.h
===================================================================
--- openmpi-1.2.7~rc2.orig/opal/include/opal/sys/mips/atomic.h	2006-08-15 21:13:38.000000000 +0100
+++ openmpi-1.2.7~rc2/opal/include/opal/sys/mips/atomic.h	2008-07-03 18:21:34.000000000 +0100
@@ -23,10 +23,17 @@
 #if OMPI_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
 
 /**********************************************************************
  *
@@ -92,16 +101,23 @@
     int32_t tmp;
 
    __asm__ __volatile__ ("\t"
-                         ".set noreorder        \n"
-                         "1:                \n\t"
-                         "ll     %0, %2         \n\t" /* load *addr into ret */
-                         "bne    %0, %3, 2f   \n\t" /* done if oldval != ret */
-                         "or     %5, %4, 0      \n\t" /* ret = newval */
-                         "sc     %5, %2         \n\t" /* store ret in *addr */
+                         ".set noreorder     \n"
+                         "1:                 \n\t"
+#ifdef __linux__
+                         ".set mips2         \n\t"
+#endif
+                         "ll     %0, %2      \n\t" /* load *addr into ret */
+                         "bne    %0, %3, 2f  \n\t" /* done if oldval != ret */
+                         "or     %5, %4, 0   \n\t" /* ret = newval */
+                         "sc     %5, %2      \n\t" /* store ret in *addr */
+#ifdef __linux__
+                         ".set mips0         \n\t"
+#endif
                          /* note: ret will be 0 if failed, 1 if succeeded */
 			 "bne    %5, 1, 1b   \n\t"
+			 "nop                \n"
                          "2:                 \n\t"
-                         ".set reorder          \n"
+                         ".set reorder       \n"
                          : "=&r"(ret), "=m"(*addr)
                          : "m"(*addr), "r"(oldval), "r"(newval), "r"(tmp)
                          : "cc", "memory");
@@ -133,7 +149,7 @@
     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)
 {
@@ -141,16 +157,17 @@
     int64_t tmp;
 
    __asm__ __volatile__ ("\t"
-                         ".set noreorder        \n"
-                         "1:                \n\t"
-                         "lld    %0, %2         \n\t" /* load *addr into ret */
-                         "bne    %0, %3, 2f   \n\t" /* done if oldval != ret */
-                         "or     %5, %4, 0      \n\t" /* tmp = newval */
-                         "scd    %5, %2         \n\t" /* store tmp in *addr */
+                         ".set noreorder     \n"
+                         "1:                 \n\t"
+                         "lld    %0, %2      \n\t" /* load *addr into ret */
+                         "bne    %0, %3, 2f  \n\t" /* done if oldval != ret */
+                         "or     %5, %4, 0   \n\t" /* tmp = newval */
+                         "scd    %5, %2      \n\t" /* store tmp in *addr */
                          /* note: ret will be 0 if failed, 1 if succeeded */
-			 "bne    %5, 1, 1b   \n"
+			 "bne    %5, 1, 1b   \n\t"
+			 "nop                \n"
                          "2:                 \n\t"
-                         ".set reorder          \n"
+                         ".set reorder       \n"
                          : "=&r" (ret), "=m" (*addr)
                          : "m" (*addr), "r" (oldval), "r" (newval),
 			   "r"(tmp)
@@ -183,6 +200,7 @@
     opal_atomic_wmb();
     return opal_atomic_cmpset_64(addr, oldval, newval);
 }
+#endif /* OPAL_HAVE_ATOMIC_CMPSET_64 */
 
 #endif /* OMPI_GCC_INLINE_ASSEMBLY */
 
Index: openmpi-1.2.7~rc2/opal/asm/base/MIPS.asm
===================================================================
--- openmpi-1.2.7~rc2.orig/opal/asm/base/MIPS.asm	2006-08-15 21:13:33.000000000 +0100
+++ openmpi-1.2.7~rc2/opal/asm/base/MIPS.asm	2008-07-03 18:21:34.000000000 +0100
@@ -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 @@
 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
 	bne    $2, 1, retry1
 done1:                 
 	.set reorder          
@@ -45,13 +79,31 @@
 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
 	bne    $2, 1, retry2   
 done2:                 
-	sync
+#ifdef __linux__
+	.set mips2
+#endif
+	sync
+#ifdef __linux__
+	.set mips0
+#endif
 	.set reorder          
 
 	xor	$3,$3,$5
@@ -62,12 +114,30 @@
 	
 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
 	bne    $2, 1, retry3   
 done3:                 
 	.set reorder          
@@ -76,8 +146,8 @@
 	j	ra
 	sltu	$2,$3,1
 END(opal_atomic_cmpset_rel_32)
-	
-	
+
+#ifdef __mips64
 LEAF(opal_atomic_cmpset_64)
 		.set noreorder        
 retry4:                
@@ -128,3 +198,4 @@
 	j	ra
 	sltu	$3,$4,1
 END(opal_atomic_cmpset_rel_64)
+#endif /* __mips64 */
Index: openmpi-1.2.7~rc2/debian/rules
===================================================================
--- openmpi-1.2.7~rc2.orig/debian/rules	2008-07-03 18:21:22.000000000 +0100
+++ openmpi-1.2.7~rc2/debian/rules	2008-07-03 18:21:34.000000000 +0100
@@ -28,7 +28,7 @@
 
 config.status: #patch-stamp
 	dh_testdir
-	CFLAGS="$(CFLAGS)" ./configure 				\
+	CFLAGS="$(CFLAGS)" CCASFLAGS="-xassembler-with-cpp" ./configure \
 			$(CROSS)				\
 			--prefix=/usr 				\
 			--mandir=\$${prefix}/share/man 		\



--- End Message ---
--- Begin Message ---
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Wed, 04 Dec 2013 18:14:59 +0100
Source: openmpi
Binary: openmpi-bin libopenmpi-dev libopenmpi1.6 openmpi-common openmpi-doc libopenmpi1.6-dbg openmpi-checkpoint
Architecture: source amd64 all
Version: 1.6.5-6
Distribution: unstable
Urgency: low
Maintainer: Debian Open MPI Maintainers <pkg-openmpi-maintainers@lists.alioth.debian.org>
Changed-By: Sylvestre Ledru <sylvestre@debian.org>
Description: 
 libopenmpi-dev - high performance message passing library -- header files
 libopenmpi1.6 - high performance message passing library -- shared library
 libopenmpi1.6-dbg - high performance message passing library -- debug library
 openmpi-bin - high performance message passing library -- binaries
 openmpi-checkpoint - high performance message passing library -- checkpoint support
 openmpi-common - high performance message passing library -- common files
 openmpi-doc - high performance message passing library -- man pages
Closes: 727141 730622 732027
Changes: 
 openmpi (1.6.5-6) unstable; urgency=low
 .
   * 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
Checksums-Sha1: 
 5a06c69beacb2ca463898345c72b2331259cb042 2762 openmpi_1.6.5-6.dsc
 15903649d363719775df481184439d1d3a9d74ca 30787 openmpi_1.6.5-6.debian.tar.gz
 a7645c03610a8715e2547eadc066bd856980248a 152922 openmpi-bin_1.6.5-6_amd64.deb
 aca533a48ba15ec1ef2353f4dba0550ae24f12e4 447054 libopenmpi-dev_1.6.5-6_amd64.deb
 96e1c45127afc07bcf2a7d070a4441b4b5c7af63 1414972 libopenmpi1.6_1.6.5-6_amd64.deb
 5255937752504cb22f0d952670fb471ee0c9caad 110362 openmpi-common_1.6.5-6_all.deb
 6d39b5bacf734896e3c27ecbadc36f956b7e944d 492000 openmpi-doc_1.6.5-6_all.deb
 2fedd43e84a5659526b3938b748d947a41fecee7 4946180 libopenmpi1.6-dbg_1.6.5-6_amd64.deb
 1bc63d0becebfbb238671d31ad4d62cfcf121cb6 95612 openmpi-checkpoint_1.6.5-6_amd64.deb
Checksums-Sha256: 
 c93f1dd3135693d20441a83d5b555698344553eeb200505a1bd9170b28e1f559 2762 openmpi_1.6.5-6.dsc
 36d2b4e2c024d0e277d7bc580bca0dd2749ceb0e29042bf18ca66eb240e8fae1 30787 openmpi_1.6.5-6.debian.tar.gz
 1bd27cf2bed95dac1e5d8a77cdaf7af337a9c10a04d9a42e6db31137bee58937 152922 openmpi-bin_1.6.5-6_amd64.deb
 6154a6f42e8d67fae6ccd50d78655ebdecb47671c747c2d788ae72b194590666 447054 libopenmpi-dev_1.6.5-6_amd64.deb
 912b6655d9b5f7f21e982854538bcc9f73271832e1d1c3ab58e567a50bfece88 1414972 libopenmpi1.6_1.6.5-6_amd64.deb
 68a54110693613950b09b1780a6e2a720be2b3e2b78b9667098fb0453270723d 110362 openmpi-common_1.6.5-6_all.deb
 0697938292b3c55efe052db78041e1fcce213227980d7ad4544a35a5c9cb836e 492000 openmpi-doc_1.6.5-6_all.deb
 f16b93fd8655a7caa93c5a727dc0e449e632da50dcffcbf7f790700404d8e69f 4946180 libopenmpi1.6-dbg_1.6.5-6_amd64.deb
 cdee46eb6554dd4bdb51236d033f33c2386c683344c32138622325f31706e2fc 95612 openmpi-checkpoint_1.6.5-6_amd64.deb
Files: 
 0649b1464de7a4169d87e57a8fcfc158 2762 net extra openmpi_1.6.5-6.dsc
 f753eee904466bbbc30c8a3650c657fe 30787 net extra openmpi_1.6.5-6.debian.tar.gz
 077563f51c2b4daaf64d101221bd66e7 152922 net extra openmpi-bin_1.6.5-6_amd64.deb
 33d168446d600a58074cb6a8a188292e 447054 libdevel extra libopenmpi-dev_1.6.5-6_amd64.deb
 067b8c0d8830919ff1ca00d7023a4a7e 1414972 libs extra libopenmpi1.6_1.6.5-6_amd64.deb
 8b7917d92e8064761c22da88788f6ca6 110362 net extra openmpi-common_1.6.5-6_all.deb
 9f9c7b4a6ff89677605dfada660f0baf 492000 doc extra openmpi-doc_1.6.5-6_all.deb
 b248d26a6ec8a13e9d8c28697e68f107 4946180 debug extra libopenmpi1.6-dbg_1.6.5-6_amd64.deb
 922f5ee365beecab13e4efe9a1deb3cc 95612 net extra openmpi-checkpoint_1.6.5-6_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.15 (GNU/Linux)

iQIcBAEBCAAGBQJSquRmAAoJEH5lKNp1LxvhWwEQAJqdyILgYgDaIY5RaVgMI5aN
dGC7KA3ozHiUrSjwsZvg2lYle4qExxiy7TCe9LnYyEHOCJvBMXdpG5ryZCT1IB0t
uyemhP10ADjq7EwdKqZHwGT5IRAjj3Trci88Q33Z2UIeQ7+y9TsiyaTnLwl3D/se
IYoi7feuKNE8MUWydJfpDvgdChk/rVmXS8KkqjJCvol0LGUdWvhhJXL+fmKxoiJv
ty9cSwt8wQHGkdMBxaWT7sT0idsNJMV/7KNu9ArdCvWHMOQucKOyX+3SDXwSbZZA
2N+v4v3ZIRZt5c6TIeTHCGnwYgs9yyTb79dWDUkvdcZLuD9lgDzS4FzbBsHlpFhl
Iwk5tzSvZbgdn3195Zy/4nV0zSpuz5HKkNt/uAymrO09ewMCxxcSKA+UR6e1r/Fh
a7Ybxy5gROOFkp1kmQqdSmbxZJtF3SuG7KRAVYtyH1QRkgMGSuPUdiDVhaX3dJri
bB1mBQrtnFAqalMGUE00YI+XP6+VnA6d9zkKrn6lEKoWrVy30MMGkVoM35YdSDjz
P3IakrGPfWaB/f8OQmAJB2ZxNpMi33seHbQ7ch5gWivB9FNplDQqI4DvTmm1sHT3
WIX2oELyd0LAPZ5YX9bmI0qI790FWcto6TEx7WWmj7aheYl+Av2utQZmjlrKlKjG
tRr46OXgUVGP4Dpck6rW
=WSqA
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: