Add arm64 architecture to the shared store
pjanotti opened this issue · comments
The list at dotnet/runtime has other values but because of Apple M1 boxes, we may want to provide arm64
by default.
Adding all arch
to the shared store doesn't seem scalable, ideally, we would have a way to automatically select the proper |arch|/|tfm|
pair upon installing on the box. However, as mentioned, arm64
may be popular enough to justify its addition even without the general mechanism.
Temporary Workaround: rename $DOTNET_SHARED_STORE/x64/
to $DOTNET_SHARED_STORE/arm64/
. The assemblies under the folder are IL only so source instrumentations are expected to work without issues. The native component is not supported on arm64 yet and given that the default rule engine will fail startup if it is enabled it needs to be disabled removing or setting the environment variable CORECLR_ENABLE_PROFILING
to 0
.
[EDIT 01: Update workaround since it is not going to work with the default rule engine checks.]
One possibility is to create symbolic links to a single architecture since we use the same IL-only components.
Today, even I was exploring about symbolic link. If we get this working we could reduce our package size by and solve issues for all architecture.
I am not sure if it will be good idea to support only managed code on arm64.
It should be done together with #1865
Removing from 1.0.0-rc milestone. I think that we can add this support after 1.0.0 release, both for sourcecode and bytecode instrumenation. I would like to avoid only partial support.