-
We build windows arm64 runtime from sources on win x86_64 host using Our arm64 build has only mscordaccore_arm64_arm64_.dll which is for using on arm64 host, but we need to debug on win x86_64 machine, so if I understad correctly, we need mscordaccore_amd64_arm64_.dll. So the question: is it possible to build such hybrid mscordaccore_amd64_arm64 from 8.0.19 sources version and how to do this? I tried to setup CLR_CMAKE_HOST_ARCH=x64, but it seems do not work. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
Yes, it is possible to build the hybrid DAC (mscordaccore_amd64_arm64.dll) from the .NET 8.0.19 sources, but you need to explicitly build the cross-architecture DAC. By default, the build system only produces mscordaccore_arm64_arm64.dll, which is for debugging on an ARM64 host. To generate the AMD64-to-ARM64 DAC (for analyzing ARM64 dumps on an x64 WinDbg), you should build with:
This tells the runtime build system that the host (debugger) architecture is x64 while the target architecture is ARM64. After the build completes, you should find If you still see only arm64_arm64, make sure cross-components are enabled. You can also try:
That will build the runtime plus DAC for the cross configuration. In short: yes, you can build it yourself, but you need to select the cross DAC subset and specify both hostarch and arch correctly. |
Beta Was this translation helpful? Give feedback.
-
I found a proper command: |
Beta Was this translation helpful? Give feedback.
I found a proper command:
.\src\coreclr\build-runtime.cmd -arm64 -hostarch x64 -os windows -component crosscomponents -cmakeargs "-DCLR_CROSS_COMPONENTS_BUILD=1"
and I also find that it is already run during the standard build, I just needed to find corresponding artifacts in artifacts folder:
artifacts\bin\coreclr\windows.arm64.Release\x64\sharedFramework\