Open elbert5770 opened 2 years ago
Can you let us know what version of libmesh you are using? I pushed a fix in a3b71c4b5f3ad788a6fd0b88abbfdd4f7933a16d (back in April 2022) that I think may address this problem for you, basically we no longer use AC_CHECK_HEADER
to simply check for the existence of a file (which is what that test is intended to do. If you are using a release version of libmesh, it would probably be worth us backporting this change to a point release.
Oh, sorry, I just re-read your message and you did say libMesh 1.7. So, yeah, I think the commit I mentioned will fix the problem for you, and we should probably release a 1.7.1 which includes that.
@elbert5770 would you mind trying the 1.7.1 release and letting us know here if that works for you? I appreciate your feedback since I don't think many projects (and certainly none of the main developers) actually use the release tarballs, so it is difficult to know when there are issues with them.
I will try this with a fresh install on a new machine that I will be getting. It might soon or it might take some time. I'm confident that this fix worked though. Interestingly, check out how Dr. Wells at IBAMR fixed this such that it should work with libmesh < 1.7.1 and PETSc > 3.13: https://github.com/IBAMR/autoibamr/commit/d02ef0491ccd08b2587e61eda01fad37975c3f8d
Thank you for responding so quickly!
Here's the error message during libmesh configure (this is through autoibamr but I had the same failure yesterday with manually installed PETSc 3.17 and manually installed libmesh 1.7).
The double slashes are not ideal, but in the second call, petscversion.h is in fact in that location.
What's happening is the following in libmesh's configure file at line 34473:
The failure occurs within the function 'ac_fn_c_check_header_mongrel'. The c compilation doesn't succeed
The problem is that the file petscversion.h in PETSc_3.17 now includes another header file that makes the test fail, this #include was not in PETSc_3.13
Comment out the include line and the libmesh configure succeeds.
Does it make sense that ac_fn_c_check_header_mongrel would fail with nested #includes?