-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
[arm] softfloat support is broken with -O=float32 (was: "r4_conv_to_r8 R47 <- R44 *Assertion: should not be reached at decompose.c:1889") #12537
Comments
What platform, CPU architecture is this with? |
right before the assertion, the opcode is printed: Lines 1889 to 1891 in 6fee0c0
@kishorepolepalli do you see some additional output right before the assertion? It should be something with a Depending how long it takes to reproduce, you can try to run Thank you 🙂 |
What platform, CPU architecture is this with? Arm 9core at91sam9g45 in linux |
Any help on this.. Please.. |
r4_conv_to_r8 R47 <- R44 *Assertion: should not be reached at decompose.c:1889 |
Thanks @kishorepolepalli! So let me break this down: $ ag r4_conv_to_r8
mono/mini/mini-ops.h
531:MINI_OP(OP_RCONV_TO_R8,"r4_conv_to_r8", FREG, FREG, NONE) We are looking for Lines 3675 to 3678 in a7cfa88
decompose is right to complain about it, since ARM9 is a target that uses soft float and decompose have to make sure that no instruction is left with a floating point operation. However, OP_RCONV_TO_R8 should be handled much earlier by
Lines 3515 to 3518 in a7cfa88
as Line 4512 in a7cfa88
Something is wrong here. Some more questions:
|
How did you obtain mono? - git repository Hardware : Atmel AT91SAM9 Mono JIT compiler version 5.18.0.225 (tarball Fri Jan 18 11:31:11 UTC 2019) please post how you invoke mono (all its arguments) |
Thanks. I tested a runtime configured for Also do you know where to find the definition files for |
Hello I've come across this running Mono on ARMv5 based machines with all releases following 5.12.0.301. I had to revisit the project and decided to see how 5.18.0.240 behaved.
Let me know what further information and test resource I can provide. Best
|
FYI - the above could be generated by running the following, no need to try and run the program.
Best
|
@solabc16 could you run $ MONO_VERBOSE_METHOD='Hashtable:.ctor' MONO_ENV_OPTIONS='-O=-inline,-aot' ./b/bin/ikdasm hello.exe -assembly and post the output here please? Also, where can I found how this 5.18.0.240 mono is built? |
Hello @lewurm Please find the output from the above below, this version of Mono (5.18.0.240) has been built with GCC 5.5 and 6.5; both producing the same results. The configure used for the build was as follows:-
Do let me know if you need any further information. Best
log: https://gist.github.com/lewurm/542807672b47bbb46c6fa13f62dec2ad |
Thanks @solabc16, this was useful. Some months ago we turned on Note to myself: passing We can fix it, but I think it's easier to just force |
Hello @lewurm, thanks for the above - including the background information, that's moved us moved. This appears to have resolved the initial problem and we no longer receive the assertion when running either ikdasm or the application itself. However, we now experience the SIGABRT below. This same application is running fine on ARMv7, AARCH64, x86 and x86_64 targets. Are there any further optimisations we should look at disabling and/or any pointers for how to troubleshoot this further? Best
|
Hello @lewurm, following on from the above... I started off with the somewhat coarse MONO_ENV_OPTIONS="--optimize=-all", which got the application running. After a bit of trial and error, I managed to refine this to MONO_ENV_OPTIONS="--optimize=-float32,-inline". So far testing has progressed well and we haven't run into any further issues. Is the use of inline optimisation expected to cause issues with ARMv5 machines? Let me know if you need any further details. Best
|
@solabc16 |
Ok @lewurm, thanks, I'll do some more work on this next week and get a better stack trace for this. And yes... good point on gist! Best
|
Hi, I'm also trying to build for armv5 but fail on runtime. I'm building all jit libs on my x86 comp and the natives on the arm processor (with --disable-mcs-build). After it's all built I'm merging the two. Tried building with but failed with both of them. any ideas? https://gist.github.com/ricebus/3a78c6abd015d5991027ee1124dc3a3e |
@ricebus sorry I made I type in my comment above, it should be MONO_ENV_OPTIONS='-O=-aot,-float32' instead of MONO_ENV_OPTIONS='-O=,-aot,-float32' If everything fails, try |
Oh, I didn't get that. I thought it's a compile time flag. https://gist.github.com/ricebus/67bd0477f8f95d25a5f654c20ebb52a8 |
@ricebus this is a different problem, please open a separate issue for that |
I'm getting this exact same error on the armel debian packages provided by mono. Using the latest download. Running on a Lego EV3 with and ev3dev
So its not just custom builds, but the mono provided build as well.
|
I can confirm the same error on ARM9-based Lego Mindstorms EV3 with fresh install of Ev3Dev and Mono installed with apt. The problem occurs even while installing
And same as above when running an app. I've exported |
* Update mono - update mono to version 5.20 - update mono icon - add symlinks (fix #3755) - remove obsolete patch * add workaround for mono bug with armv5 - ref: mono/mono#12537
In the workaround the SYNOPKG_DSM_ARCH 88f6282 should also be included as this model throws the same error. |
Yup, 88f6282 is needed as well. |
Was wondering if there were any updates on this issue. We recently had a user on a 88f6281 arch experience crashes on the initial install. In both cases the script was running the cert-sync function. I don't believe that the cert-sync is able to use the environment variables proposed above to workaround the issue. Below are the logs with two different builds. For mono version (5.20.1.34):
A similar log is shown with the newer mono version (6.12.0.182):
|
Steps to Reproduce
*r4_conv_to_r8 R47 <- R44
Assertion: should not be reached at decompose.c:1889
Current we are not able to run any mono application
Expected Behavior
we should be to run any mono application
On which platforms did you notice this
[ ] Linux
Version Used:
5.18
Stacktrace
The text was updated successfully, but these errors were encountered: