diff -Nru mpich2-1.4.1/debian/changelog mpich2-1.4.1/debian/changelog --- mpich2-1.4.1/debian/changelog 2012-12-16 17:06:08.000000000 -0800 +++ mpich2-1.4.1/debian/changelog 2013-01-31 08:33:18.000000000 -0800 @@ -1,3 +1,10 @@ +mpich2 (1.4.1-4.1+x32) unreleased; urgency=low + + * Patch configure.in to avoid incorrectly using Pentium assembly on x32. + + Use dh-autoreconf to regenerate configure. + + -- Daniel Schepler Thu, 31 Jan 2013 08:33:02 -0800 + mpich2 (1.4.1-4.1) unstable; urgency=low * Non-maintainer upload. diff -Nru mpich2-1.4.1/debian/patches/series mpich2-1.4.1/debian/patches/series --- mpich2-1.4.1/debian/patches/series 2012-01-15 18:22:50.000000000 -0800 +++ mpich2-1.4.1/debian/patches/series 2013-01-31 08:24:49.000000000 -0800 @@ -1,2 +1,3 @@ destdir.patch link-libs.patch +x32-asm.patch diff -Nru mpich2-1.4.1/debian/patches/x32-asm.patch mpich2-1.4.1/debian/patches/x32-asm.patch --- mpich2-1.4.1/debian/patches/x32-asm.patch 1969-12-31 16:00:00.000000000 -0800 +++ mpich2-1.4.1/debian/patches/x32-asm.patch 2013-01-31 08:54:12.000000000 -0800 @@ -0,0 +1,62 @@ +Index: mpich2-1.4.1/configure.in +=================================================================== +--- mpich2-1.4.1.orig/configure.in 2011-08-15 16:27:55.000000000 -0700 ++++ mpich2-1.4.1/configure.in 2013-01-31 08:35:10.000000000 -0800 +@@ -4722,7 +4722,7 @@ + long int newval = 20; + char ret; + long int readval; +-__asm__ __volatile__ ("lock; cmpxchgl %3, %1; sete %0" ++__asm__ __volatile__ ("push %%ecx; pop %%ecx; lock; cmpxchgl %3, %1; sete %0" + : "=q" (ret), "=m" (*p), "=a" (readval) + : "r" (newval), "m" (*p), "a" (oldval) : "memory"); + return (compval == 20) ? 0 : -1; +@@ -4742,12 +4742,12 @@ + AC_TRY_RUN([ + int main(int argc, char *argv[]) + { +-long int compval = 10; +-volatile long int *p = &compval; +-long int oldval = 10; +-long int newval = 20; ++long long int compval = 10; ++volatile long long int *p = &compval; ++long long int oldval = 10; ++long long int newval = 20; + char ret; +-long int readval; ++long long int readval; + __asm__ __volatile__ ("lock; cmpxchgq %3, %1; sete %0" + : "=q" (ret), "=m" (*p), "=a" (readval) + : "r" (newval), "m" (*p), "a" (oldval) : "memory"); +Index: mpich2-1.4.1/configure +=================================================================== +--- mpich2-1.4.1.orig/configure 2011-08-24 12:40:25.000000000 -0700 ++++ mpich2-1.4.1/configure 2013-01-31 08:53:26.000000000 -0800 +@@ -25537,7 +25537,7 @@ + long int newval = 20; + char ret; + long int readval; +-__asm__ __volatile__ ("lock; cmpxchgl %3, %1; sete %0" ++__asm__ __volatile__ ("push %%ecx; pop %%ecx; lock; cmpxchgl %3, %1; sete %0" + : "=q" (ret), "=m" (*p), "=a" (readval) + : "r" (newval), "m" (*p), "a" (oldval) : "memory"); + return (compval == 20) ? 0 : -1; +@@ -25579,12 +25579,12 @@ + + int main(int argc, char *argv[]) + { +-long int compval = 10; +-volatile long int *p = &compval; +-long int oldval = 10; +-long int newval = 20; ++long long int compval = 10; ++volatile long long int *p = &compval; ++long long int oldval = 10; ++long long int newval = 20; + char ret; +-long int readval; ++long long int readval; + __asm__ __volatile__ ("lock; cmpxchgq %3, %1; sete %0" + : "=q" (ret), "=m" (*p), "=a" (readval) + : "r" (newval), "m" (*p), "a" (oldval) : "memory");