Open pgovind opened 4 years ago
Tagging subscribers to this area: @ViktorHofer Notify danmosemsft if you want to be subscribed.
cc: @jkoritzinsky @jashook @trylek
I hit this too:
/home/carlos/runtime/src/coreclr/src/tools/aot/crossgen2/crossgen2.csproj(87,5):
error MSB3030:
Could not copy the file "/home/carlos/runtime/artifacts/bin/coreclr/Linux.arm64.Release//x64/libjitinterface.so" because it was not found.
I think the problem is in the path creation - notice the second string has a double //
- I suspect the string was expecting something to get embedded in there.
The problem is here:
since that is using CrossHostArch
which defaults to x64
if TargetArchitecture == arm64
-- I think this is very specialized for cross build inside an x64 host.
As a temporary workaround you could just pass that property globally as empty: /p:CrossHostArch=
.
@trylek @jkoritzinsky maybe we should check the host architecture instead to see if it differs from TargetArchitecture
or is there a way to know if it is a cross build?
Yes we should. We have checks in the installer build for not using the "cross host arch" when Host = Target Arch.
Yeah, $(BuildArchitecture)
is the property.
And we have some properties for this apparently: https://github.com/dotnet/runtime/blob/74b173787bad85eac022b9fb680f247aeda76305/eng/liveBuilds.targets#L77
We should probably just use that property instead to construct the file path.
Hitting this now too, building natively for arm64 on a Macbook.
Just logging an issue I ran into while building dotnet/runtime on WSL2 Arm64:
I'm not super familiar with the build infra, but it looks like a bad path? I see a "/x64" in the error message. Running
find . -name libjitinterface*
gives this:@carlossanlop @safern @eiriktsarpalis