Package: src:blacs-mpi
Version: 1.1-33
Severity: serious
Tags: sid stretch patch
According to
https://buildd.debian.org/status/fetch.php?pkg=blacs-mpi&arch=s390x&ver=1.1-33%2Bb1&stamp=1451066448
libblacs-mpich1_1.1-33+b1_s390x.deb
Depends: mpi-default-bin, libc6 (>= 2.4)
missing the dependency on the libmpich package; dh_shlibdeps also warns about
the missing symbols.
while libblacs-openmpi1
Depends: mpi-default-bin, libc6 (>= 2.4), libopenmpi1.6
This causes the petsc configure check to fail on mpich architectures:
Executing: mpicc -o /tmp/petsc-1o2k96/config.libraries/conftest
-Wl,-Bsymbolic-functions -Wl,-z,relro -g -O2 -fstack-protector-strong -Wformat
-Werror=format-security -fPIC /tmp/petsc-1o2k96/config.libraries/conftest.o
-lscalapack-mpich -llapack -lblas -L/usr/lib/s390x-linux-gnu
-L/usr/lib/gcc/s390x-linux-gnu/5 -L/lib/s390x-linux-gnu -lmpichfort -lgfortran
-lm -lgfortran -lm -lm -L/usr/lib/s390x-linux-gnu
-L/usr/lib/gcc/s390x-linux-gnu/5 -L/usr/lib/s390x-linux-gnu
-L/lib/s390x-linux-gnu -L/usr/lib/s390x-linux-gnu -ldl -lmpich -lgcc_s -ldl
Possible ERROR while running linker: exit code 256
stderr:
//usr/lib/libblacs-mpich.so.1: undefined reference to `mpi_test_'
//usr/lib/libblacs-mpich.so.1: undefined reference to `mpi_testall_'
//usr/lib/libblacs-mpich.so.1: undefined reference to `mpi_initialized_'
//usr/lib/libblacs-mpich.so.1: undefined reference to `mpi_init_'
//usr/lib/libblacs-mpich.so.1: undefined reference to `mpi_op_create_'
//usr/lib/libblacs-mpich.so.1: undefined reference to `mpi_attr_get_'
collect2: error: ld returned 1 exit status
according to the build log, the dependent library is missing during the link
step:
mkdir -p tmp
set -e ;\
for i in blacs blacsF77init blacsCinit ; do \
cd tmp ;\
ar x ../LIB/${i}_MPI-LINUX-0.a ;\
mkdir -p tmp ;\
for j in $(find -name "*.C") ;\
do mv $j tmp/$(echo $j | sed 's,C$,o,g') ;\
done;\
cd .. ;\
gcc -shared -Wl,-soname=lib$i-mpich.so.1 -o lib$i-mpich.so.1.1 \
$(find tmp -name "*.o");\
ln -fs lib$i-mpich.so.1.1 lib$i-mpich.so.1 ;\
ln -fs lib$i-mpich.so.1 lib$i-mpich.so ;\
rm -f tmp/tmp/* ; rmdir tmp/tmp ; rm tmp/* ;\
done
* Link the lam and mpich based library against the mpi lib.
* Remove ppc64 from the mpich architectures.
diff -u blacs-mpi-1.1/debian/control blacs-mpi-1.1/debian/control
--- blacs-mpi-1.1/debian/control
+++ blacs-mpi-1.1/debian/control
@@ -36,7 +36,7 @@
Package: libblacs-mpich1
Section: libs
-Architecture: hppa m68k powerpcspe ppc64 s390x sparc64
+Architecture: hppa m68k powerpcspe s390x sparc64
Depends: mpi-default-bin, ${shlibs:Depends}, ${misc:Depends}
Breaks: libblacs-mpi1 (<< 1.1-31.2)
Replaces: blacs1-mpich, blacs1gf-mpich, blacs1-lam, blacs1gf-lam,
@@ -59,9 +59,9 @@
Package: libblacs-mpi-dev
Section: libdevel
-Architecture: alpha amd64 armel armhf arm64 hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc ppc64 ppc64el sparc mips64 mips64el hppa m68k powerpcspe ppc64 s390x sparc64
+Architecture: alpha amd64 armel armhf arm64 hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc ppc64 ppc64el sparc mips64 mips64el hppa m68k powerpcspe s390x sparc64
Depends: libblacs-openmpi1 (= ${binary:Version}) [alpha amd64 armel armhf arm64 hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc ppc64 ppc64el sparc mips64 mips64el],
- libblacs-mpich1 (= ${binary:Version}) [hppa m68k powerpcspe ppc64 s390x sparc64],
+ libblacs-mpich1 (= ${binary:Version}) [hppa m68k powerpcspe s390x sparc64],
mpi-default-dev, ${misc:Depends}
Replaces: blacs-mpi, blacs-mpich-dev, blacsgf-mpich-dev, blacs-lam-dev, blacsgf-lam-dev
Conflicts: blacs-mpi, blacs-mpich-dev, blacsgf-mpich-dev, blacs-lam-dev, blacsgf-lam-dev
@@ -82,7 +82,7 @@
Package: blacs-mpi-test
Section: math
-Architecture: alpha amd64 armel armhf arm64 hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc ppc64 ppc64el sparc mips64 mips64el hppa m68k powerpcspe ppc64 s390x sparc64
+Architecture: alpha amd64 armel armhf arm64 hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc ppc64 ppc64el sparc mips64 mips64el hppa m68k powerpcspe s390x sparc64
Depends: blacs-test-common, ${shlibs:Depends}, ${misc:Depends}
Replaces: blacs-mpich-test, blacsgf-mpich-test, blacs-lam-test, blacsgf-lam-test
Conflicts: blacs-mpich-test, blacsgf-mpich-test, blacs-lam-test, blacsgf-lam-test
diff -u blacs-mpi-1.1/debian/rules blacs-mpi-1.1/debian/rules
--- blacs-mpi-1.1/debian/rules
+++ blacs-mpi-1.1/debian/rules
@@ -12,7 +12,7 @@
# package. If there is a mismatch between the two, the package will FTBFS. This
# is on purpose, to avoid silent breakage. See #740620 for more details.
OPENMPI_ARCHS=alpha amd64 armel armhf arm64 hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc ppc64 ppc64el sparc mips64 mips64el
-MPICH_ARCHS=hppa m68k powerpcspe ppc64 s390x sparc64
+MPICH_ARCHS=hppa m68k powerpcspe s390x sparc64
build: build-$(ARCH_DEFAULT_MPI_IMPL)
@@ -98,7 +98,7 @@
done;\
cd .. ;\
gcc -shared -Wl,-soname=lib$$i-lam.so.1 -o lib$$i-lam.so.1.1 \
- $$(find tmp -name "*.o");\
+ $$(find tmp -name "*.o") -lmpi;\
ln -fs lib$$i-lam.so.1.1 lib$$i-lam.so.1 ;\
ln -fs lib$$i-lam.so.1 lib$$i-lam.so ;\
rm -f tmp/tmp/* ; rmdir tmp/tmp ; rm tmp/* ;\
@@ -139,7 +139,7 @@
done;\
cd .. ;\
gcc -shared -Wl,-soname=lib$$i-mpich.so.1 -o lib$$i-mpich.so.1.1 \
- $$(find tmp -name "*.o");\
+ $$(find tmp -name "*.o") -lmpi;\
ln -fs lib$$i-mpich.so.1.1 lib$$i-mpich.so.1 ;\
ln -fs lib$$i-mpich.so.1 lib$$i-mpich.so ;\
rm -f tmp/tmp/* ; rmdir tmp/tmp ; rm tmp/* ;\