Skip to content

Conversation

@omajid
Copy link
Member

@omajid omajid commented Jul 17, 2020

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.

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.
@omajid
Copy link
Member Author

omajid commented Jul 21, 2020

Anyone willing to review this?

The errors musl/arm64 seem entirely unrelated to my changes.

Copy link
Member

@AntonLapounov AntonLapounov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thank you.

@AntonLapounov AntonLapounov merged commit 3b1b623 into dotnet:master Jul 21, 2020
Jacksondr5 pushed a commit to Jacksondr5/runtime that referenced this pull request Aug 10, 2020
@karelz karelz added this to the 5.0.0 milestone Aug 18, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 8, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants