This patch is primarily about the change in "mlir/tools/mlir-cpu-runner/CMakeLists.txt". LLJIT needs access to symbols (e.g. llvm_orc_registerEHFrameSectionWrapper) that will be defined in the executable when LLVM is linked statically. This change is consistent with how other tools within LLVM use LLJIT. It is required to make sure that: ``` $ mlir-cpu-runner --host-supports-jit ``` correctly returns `true` on platforms that do support JITting (in my case that's AArch64 Linux). The change in "mlir/lib/ExecutionEngine/CMakeLists.txt" is required to avoid ODR violations when symbols from `mlir-cpu-runner` are exported and when loading `libmlir_async_runtime.so` in `mlir-cpu-runner`. Specifically, to avoid `EnableABIBreakingChecks` being defined twice. For more context: * https://github.com/llvm/llvm-project/issues/61712 * https://github.com/llvm/llvm-project/issues/61856 * https://reviews.llvm.org/D146935 (this PR) This change relands ccdcfad0815296d8952438632d9abe6bc0a5258a Fixes #61856 Differential Revision: https://reviews.llvm.org/D146935