CPU detection program did not compile on x86 host

GROMACS version: gromacs-2023
GROMACS modification: No
Here post your question
I am trying to install gromacs on a Dell workstation with a Intel® Xeon(R) Silver 4110 CPU @ 2.10GHz × 32 processor and AMD® Radeon pro wx2100 GPU on an Ubuntu 20.04.6 LTS OS using
Things proceed with a fail at the LIBC_PTHREAD
a few lines later, Checking for GCC x86 inline asm - supported
CMake Warning at cmake/gmxDetectCpu.cmake:86 (message):
CPU detection program did not compile on x86 host - this should never happen… Please file a bug report.
Call Stack (most recent…)

About a page down:
CMake Warning (dev) at /snap/cmake/1276/share/cmake-3.26/Modules/ExternalProject.cmake;3091 (message): the DOWNLOAD_EXTRACT_TIMESTAMP option was not given and policy CMP0135 is not set. The policy’s OLD behavior will be used…
This warning is for project developers…

And finally at the end:
Could NOT find Sphinx… (required… 4.0.0)
build files have been written.

I have successfully build gromacs-2021 on this machine, but here I am.
Any help would be most appreciated.
Thanks for your time.


One likely cause of your problems is -DCMAKE_CXX_COMPILER=gcc. It should be -DCMAKE_CXX_COMPILER=g++.

If that does not help, please share the full log, as well as the output of gcc --version, g++ --version.

Sphinx error is not an issue unless you’re wanting to build documentation webpages locally.

Dear al,
Many thanks! That fixed the, “this should never happen” warning.

I still have the DOWNLOAD_EXTRACT_TIMESTAMP (dev) warning and surmise that for my stand alone installation on my own machine this is not an issue. Out of curiosity, the cmake output warning states that I should, “specify the DOWNLOAD_EXTRACT_TIMESTAMP option with a value of true to avoid this robustness issue”. Would that mean that one should include “-DOWNLOAD_EXTRACT_TIMESTAMP=true” to the cmake arguments?

Again thanks. If this old biophysicist can, with the help of this community, get GROMACS running, virtually anyone can.



Glad that it helped!

Not quite; some of the function calls in our scripts should be changed. CMake is planning to change its default behavior in the future and is asking to explicitly set the desired value. If interested, you can check out CMake documentation.

If the warning is annoying, you can add cmake_policy(SET CMP0135 OLD) to the top-level CMakeLists.txt alongside other cmake_policys to explicitly choose the old behavior. NEW should work fine too, I think.