Dear maintainer, I've prepared an NMU for dsdp (versioned as 5.8-9.3). The diff is attached to this message.
Regards, James
diff -Nru dsdp-5.8/debian/changelog dsdp-5.8/debian/changelog --- dsdp-5.8/debian/changelog 2017-03-28 08:22:18.000000000 +0100 +++ dsdp-5.8/debian/changelog 2017-03-28 17:46:46.000000000 +0100 @@ -1,3 +1,11 @@ +dsdp (5.8-9.3) unstable; urgency=medium + + * Non-maintainer upload. + * Use correct integer type for Fortran prototypes and variables + (Closes: #857067) + + -- James Clarke <jrt...@debian.org> Tue, 28 Mar 2017 17:46:46 +0100 + dsdp (5.8-9.2) unstable; urgency=medium * Non-maintainer upload. diff -Nru dsdp-5.8/debian/patches/ffinteger-type-mismatch.patch dsdp-5.8/debian/patches/ffinteger-type-mismatch.patch --- dsdp-5.8/debian/patches/ffinteger-type-mismatch.patch 1970-01-01 01:00:00.000000000 +0100 +++ dsdp-5.8/debian/patches/ffinteger-type-mismatch.patch 2017-03-28 17:45:50.000000000 +0100 @@ -0,0 +1,39 @@ +Description: Use correct integer type for Fortran prototypes and variables + GNU Fortran's default integer width is 32-bit, the same as GCC, therefore use + int rather than long int when interfacing with Fortran. This was an issue on + 64-bit big-endian systems, since the upper 32 bits of the long would be set, + which would also be lost when truncating to a 32-bit integer. +Author: James Clarke <jrt...@debian.org> +Bug-Debian: https://bugs.debian.org/857067 +Last-Update: 2017-03-28 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/include/dsdplapack.h ++++ b/include/dsdplapack.h +@@ -4,11 +4,11 @@ + \file dsdplapack.h + \brief DSDP uses BLAS and LAPACK for many of its operations. + */ +- +-typedef long int ffinteger; + /* +-typedef int ffinteger; ++typedef long int ffinteger; + */ ++typedef int ffinteger; ++ + /* + #define __DSDP_NONAMEMANGLING + #undef __DSDP_NONAMEMANGLING +--- a/src/vecmat/dtrsm2.c ++++ b/src/vecmat/dtrsm2.c +@@ -1,7 +1,7 @@ + #include "dsdplapack.h" + +-typedef long int integer; +-typedef long int logical; ++typedef int integer; ++typedef int logical; + + #define max(a,b) ((a) >= (b) ? (a) : (b)) + #define dmax(a,b) (double)max(a,b) diff -Nru dsdp-5.8/debian/patches/series dsdp-5.8/debian/patches/series --- dsdp-5.8/debian/patches/series 2017-03-28 08:21:43.000000000 +0100 +++ dsdp-5.8/debian/patches/series 2017-03-28 17:45:50.000000000 +0100 @@ -1 +1 @@ -type-mismatch.patch +ffinteger-type-mismatch.patch diff -Nru dsdp-5.8/debian/patches/type-mismatch.patch dsdp-5.8/debian/patches/type-mismatch.patch --- dsdp-5.8/debian/patches/type-mismatch.patch 2017-03-28 08:21:43.000000000 +0100 +++ dsdp-5.8/debian/patches/type-mismatch.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,15 +0,0 @@ -Description: Cast INFO to int before storing it in the flag -Author: Dimitri John Ledkov <x...@ubuntu.com> -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1543982 - ---- dsdp-5.8.orig/src/vecmat/dlpack.c -+++ dsdp-5.8/src/vecmat/dlpack.c -@@ -123,7 +123,7 @@ static int DTPUMatCholeskyFactor(void* A - dtpuscalemat(AP,ss,N); - } - dpptrf(&UPLO, &N, AP, &INFO ); -- *flag=INFO; -+ *flag=(int) INFO; - return 0; - } -