-
Notifications
You must be signed in to change notification settings - Fork 12.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[LLJIT][AArch64] HowToUseLLJI: Symbols not found #61712
Comments
@llvm/issue-subscribers-orcjit |
@banach-space Looks like the This should be fixed by 2ad8e6e. |
Brilliant, thank you so much! Follow-up specifically for |
banach-space
added a commit
that referenced
this issue
Mar 28, 2023
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). See #61712 for more context. Differential Revision: https://reviews.llvm.org/D146935
banach-space
added a commit
that referenced
this issue
Apr 7, 2023
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: * #61712 * #61856 * https://reviews.llvm.org/D146935 (this PR) This change relands ccdcfad Fixes #61856 Differential Revision: https://reviews.llvm.org/D146935
gysit
pushed a commit
to nextsilicon/llvm-project
that referenced
this issue
Apr 27, 2023
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: * llvm#61712 * llvm#61856 * https://reviews.llvm.org/D146935 (this PR) This change relands ccdcfad Fixes llvm#61856 Differential Revision: https://reviews.llvm.org/D146935
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hiya,
I'm trying to use HowToUseJIT on AArch64 running on Linux, but sadly it fails:
Below is a full debug dump:
Somewhat confusingly, this example works just fine on Mac M1:
These are uncharted waters for me, but from what I can see, LLJIT fails in CreateObjectLinkingLayer.
@lhames - you seem to be most active in this area. I'm happy to dive deeper, but would appreciate some pointers. This affects the behavior of mlir-cpu-runner (specfically, the host-supports-jit flag), that I'd like to use for end-to-end tests for AArch64.
Tested using ToT: 3245bcd
Thanks for taking a look,
-Andrzej
The text was updated successfully, but these errors were encountered: