Troubleshooting GridPACK Builds

From GridPACK
Revision as of 21:44, 2 July 2018 by Bjpalmer (talk | contribs)

Jump to: navigation, search

This page is under construction

This page is a collection of trouble shooting tips that have proven useful in the past. If you run into problems building GridPACK or its associated libraries, you may find some useful suggestions here. If you continue to have problems, feel free to contact us.

Boost

Mismatch between compiler and Boost versions: Boost employs the latest features in C++ and a Boost version that was released much later than the compiler version may not compile. You can fix this by using an earlier version of Boost. Alternatively, you can move to a more recent compiler, but this is usually more difficult to do.

Boost cannot find MPI: Boost is actually looking for the mpic++ wrapper to the C++ compiler. You can tell if this is in your environment by typing

   which mpic++

If it isn't in your environment, then you need to modify the first line in the configuration

   echo "using mpi ;" > ~/user-config.jam

to

   echo "using mpi : /absolute/path/to/mpi/C++/wrapper ;" > ~/user-config.jam

This assumes that you do have the more common mpicxx name in your environment. If that name isn't in your environment, then find the MPI wrapper name and use that. If the build still fails, include the entire path

   echo "using mpi : /absolute/path/to/mpi/C++/compiler/wrapper ;" > ~/user-config.jam

Not that the spaces around : and before ; are important and must be included in the above lines.

PETSc

Configuration error messages: The error messages that PETSc provides during configuration are frequently informative and can provide important information on why configuration failed, as well as pointing to potential solutions. Check these first.

configure.log: The configure.log file in the PETSc build directory can provide additional information on diagnosing build problems. You can identify which test failed and possibly get information on compiler errors from this file.

Noexec flag on /tmp: This error (which is currently rare) occurs if /tmp has been mounted on your system with the noexec flag set. This flag will prevent you from executing anything in /tmp, even if the executable bit has been set on the file. PETSc uses this directory to create temporary files as part of its configuration process. For PETSc versions later than 3.6, you should be able to get around this problem by setting the TMPDIR environment to some directory where you have both write and execute permissions. This problem is difficult to diagnose and your best bet may be to just try setting TMPDIR and see if your configuration problems go away. On some systems, you may be able to see if the noexec flag is set by typing

   findmnt --target /tmp

The PETSc development team is aware of this problem and may provide a fix, or at least better diagnostics, in a later release (post 3.9.2).