Closed
Description
When I try cross-building the VMR on x64 for riscv64-linux, aspnetcore fails when tries to use crossgen:
Running crossgen with /dotnet/src/aspnetcore/artifacts/sb/package-cache/microsoft.netcore.app.crossgen2.linux-x64/9.0.0-preview.7.24365.1/tools/crossgen2
Error: Unable to load shared library 'clrjit_unix_riscv64_x64' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable:
/dotnet/src/aspnetcore/artifacts/sb/package-cache/microsoft.netcore.app.crossgen2.linux-x64/9.0.0-preview.7.24365.1/tools/clrjit_unix_riscv64_x64.so: cannot open shared object file: No such file or directory
/dotnet/src/aspnetcore/artifacts/sb/package-cache/microsoft.netcore.app.crossgen2.linux-x64/9.0.0-preview.7.24365.1/tools/libclrjit_unix_riscv64_x64.so: cannot open shared object file: No such file or directory
/dotnet/src/aspnetcore/artifacts/sb/package-cache/microsoft.netcore.app.crossgen2.linux-x64/9.0.0-preview.7.24365.1/tools/clrjit_unix_riscv64_x64: cannot open shared object file: No such file or directory
/dotnet/src/aspnetcore/artifacts/sb/package-cache/microsoft.netcore.app.crossgen2.linux-x64/9.0.0-preview.7.24365.1/tools/libclrjit_unix_riscv64_x64: cannot open shared object file: No such file or directory
After digging a bit, libclrjit_unix_riscv64_x64
is the clrjit library used by crossgen that runs on x64 and produces code for riscv64. ASP.NET Core is expecting this to exist in the microsoft.netcore.app.crossgen2.linux-x64
nuget package. Is this a good assumption? Should libclrjit_unix_riscv64_x64
be produced and shipped in that nuget package?