-
Notifications
You must be signed in to change notification settings - Fork 4.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
Support Runtime native build on Apple arm64. #40149
Comments
PAL is not aware of the possibility of arm64 on OSX, so there are several places that need to be fixed. These are mostly context related places and asm helpers. |
It is not clear who is taking on this task. If no one else is working on this, I'd be happy to fix the compile issues and the assembly issues. |
@sdmaclea I was planning to do the necessary changes in PAL, but if you have spare cycles, I'd be happy to share the work with you. |
My impression was that we need changes in |
There should be no changes needed in libunwind. The fpsimd_context is not defined in the libunwind, but in sigcontext.h on Linux. And there is no fpsimd_context for OSX. The x64 build for OSX doesn't hit the code that returns fpsimd_context. So it seems the build failure is caused by incorrectly getting to the non-OSX code due to some incorrect ifdefs. |
@janvorli I am just getting back from vacation, but I am looking for ways to help the osx-arm64 effort. If there is a convenient split, I'd be happy to help. |
@sdmaclea here is a list of places in PAL that need to be updated: machexceptions.cpp
machmessage.cpp
context.cpp
dispatchexceptionwrapper.S
activationhandlerwrapper.S
context.S
unixasmmacrosarm64.inc
threadinfomac.cpp
Changes in src\coreclr\src\pal\CMakeLists.txt to add arm64 versions of the asm helpers above. I'll be OOF from Wednesday till Sunday, so you can start making the changes and I can pick up what's left (if anything) next week. |
/cc @vargaz |
Currently, there are many projects that are failing:
All failing targets
cmake --build "runtime/artifacts/obj/coreclr/OSX.arm64.Checked" --target libunwind_dac -j 5The most popular errors are:
Build errors:
Linking errors:
One of the root cause for these errors is that we are getting the wrong PROCESSOR in some places:
as @jashook pointed me it could be because some executables are built for x64 and are run under Rosetta2, like:
PTAL @sdmaclea, @janvorli, @jashook
cc @JulieLeeMSFT
The text was updated successfully, but these errors were encountered: