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/* ;\

Reply via email to