This patch updates the cmake options suggested when cross compiling. This should fix #52819.
Brad King (Member of CMake) says:
The linked CMAKE_CROSSCOMPILING documentation says:
This variable will be set to true by CMake if the CMAKE_SYSTEM_NAME variable has been set manually (i.e. in a toolchain file or as a cache entry from the cmake command line).
It is not meant to be set by project code or toolchain files. It is always set automatically. Don't put set(CMAKE_CROSSCOMPILING ON) anywhere in your code.
CMAKE_CROSSCOMPILING indicates only whether CMAKE_SYSTEM_NAME was set by the user/project/toolchain-file instead of by CMake.
In LLVM project, CMAKE_CROSSCOMPILING is used to determine whether to execute some tests on the host machine.
LLVM needs to use another method for that. CMAKE_CROSSCOMPILING is not a reliable indicator of whether produced binaries will run on the host, and does not claim so in its documentation. If one sets CMAKE_SYSTEM_NAME to Linux in a toolchain file, and builds on a Linux host, that doesn't mean the target architecture or minimum glibc version is the same.