dorsal-0.6.1 fails under Fedora 11

Asked by Doug Arnold

I tried a clean build of dolfin using dorsal-0.6.1 on a Fedora 11 machine today
and ran into several problems, with gmp, with scotch, and with dolfin.

1) The dolfin problem (I need a solution for this). Build fails with

mpic++ -o dolfin/graph/ParMETIS.os -c -Wall -pipe -ansi -BOOST_UBLAS_NDEBUG -O3 -DHAS_MPI=1 -DMPICH_IGNORE_CXX_SEEK -DPACKAGE_VERSION=\"0.9.7\" -DHAS_CGAL=1 -DHAS_UMFPACK=1 -DHAS_CHOLMOD=1 -DHAS_PARMETIS=1 -DHAS_LAPACK=1 -DHAS_SLEPC=1 -DHAS_ZLIB=1 -DHAS_MTL4=1 -DHAS_PETSC=1 -DHAS_GMP=1 -DHAS_SCOTCH=1 -fno-strict-aliasing -frounding-math -DMTL_HAS_BLAS -fPIC -I. -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include/libxml2 -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/usr/include/suitesparse -I/usr/include/suitesparse -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1 -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/usr/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/src/mtl4 -I/usr/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1 dolfin/graph/ParMETIS.cpp
dolfin/graph/ParMETIS.cpp: In static member function ‘static void dolfin::ParMETIS::compute_partition(std::vector<unsigned int, std::allocator<unsigned int> >&, const dolfin::LocalMeshData&)’:
dolfin/graph/ParMETIS.cpp:100: error: ‘ParMETIS_V3_PartMeshKway’ was not declared in this scope
scons: *** [dolfin/graph/ParMETIS.os] Error 1
scons: building terminated because of errors.
dolfin/graph/ParMETIS.os failed: Error 1
Failure with exit status: 2
Exit message: There was a problem building dolfin-0.9.7.

2) The gmp problem (I have a solution for this). Build of gmp fails during the configure stage
with complaints about "link --dump". Based on this warning

  configure: WARNING: If you wanted to set the --build type, don't use --host.
      If a cross compiler is detected then cross compile mode will be used.

I edited the gmp.package file to remove " --host=${GMP_ARCH}" from CONFOPTS, and then
gmp built without problem.

3) The scotch problem (I have a poor solution for this). Build of scotch fails with

gcc -fPIC -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -DSCOTCH_PTSCOTCH -DSCOTCH_VERSION=\""5.1"\" dummysizes.c -o dummysizes -lz -lm -lrt
In file included from dummysizes.c:80:
common.h:108:28: error: mpi.h: No such file or directory
In file included from dummysizes.c:82:

This is discussed in the INSTALL.txt file in the scotch distribution. The solution seems to be
to compile dummysizes with mpicc instead of gcc, but I didn't see how to do that in
the dorsal framework. Instead I changed '#include <mpi.h>' to '#include "mpi.h"' in
dummysizes.c and dumped a copy of mpi.h into that directory (surely not an elegant solution!).
With this, scotch compiled.

Question information

Language:
English Edit question
Status:
Answered
For:
Dorsal Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Johannes Ring (johannr) said :
#1

On Thu, Apr 8, 2010 at 1:23 AM, <email address hidden>
<email address hidden> wrote:
> New question #106742 on Dorsal:
> https://answers.launchpad.net/dorsal/+question/106742
>
> I tried a clean build of dolfin using dorsal-0.6.1 on a Fedora 11 machine today
> and ran into several problems, with gmp, with scotch, and with dolfin.
>
> 1) The dolfin problem (I need a solution for this).  Build fails with
>
> mpic++ -o dolfin/graph/ParMETIS.os -c -Wall -pipe -ansi -BOOST_UBLAS_NDEBUG -O3 -DHAS_MPI=1 -DMPICH_IGNORE_CXX_SEEK -DPACKAGE_VERSION=\"0.9.7\" -DHAS_CGAL=1 -DHAS_UMFPACK=1 -DHAS_CHOLMOD=1 -DHAS_PARMETIS=1 -DHAS_LAPACK=1 -DHAS_SLEPC=1 -DHAS_ZLIB=1 -DHAS_MTL4=1 -DHAS_PETSC=1 -DHAS_GMP=1 -DHAS_SCOTCH=1 -fno-strict-aliasing -frounding-math -DMTL_HAS_BLAS -fPIC -I. -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include/libxml2 -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/usr/include/suitesparse -I/usr/include/suitesparse -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1 -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/usr/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/src/mtl4 -I/usr/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1 dolfin/graph/ParMETIS.cpp
> dolfin/graph/ParMETIS.cpp: In static member function ‘static void dolfin::ParMETIS::compute_partition(std::vector<unsigned int, std::allocator<unsigned int> >&, const dolfin::LocalMeshData&)’:
> dolfin/graph/ParMETIS.cpp:100: error: ‘ParMETIS_V3_PartMeshKway’ was not declared in this scope
> scons: *** [dolfin/graph/ParMETIS.os] Error 1
> scons: building terminated because of errors.
> dolfin/graph/ParMETIS.os failed: Error 1
> Failure with exit status: 2
> Exit message: There was a problem building dolfin-0.9.7.

The problem is most likely the way dorsal installs SCOTCH, where you
end up with the wrong metis.h and parmetis.h in
${INSTALL_PATH}/include. Remove those symbolic links and try the
attached dorsal patch. This should also take care of 3) below.

Johannes

> 2) The gmp problem (I have a solution for this).  Build of gmp fails during the configure stage
> with complaints about "link --dump".  Based on this warning
>
>  configure: WARNING: If you wanted to set the --build type, don't use --host.
>      If a cross compiler is detected then cross compile mode will be used.
>
> I edited the gmp.package file to remove " --host=${GMP_ARCH}" from CONFOPTS, and then
> gmp built without problem.
>
> 3) The scotch problem (I have a poor solution for this).  Build of scotch fails with
>
> gcc -fPIC -O3 -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_RANDOM_FIXED_SEED -DSCOTCH_PTHREAD -DSCOTCH_RENAME -DSCOTCH_PTSCOTCH -DSCOTCH_VERSION=\""5.1"\" dummysizes.c -o dummysizes -lz -lm -lrt
> In file included from dummysizes.c:80:
> common.h:108:28: error: mpi.h: No such file or directory
> In file included from dummysizes.c:82:
>
> This is discussed in the INSTALL.txt file in the scotch distribution.  The solution seems to be
> to compile dummysizes with mpicc instead of gcc, but I didn't see how to do that in
> the dorsal framework.  Instead I changed '#include <mpi.h>' to '#include "mpi.h"' in
> dummysizes.c and dumped a copy of mpi.h into that directory (surely not an elegant solution!).
> With this, scotch compiled.
>
>
> --
> You received this question notification because you are a member of
> Dorsal Team, which is an answer contact for Dorsal.
>

Revision history for this message
Johannes Ring (johannr) said :
#2

Sorry, the attachment was not included when replying to the question by mail. Here is the patch:

=== modified file 'packages/scotch.package'
--- packages/scotch.package 2010-03-12 21:21:33 +0000
+++ packages/scotch.package 2010-04-08 17:12:13 +0000
@@ -8,13 +8,13 @@

 package_specific_setup () {
     perl -pi -e 's/^CFLAGS\t=/CFLAGS = -fPIC/g' Make.inc/Makefile.inc.${SCOTCH_ARCH}
+ perl -pi -e 's/^CCD = gcc/CCD = mpicc/g' Make.inc/Makefile.inc.${SCOTCH_ARCH}
     ln -sf Make.inc/Makefile.inc.${SCOTCH_ARCH} Makefile.inc
 }

 package_specific_install () {
- cd ..
- ln -sf ${PWD}/lib/* ${INSTALL_PATH}/lib/
- ln -sf ${PWD}/include/* ${INSTALL_PATH}/include/
+ make install prefix=${INSTALL_PATH}
+ cp -f ../lib/*scotc*[^m].a ${INSTALL_PATH}/lib
 }

 package_specific_register () {

Revision history for this message
Anders Logg (logg) said :
#3

Has this been applied to Dorsal already?

--
Anders

On Thu, Apr 08, 2010 at 08:54:00PM -0000, Johannes Ring wrote:
> Question #106742 on Dorsal changed:
> https://answers.launchpad.net/dorsal/+question/106742
>
> Johannes Ring proposed the following answer:
> Sorry, the attachment was not included when replying to the question by
> mail. Here is the patch:
>
> === modified file 'packages/scotch.package'
> --- packages/scotch.package 2010-03-12 21:21:33 +0000
> +++ packages/scotch.package 2010-04-08 17:12:13 +0000
> @@ -8,13 +8,13 @@
>
> package_specific_setup () {
> perl -pi -e 's/^CFLAGS\t=/CFLAGS = -fPIC/g' Make.inc/Makefile.inc.${SCOTCH_ARCH}
> + perl -pi -e 's/^CCD = gcc/CCD = mpicc/g' Make.inc/Makefile.inc.${SCOTCH_ARCH}
> ln -sf Make.inc/Makefile.inc.${SCOTCH_ARCH} Makefile.inc
> }
>
> package_specific_install () {
> - cd ..
> - ln -sf ${PWD}/lib/* ${INSTALL_PATH}/lib/
> - ln -sf ${PWD}/include/* ${INSTALL_PATH}/include/
> + make install prefix=${INSTALL_PATH}
> + cp -f ../lib/*scotc*[^m].a ${INSTALL_PATH}/lib
> }
>
> package_specific_register () {
>
> You received this question notification because you are a member of
> Dorsal Team, which is an answer contact for Dorsal.

Revision history for this message
Doug Arnold (dnarnold) said :
#4

I applied this patch but it did not fix either problem 1) or 3). I have a workaround for 3 (but which
needs to be improved so dorsal is useable), but I am stuck on 1). Here's the failure message (again):

mpic++ -o dolfin/graph/ParMETIS.os -c -Wall -pipe -ansi -BOOST_UBLAS_NDEBUG -O3 -DHAS_MPI=1 -DMPICH_IGNORE_CXX_SEEK -DPACKAGE_VERSION=\"0.9.7\" -DHAS_CGAL=1 -DHAS_UMFPACK=1 -DHAS_CHOLMOD=1 -DHAS_PARMETIS=1 -DHAS_LAPACK=1 -DHAS_SLEPC=1 -DHAS_ZLIB=1 -DHAS_MTL4=1 -DHAS_PETSC=1 -DHAS_GMP=1 -fno-strict-aliasing -frounding-math -DMTL_HAS_BLAS -fPIC -I. -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include/libxml2 -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/usr/include/suitesparse -I/usr/include/suitesparse -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1 -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/usr/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/src/mtl4 -I/usr/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include -I/home/faculty/arnold/workshop/FEniCS-0.6.1/include dolfin/graph/ParMETIS.cpp
dolfin/graph/ParMETIS.cpp: In static member function ‘static void dolfin::ParMETIS::compute_partition(std::vector<unsigned int, std::allocator<unsigned int> >&, const dolfin::LocalMeshData&)’:
dolfin/graph/ParMETIS.cpp:100: error: ‘ParMETIS_V3_PartMeshKway’ was not declared in this scope
scons: *** [dolfin/graph/ParMETIS.os] Error 1
scons: building terminated because of errors.
dolfin/graph/ParMETIS.os failed: Error 1
Failure with exit status: 2
Exit message: There was a problem building dolfin-0.9.7.

Revision history for this message
Harish Narayanan (hnarayanan) said :
#5

I installed fedora12 to check things out and was able to reproduce your errors. I used your solution for (2) and a modified version of Johannes' patch for (1) and (3). Everything seems to work now.

It is fixed in the bzr repository of Dorsal. If you want to just patch the 0.6.1 release tarball, replace scotch.package with the file downloadable at the following link: http://bazaar.launchpad.net/~dorsal-core/dorsal/main/annotate/head%3A/packages/scotch.package , and install it by 'skip:'ing everything in your fedora platform file instead of SCOTCH and DOLFIN, and rerunning dorsal.sh.

Can you help with this problem?

Provide an answer of your own, or ask Doug Arnold for more information if necessary.

To post a message you must log in.