-
Notifications
You must be signed in to change notification settings - Fork 42
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
LLVMExtra JLL doesn't support USE_SYSTEM_LLVM #253
Comments
Notice the library name:
The problem is that LLVMExtra can't |
How did you build Julia or where did you install Julia from? |
julia> versioninfo()
Julia Version 1.6.1
Commit 6aaedecc44* (2021-04-23 05:59 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i7-10710U CPU @ 1.10GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-12.0.0 (ORCJIT, skylake) It's the system package in my manjaro distrubution |
Using julia 1.6.1 downloaded from the julia's website I don't experience the problem |
That makes sense: Manjaro is likely linking Julia against the system LLVM, which doesn't match the SONAME that LLVMExtra has embedded for LLVM. |
@vchuravy this still seems like a regression; could we somehow adjust LLVMExtra so it can just link against whatever libLLVM is already loaded? |
Yes and no. we could try linking against a non-versioned variant of LLVM, but we would still assume at least a shared library built of LLVM (not necessarily the default) and a specific version of LLVM, Manjaro as an example seems to do the same as ArchLinux and link against LLVM 12 (which is not a by us supported LLVM version for Julia 1.6). So the answer is maybe, but we would first need to add a x-ref: SciML/SciMLSensitivity.jl#427 (comment) which is the same version, but for Enzyme. also cc: @staticfloat and @giordano |
In ArchLinux you can use
That'd be similar to the CUDA tag in the platform |
In the long term, I would prefer to request Manjaro to set the |
I assume you mean LLVMExtra_jll? This for me isn't as attractive as a LLVM platform tag. The source code of LLVMExtra supports multiple different LLVM versions (same for Enzyme), it is the built artifact that has a restriction on when it can be loaded. I am assuming that you mean something like:
So what happens when I need to update the API version of LLVMExtra_jll? How do I encode this here? I really don't want to maintain 7 different version lines that map to different LLVM, I want to have one version of LLVMExtra_jll that I can load on multiple different version of LLVM. |
That is also not sufficient since the symbol versioning of LLVM causes a so name mismatch |
I still use the julia from arch community repository. I then downloaded Julia from julia.org (or github release), unzipped it, and placed the file
Now I can |
There's a reason we don't recommend system LLVM, our version has been patched and 'verified' to emit good code, whereas vanilla LLVM has known bugs that may result in run-time problems. Since you're on arch, please use |
I added a better error in Lines 108 to 115 in 341890b
|
On the last release (4.1.0) I get the following error
which is quite weird since libLLVMExtra-11.so is actually there
The text was updated successfully, but these errors were encountered: