Closed francesco-ballarin closed 4 years ago
Is your UFL up to date? That rule for ufl.Constant
was added later.
UPDATE: Please, we changed the remote for UFL git code, check you have the correct git remote -v
pointing to github.
The c++17
flag might be needed when compiling pybind11 but I think it's unlikely. See https://stackoverflow.com/questions/46746878/is-it-safe-to-link-c17-c14-and-c11-objects.
FFC-X doesn't compile any C++ code. It's plain C.
Thanks Michal, indeed I had forgotten to change the remote of ufl on the affected machine (while I did change it on the other one). That solved the ufl issue.
I further realized that g++ on the affected machine had been updated by apt several times in the 8.X series. I had not been using the machine in a while, and compiled some of the dependencies with earlier versions. To be safe (even though it should have not made a difference, I was expecting), I recompiled the affected dependencies. To be even safer, I recompiled boost with c++17 instead of c++14.
There were probably many mistakes contributing (machine seldom used, wrong ufl, mix of different g++ versions). Apologies for having opened this on ffcx, not realizing that it compiles in C :)
I will close this
Dear all,
I am currently compiling dolfinx on two machines (one Centos 7, the other Debian 10). The two systems provide luckily the same version of the compiler (g++ 8.3.0). I compile dolfinx and dependencies with the same scripts on both machines.
On the Debian 10 one, I get several failures while testing, the first one being
I get similar failures later on in other tests, as well as when wrapping external classes with pybind11.
On the CentOS 7 machine everything runs fine instead.
After bisecting, I am reasonably sure that the issue was introduced when switching to C++17 in https://github.com/FEniCS/dolfinx/pull/641 but I am not fully able to debug any further due to limited knowledge of FFCX.
Is it possible that we need to enforce the std=c++17 flag on every FFCX compilation, as well as in the pybind11 layer of dolfinx?