petsc version 3.1.dfsg-10ubuntu1 failed to build on armel

Bug #745861 reported by Steve Langasek
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
petsc (Ubuntu)
Fix Released
Undecided
Unassigned
Oneiric
Won't Fix
Undecided
Unassigned

Bug Description

petsc version 3.1.dfsg-10ubuntu1 failed to build on armel
Link to failed build: https://launchpad.net/ubuntu/+source/petsc/3.1.dfsg-10ubuntu1/+buildjob/2139778

Direct link to the build log: https://launchpad.net/ubuntu/+source/petsc/3.1.dfsg-10ubuntu1/+buildjob/2139778/+files/buildlog_ubuntu-natty-armel.petsc_3.1.dfsg-10ubuntu1_FAILEDTOBUILD.txt.gz

This log snippet might be of interest, since it triggered the matcher 'Purging chroot-autobuild'.
Excerpt 3041 lines into the build log:

TESTING: check from config.libraries(/build/buildd/petsc-3.1.dfsg/config/BuildSystem/config/libraries.py:133)
TESTING: checkInclude from config.headers(/build/buildd/petsc-3.1.dfsg/config/BuildSystem/config/headers.py:92)
TESTING: checkSharedLibrary from PETSc.packages.hdf5(/build/buildd/petsc-3.1.dfsg/config/BuildSystem/config/package.py:423)
TESTING: alternateConfigureLibrary from PETSc.packages.Dscpack(/build/buildd/petsc-3.1.dfsg/config/BuildSystem/config/package.py:427)
TESTING: configureLibrary from PETSc.packages.blacs(/build/buildd/petsc-3.1.dfsg/config/BuildSystem/config/package.py:370)
TESTING: check from config.libraries(/build/buildd/petsc-3.1.dfsg/config/BuildSystem/config/libraries.py:133)
*******************************************************************************
         UNABLE to CONFIGURE with GIVEN OPTIONS (see configure.log for details):
-------------------------------------------------------------------------------
--with-blacs-lib=['/usr/lib/libblacsCinit-lam.so', '/usr/lib/libblacs-lam.so'] and
--with-blacs-include=/usr/include did not work
*******************************************************************************

make: *** [build-arch] Error 1
dpkg-buildpackage: error: debian/rules build gave error exit status 2
******************************************************************************
Build finished at 20110323-1218
FAILED [dpkg-buildpackage died]
Purging chroot-autobuild/build/buildd/petsc-3.1.dfsg

Revision history for this message
Dr. David Alan Gilbert (davidgil-uk) wrote :
Download full text (4.2 KiB)

Recreated, form the configure.log:

==================================================================================
      Checking for a functional hypre
      Checking for library in User specified root directory HYPRE: ['/usr/lib/libHYPRE.a']
================================================================================
TEST check from config.libraries(/home/daveg/apt/petsc-3.1.dfsg/config/BuildSystem/config/libraries.py:133)
TESTING: check from config.libraries(config/BuildSystem/config/libraries.py:133)
  Checks that the library "libName" contains "funcs", and if it does defines HAVE_LIB"libName"
       - libDir may be a list of directories
       - libName may be a list of library names
          Checking for functions ['HYPRE_IJMatrixCreate'] in library ['/usr/lib/libHYPRE.a'] ['-llapack', '-lblas', '-L/usr/lib/openmpi/lib', '-L/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.5.2', '-L/usr/lib/arm-linux-gnueabi', '-ldl', '-lmpi', '-lopen-rte', '-lopen-pal', '-lnsl', '-lutil', '-lgcc_s', '-lpthread', '-lmpi_f90', '-lmpi_f77', '-lgfortran', '-lm', '-lm', '-lm', '-lm']
            Pushing language Cxx
sh: /usr/lib/lam/bin/mpicxx -c -o conftest.o -Wall -Wwrite-strings -Wno-strict-aliasing -g conftest.cc
Executing: /usr/lib/lam/bin/mpicxx -c -o conftest.o -Wall -Wwrite-strings -Wno-strict-aliasing -g conftest.cc
sh:
                    Pushing language CXX
                    Popping language CXX
sh: /usr/lib/lam/bin/mpicxx -o conftest -Wall -Wwrite-strings -Wno-strict-aliasing -g conftest.o -Wl,-rpath,/usr/lib -L/usr/lib -lHYPRE -llapack -lblas -L/usr/lib/openmpi/lib -L/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.5.2 -L/usr/lib/arm-linux-gnueabi -ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -lmpi_f90 -lmpi_f77 -lgfortran -lm -lm -lm -lm -L/usr/lib/openmpi/lib -L/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.5.2 -L/usr/lib/arm-linux-gnueabi -L/usr/lib/arm-linux-gnueabi -ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -ldl
Executing: /usr/lib/lam/bin/mpicxx -o conftest -Wall -Wwrite-strings -Wno-strict-aliasing -g conftest.o -Wl,-rpath,/usr/lib -L/usr/lib -lHYPRE -llapack -lblas -L/usr/lib/openmpi/lib -L/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.5.2 -L/usr/lib/arm-linux-gnueabi -ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -lmpi_f90 -lmpi_f77 -lgfortran -lm -lm -lm -lm -L/usr/lib/openmpi/lib -L/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.5.2 -L/usr/lib/arm-linux-gnueabi -L/usr/lib/arm-linux-gnueabi -ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -ldl
sh:
Possible ERROR while running linker: /usr/bin/ld: conftest.o: undefined reference to symbol 'HYPRE_IJMatrixCreate'
/usr/bin/ld: note: 'HYPRE_IJMatrixCreate' is defined in DSO /usr/lib/libHYPRE_IJ_mv-2.4.0.so so try adding it to the linker command line
/usr/lib/libHYPRE_IJ_mv-2.4.0.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
 output: ret = 256
error message = {/usr/bin/ld: conftest.o: undefined reference to symbol 'HYPRE_IJMatrixCreate'
/usr/bin/ld: note: 'HYPRE_IJMatrixCreate' is defined in DSO /usr/lib/libHYPRE_IJ_mv-2.4.0.so so try addin...

Read more...

Revision history for this message
Dr. David Alan Gilbert (davidgil-uk) wrote :

Hmm but today I have a different failure:

sh: /usr/lib/lam/bin/mpicxx -o conftest -Wall -Wwrite-strings -Wno-strict-aliasing -g conftest.o -L/usr/lib -L/usr/lib -lblacsCinit-lam -L/usr/lib -L/usr/lib -lblacs-lam -llapack -lblas -L/usr/lib/openmpi/lib -L/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.5.2 -L/usr/lib/arm-linux-gnueabi -ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -lmpi_f90 -lmpi_f77 -lgfortran -lm -lm -lm -lm -L/usr/lib/openmpi/lib -L/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.5.2 -L/usr/lib/arm-linux-gnueabi -L/usr/lib/arm-linux-gnueabi -ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -ldl
Executing: /usr/lib/lam/bin/mpicxx -o conftest -Wall -Wwrite-strings -Wno-strict-aliasing -g conftest.o -L/usr/lib -L/usr/lib -lblacsCinit-lam -L/usr/lib -L/usr/lib -lblacs-lam -llapack -lblas -L/usr/lib/openmpi/lib -L/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.5.2 -L/usr/lib/arm-linux-gnueabi -ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -lmpi_f90 -lmpi_f77 -lgfortran -lm -lm -lm -lm -L/usr/lib/openmpi/lib -L/usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.5.2 -L/usr/lib/arm-linux-gnueabi -L/usr/lib/arm-linux-gnueabi -ldl -lmpi -lopen-rte -lopen-pal -lnsl -lutil -lgcc_s -lpthread -ldl
sh:
Possible ERROR while running linker: /usr/lib/libblacs-lam.so: undefined reference to `lam_mpi_unsigned_short'
/usr/lib/libblacs-lam.so: undefined reference to `lam_mpi_double'
/usr/lib/libblacs-lam.so: undefined reference to `lam_mpi_packed'
/usr/lib/libblacsCinit-lam.so: undefined reference to `lam_mpi_comm_world'
/usr/lib/libblacs-lam.so: undefined reference to `lam_mpi_sum'
/usr/lib/libblacs-lam.so: undefined reference to `lam_mpi_float'
/usr/lib/libblacs-lam.so: undefined reference to `lam_mpi_int'
collect2: ld returned 1 exit status
 output: ret = 256
error message = {/usr/lib/libblacs-lam.so: undefined reference to `lam_mpi_unsigned_short'
/usr/lib/libblacs-lam.so: undefined reference to `lam_mpi_double'
/usr/lib/libblacs-lam.so: undefined reference to `lam_mpi_packed'
/usr/lib/libblacsCinit-lam.so: undefined reference to `lam_mpi_comm_world'
/usr/lib/libblacs-lam.so: undefined reference to `lam_mpi_sum'
/usr/lib/libblacs-lam.so: undefined reference to `lam_mpi_float'
/usr/lib/libblacs-lam.so: undefined reference to `lam_mpi_int'
collect2: ld returned 1 exit status

Revision history for this message
Dr. David Alan Gilbert (davidgil-uk) wrote :

I suspect this isn't ARM specific exactly, but it's specific to those platforms (i.e. ARM) that use lam as the default mpi implementation rather than OpenMPI.

If I add a -llam to the configure test case that fails then the link succeeds.

Dave

Revision history for this message
Dr. David Alan Gilbert (davidgil-uk) wrote :

MPI makes my heads hurt;

OK - some other observations:

  * petsc has a dependency on libhdf5-mpi-dev
  * libhdf5-mpi-dev is a meta that is supposed to get the right libhdf5 for the platform mpi defaults but actually ends up depending on
       libhdf5-openmpi-dev, mpi-default-dev

      which is somewhere between inconsistent and wrong.

  2) hdf5 build dependencies are a bit odd:
Build-Depends: libmpich1.0-dev (>= 1.2.7-1), zlib1g-dev, lam4-dev (>= 7.1.1-3.2), quilt, libopenmpi-dev [!hp
pa !mips !mipsel !s390 !sh4 !m68k], libjpeg62-dev | libjpeg-dev, debhelper (>> 7), sed (>= 4.1.5), gfortran,
 libibverbs-dev [!hppa !mips !mipsel !s390 !kfreebsd-i386 !kfreebsd-amd64 !hurd-i386 !sh4], sharutils, mpi-d
efault-dev

   I think that needs to lose the libopenmpi-dev dependency completely (with all the predication) and just keep the mpi-default-dev one it already has?

Once you've got the build-deps for petsc installed - and because it has pulled in libopenmpi-dev - if you then try and rebuild libblacs it builds it against openmpi rather than lam.

Dave

tags: added: oneiric
Changed in petsc (Ubuntu):
milestone: none → oneiric-alpha-2
Changed in petsc (Ubuntu):
milestone: oneiric-alpha-2 → oneiric-alpha-3
Changed in petsc (Ubuntu Oneiric):
milestone: oneiric-alpha-3 → none
status: New → Confirmed
tags: added: universe
Matthias Klose (doko)
tags: added: precise
Revision history for this message
Matthias Klose (doko) wrote :

now built in precise using the MPI libs

Changed in petsc (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Rolf Leggewie (r0lf) wrote :

oneiric has seen the end of its life and is no longer receiving any updates. Marking the oneiric task for this ticket as "Won't Fix".

Changed in petsc (Ubuntu Oneiric):
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.