Error installing preCICE in a Debian container

Hi,
I’m installing preCICE in a Debian 9 container. As the os is quite old, most of the dependencies are missing or outdated. Nevertheless, by following the installation instructions I set up all dependencies and started configuring preCICE.

Some info:

  • preCICE version 2.5.0
  • Operating system Debian 9 in a container
  • Installation method : CMake
  • Dependency versions appear to be fulfilled:
    • cmake 3.24.1
    • eigen 3.3.7 (manually installed)
    • boost 1.74.0 (manually installed)
    • PETSc 3.12.4 (manually installed)
    • MPI 2.0.2 (system… not usable?)
    • gcc 6.3 (system) in particular g++ -v gives gcc.log (1.4 KB)

The command
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/software/precice
looks good to me (apart from MPI, maybe): cmake.log (5.1 KB)

Nevertheless make make.log (18.4 KB) throws errors like

fmtEigen.hpp:9:13: error: specialization of ‘template<class T, class Char, class Enable> struct fmt::v9::formatter’ in different namespace [-fpermissive]

Before touching compiler flags and so on, I wonder if the compiler uses the right standard and if there are other issues I’m not aware of.
Thank you
Claudio

Hi Claudio,

I remember this error. You are running into this gcc compiler bug which was fixed in version 7.
However, I thought that we fixed it in 2.5.0.

Compiling preCICE without tests and tools could avoid the issue

cmake -DBUILD_TESTING=OFF -DPRECICE_BUILD_TOOLS=OFF -DCMAKE_BUILD_TYPE=Release ..

If this doesn’t work, you could also install clang++ and try compiling preCICE with it.

In the worst case you may have to patch preCICE yourself (removing fmtEigen.hpp and failing log statements) or attempt to upgrade to a different distro release.