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
LLVM JIT on Linux x64 not working #12030
Comments
Same as #10868 but with more info |
This time with
|
Ok the exception shows why:
We explicitly only support LLVM JIT on OSX. |
is this wanted or a mistake? |
@migueldeicaza ^ any comments? |
No one has tried it yet. Chances are good that it just works. Feel free to try it, test it and submit a PR 🙂 or report issues here otherwise. |
[mini] re-enable LLVM for Linux JIT This re-enables the Linux JIT as suggested in #12030
@directhex Can we get updated packages with the above change? |
Sorry, not ignoring this, just have been 100% consumed with the Debian/Ubuntu upload. That should be wrapping up, so I can look to this today or Monday. |
@migueldeicaza I think there's an issue with
You can see However, that symbol isn't exported, so can't be found by the LLVM JIT:
End result:
|
Starting on this now. My linux desktop is building everything. |
I am not seeing this on x64 ubuntu 16.04 with in-tree LLVM:
|
@alexanderkyte, any update on this? Thanks. |
OK, so, with Mono nightly (4111910) built against the out-of-tree branch tip of release_60 mono/llvm (286f43185878a77fdc78c3303db68e514969bc30) I get:
Seems boned? |
We've done a backport, and found the blamed commit is 352639f |
Looks like a change made by @vargaz, I can look into it later today |
@alexanderkyte 352639f is the cause of the I'll start tracking down this JIT issue, but bisecting is likely much harder since it hasn't worked in forever. |
Huh. Well, that's interesting. Using in-tree LLVM rather than out-of-tree, does not throw the error from #12030 (comment) - it throws a different, exciting error: writing
forever. |
So, the problem is with out-of-tree loadedllvm (there's ANOTHER issue with in-tree; sigh) It builds fine, but the assert is at https://github.com/mono/mono/blob/master/mono/mini/llvm-jit.cpp#L297 because the call to EB.selectTarget () returns null. Which is... not right. Trying to determine how & why that ends up being the case. |
I'm looking at 2 root causes, both of which are stupid as hell. Will report back. |
|
It looks like long cigarette drag this is a question of whether LLVM was built with Here's a sample program:
Compiled thus: And the result:
Here's the SAME program, compiled with the SAME command line, against the SAME out-of-tree LLVM built with `LLVM_TARGETS_TO_BUILD="Native":
|
FIXED IN MASTER \o/ I'll re-enable the LLVM JIT test in master now. |
LLVM AOT is OK, but LLVM JIT isn't.
This is with an out-of-tree build of LLVM, with git commit matching the in-tree builds.
The text was updated successfully, but these errors were encountered: