Commit bb527af
committed
Fix hosted crossgen2 build on arm64
crossgen2 (and by extension, runtime) fails to build on an arm64 box.
This is the error I see on Fedora 32 aarch64:
./build.sh
...
crossgen2 -> artifacts/bin/coreclr/Linux.arm64.Debug/crossgen2/crossgen2.dll
src/coreclr/src/tools/aot/crossgen2/crossgen2.csproj(87,5): error MSB3030: Could not copy the file "artifacts/bin/coreclr/Linux.arm64.Debug//x64/libjitinterface.so" because it was not found.
The file is there, just not under the `x64` directory:
$ find -iname libjitinterface.so
./artifacts/bin/coreclr/Linux.arm64.Debug/libjitinterface.so
./artifacts/bin/coreclr/Linux.arm64.Debug/crossgen2/libjitinterface.so
./artifacts/obj/coreclr/Linux.arm64.Debug/src/tools/aot/jitinterface/libjitinterface.so
The actual bug is that crossgen2 seems to assume that if the build is
for an `arm64` RID, it's a cross-build, not a hosted build. Fix that by
explicitly checking `BuildArchitecture` as well.
Please see dotnet/corefx#40453 and
dotnet/core-setup#8468 for related fixes
enabling building for arm64 on an arm64 machine.
I have *not* verified this change in Visual Studio.1 parent 7cc8737 commit bb527af
1 file changed
+1
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| |||
0 commit comments