-
Notifications
You must be signed in to change notification settings - Fork 26
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
Illegal hardware instruction #14
Comments
Oh, I felt in my guts it will come back. I'll fix it as soon as I can, probably after the weekend. |
Previously, when I was discussing a M1 build, it was a native M1 build. Although my program requires x86-64 for everything to work, I do most of my development on a M1 (and I just don't use the parts that don't work there). I had never had a problem with Rosetta2 before, so I hadn't adequately tested it until I made my release builds (using a GitHub Actions build server automated process) that builds x86-64 binaries for Mac. Those binaries are the ones that give the illegal hardware instruction when running on an M1. As a test, I changed the -mfma to -mno-fma in the CMakeLists.txt and re-built a x86-64 binary. It runs (without the illegal hardware instruction) on my M1 Mac. It also seems to work for certain simple cases. However, for a more complex test case, it sends Delabella into an infinite loop on both M1 and x86-64. I will try to isolate a case that exhibits this behavior. |
This test file (using the test application from before) will go into an infinite loop when Delabella is built with -mno-fma on clang/xcode. The infinite loop is actually in constrain edges, not the main triangulation. |
It appears that Delabella does not work in Rosetta2 on M1 Macs.
At present, some unrelated issues prevent me from compiling my application as a native aarch64 application for M1 Macs. Instead, I rely on the emulator Rosetta2 to run an X86-64 build on the M1 Mac. This has always worked before.
Now with Delabella, the program crashes on load with 'illegal hardware instruction'.
It appears that Rosetta2 does not support any AVX instructions. I suspect the problem may be the FMA instruction, I will try to build without it and report back. Unfortunately, I seem to recall running into other problems if I built without FMA before...
The text was updated successfully, but these errors were encountered: