Description
Recently, after test build, I cannot find crossgen2 executable.
How I build test.
$ export BuildAllTestsAsStandalone=true
$ ROOTFS_DIR=<riscv64 rootfs> ./src/tests/build.sh -riscv64 -Release -priority1 -cross -p:UseLocalAppHostPack=true
Files in crossgen2 directory of old artifact.
$ ls artifacts/tests/coreclr/linux.riscv64.Release/Tests/Core_Root/crossgen2
corerun libclrjit_unix_riscv64_riscv64.so libjitinterface_riscv64.so libSystem.IO.Compression.Native.a libSystem.Native.so LICENSE.TXT
createdump libcoreclr.so libmscordaccore.so libSystem.IO.Compression.Native.so libSystem.Net.Security.Native.a
crossgen2 libcoreclrtraceptprovider.so libmscordbi.so libSystem.IO.Ports.Native.a libSystem.Net.Security.Native.so
libclrgc.so libhostfxr.so libSystem.Globalization.Native.a libSystem.IO.Ports.Native.so libSystem.Security.Cryptography.Native.OpenSsl.a
libclrjit.so libhostpolicy.so libSystem.Globalization.Native.so libSystem.Native.a libSystem.Security.Cryptography.Native.OpenSsl.so
Files in crossgen2 directory of latest artifact.
$ ls artifacts/tests/coreclr/linux.riscv64.Release/Tests/Core_Root/crossgen2
libclrjit_unix_riscv64_x64.so libjitinterface_x64.so
I cannot find crossgen2_publish
directory in artifacts/bin/
From #106965, we need crossgen2 executable to execute some R2R tests in clrtest.
These are failed clrtests due to this issue on RISC-V.
Regressions/coreclr/GitHub_49826/test49826/test49826.sh
Regressions/coreclr/GitHub_49982/test49982/test49982.sh
Regressions/coreclr/GitHub_61104/test61104/test61104.sh
baseservices/TieredCompilation/BasicTestWithMcj/BasicTestWithMcj.sh
baseservices/TieredCompilation/BasicTest_DefaultMode_R2r/BasicTest_DefaultMode_R2r.sh
baseservices/TieredCompilation/BasicTest_QuickJitForLoopsOff_R2r/BasicTest_QuickJitForLoopsOff_R2r.sh
baseservices/TieredCompilation/BasicTest_QuickJitForLoopsOn_R2r/BasicTest_QuickJitForLoopsOn_R2r.sh
baseservices/TieredCompilation/BasicTest_QuickJitOn_R2r/BasicTest_QuickJitOn_R2r.sh
baseservices/TieredCompilation/BasicTest_QuickJitOff_R2r/BasicTest_QuickJitOff_R2r.sh
readytorun/GenericCycleDetection/Breadth1Test/Breadth1Test.sh
readytorun/GenericCycleDetection/Depth1Test/Depth1Test.sh
readytorun/GenericCycleDetection/Depth3Test/Depth3Test.sh
readytorun/crossgen2/crossgen2smoke/crossgen2smoke.sh
readytorun/determinism/crossgen2determinism/crossgen2determinism.sh
readytorun/fieldlayout/fieldlayout/fieldlayout.sh
readytorun/tests/mainv1/mainv1.sh
readytorun/tests/mainv2/mainv2.sh
readytorun/tests/genericsload/callgenericctor/callgenericctor.sh
readytorun/tests/genericsload/usegenericfield/usegenericfield.sh
readytorun/coreroot_determinism/coreroot_determinism/coreroot_determinism.sh
Error message is like ./test49826.sh: line 328: /linux.riscv64.Checked/Tests/Core_Root/crossgen2/crossgen2: No such file or directory
message.
As far as I know, test build fails from #107772 and test build doesn't make crossgen2 executable from #108693
I tried some to make crossgen2. However, I can't.
(*. I can just made a crosgen2 and passed tests if I revert #107772, #108693, and #103375 and set PublishReadyToRun
to false in crossgen2_publish.csproj
. I never think it is a right approach.)
I don't know well about build environment. Could you please help?
Thank you.