Open gbalykov opened 4 years ago
After dotnet/coreclr#26108 we get next output during build of CoreCLR
@sbomer Could you please take a look?
Looking into it.
@gbalykov Usually our scripts generate the RID in init-distro-rid.sh
, but I don't see where we would be generating the RID tizen.5.5.0-armel
. Are you setting the RID somewhere outside of the build scripts?
I tried to reproduce the above by generating a rootfs following the instructions at https://github.com/dotnet/coreclr/blob/fe851740636b89c052af316576b8d47f0c5edd06/Documentation/building/cross-building.md#generating-the-rootfs, but ran into unrelated errors. Are you able to share instructions for generating the rootfs that you're using? (Which host environment are you using?) If I can reproduce the issue I should be able to fix it.
To generate Tizen 5.5 build rootfs I use this on ubuntu 16.04:
sudo ./cross/build-rootfs.sh armel tizen
Tizen RID tizen.5.5.0-armel
is created from /etc/os-release
in rootfs:
https://github.com/dotnet/coreclr/blob/16b27f7852a223752601f4623abae5c82ca732a1/init-distro-rid.sh#L64
We get there because of: https://github.com/dotnet/coreclr/blob/16b27f7852a223752601f4623abae5c82ca732a1/init-distro-rid.sh#L143
@sbomer do you have any updates on this?
@gbalykov Thanks for the instructions. After figuring out the right cross-build toolset to install, I was able to partially reproduce this.
The first failure shows up even before https://github.com/dotnet/coreclr/pull/26108 so it's not entirely due to the build changes - we're publishing the crossgen with the RID determined by the build scripts, which I take it isn't expected to work for tizen. @MichalStrehovsky do you know why we build crossgen2 differently from the other projects under BuildManagedTools
? Would it make sense just to disable the self-contained publish of this project if the RID is tizen?
I haven't been able to reproduce the restore failure on test_dependencies.csproj, but instead I see something similar for CoreFX.csproj (The specified RuntimeIdentifier 'tizen.5.5.0-armel' is not recognized.
), which could be fixed by delaying the CoreFX restore (unless you are interested in runnning the corefx tests?). Are you still seeing the test_dependencies.csproj
error above?
/cc @jashook
@MichalStrehovsky do you know why we build crossgen2 differently from the other projects under
BuildManagedTools
?
We need to produce a tool that is runnable at testing time. The other tools produced as part of BuildManagedTools don't run as part of test execution - we just produce a DLL and everyone is supposed to ensure they have a dotnet
that can execute it if they need to do that.
Would it make sense just to disable the self-contained publish of this project if the RID is tizen?
Yes, I don't think anyone is going to run a compiler on a TV/phone. It makes little sense to publish it for Tizen.
@sbomer our main problem is with tests building, which we can't do right now. crossgen2
build fail is not a big issue yet. I attach full build log, which we get, (this is on the newest master):
00:15:02.907 + ROOTFS_DIR=/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/coreclr-cross/armel ./build-test.sh release armel cross clang5.0 priority1
00:15:02.969 __DistroRid: tizen.5.5.0-armel
00:15:02.969 __RuntimeId: tizen.5.5.0-armel
00:15:02.969 Building Tests...
00:15:02.977 __BuildOS: Linux
00:15:02.977 __BuildArch: armel
00:15:02.978 __BuildType: Release
00:15:02.978 __TestIntermediatesDir: /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/bin/tests/obj/Linux.armel.Release
00:15:02.979 __NativeTestIntermediatesDir: /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/bin/tests/obj/Linux.armel.Release/Native
00:15:02.979 __ManagedTestIntermediatesDir: /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/bin/tests/obj/Linux.armel.Release/Managed
00:15:02.979 Creating TestBinDir: /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/bin/tests/Linux.armel.Release
00:15:02.979 Creating LogsDir: /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/bin/Logs
00:15:02.983 Creating MsbuildDebugLogsDir: /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/bin/Logs/MsbuildDebugLogs
00:15:02.987 Building step 'Restore product binaries (build tests)' via "/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/eng/common/msbuild.sh" --warnAsError false /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/build.proj /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true /p:UsePartialNGENOptimization=false /maxcpucount "/flp:Verbosity=normal;LogFile=/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/bin/Logs/Restore_Product.Linux.armel.Release.log" "/flp1:WarningsOnly;LogFile=/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/bin/Logs/Restore_Product.Linux.armel.Release.wrn" "/flp2:ErrorsOnly;LogFile=/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/bin/Logs/Restore_Product.Linux.armel.Release.err" /t:BatchRestorePackages /p:__BuildArch=armel /p:PortableBuild=false /p:__BuildType=Release /p:__BuildOS=Linux /nodeReuse:false /p:CLRTestPriorityToBuild=1
00:15:04.209 [22:50:29.51] Restoring all packages...
00:15:26.941 Restore completed in 17.04 sec for /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/test_dependencies/test_dependencies.csproj.
00:16:05.138 Restore completed in 36.17 sec for /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/test_runtime/test_runtime.csproj.
00:16:38.129 Restore completed in 26.1 sec for /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/performance/performance.csproj.
00:16:39.538 /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/Directory.Build.targets(8,3): warning MSB4011: "/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/disableversioncheck.targets" cannot be imported again. It was already imported at "/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/dir.targets (9,3)". This is most likely a build authoring error. This subsequent import will be ignored. [/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj] [/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/build.proj]
00:16:39.696 /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/Directory.Build.targets(8,3): warning MSB4011: "/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/disableversioncheck.targets" cannot be imported again. It was already imported at "/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/dir.targets (9,3)". This is most likely a build authoring error. This subsequent import will be ignored. [/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj] [/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/build.proj]
00:16:40.329 Restore completed in 170.47 ms for /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj.
00:16:41.973 /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/.dotnet/sdk/3.0.100-preview7-012821/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(58,5): error NETSDK1083: The specified RuntimeIdentifier 'tizen.5.5.0-armel' is not recognized. [/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/CoreFX/CoreFX.csproj] [/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/build.proj]
00:16:42.021 /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/build.proj(65,5): error MSB3073: The command "/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/../.dotnet/dotnet restore -r tizen.5.5.0-armel /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/CoreFX/CoreFX.csproj /p:SetTFMForRestore=true" exited with code 1.
00:16:42.040
00:16:42.040 Build FAILED.
00:16:42.040
00:16:42.040 /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/Directory.Build.targets(8,3): warning MSB4011: "/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/disableversioncheck.targets" cannot be imported again. It was already imported at "/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/dir.targets (9,3)". This is most likely a build authoring error. This subsequent import will be ignored. [/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj] [/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/build.proj]
00:16:42.040 /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/Directory.Build.targets(8,3): warning MSB4011: "/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/disableversioncheck.targets" cannot be imported again. It was already imported at "/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/dir.targets (9,3)". This is most likely a build authoring error. This subsequent import will be ignored. [/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj] [/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/build.proj]
00:16:42.042 /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/.dotnet/sdk/3.0.100-preview7-012821/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(58,5): error NETSDK1083: The specified RuntimeIdentifier 'tizen.5.5.0-armel' is not recognized. [/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/CoreFX/CoreFX.csproj] [/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/build.proj]
00:16:42.042 /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/build.proj(65,5): error MSB3073: The command "/var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/../.dotnet/dotnet restore -r tizen.5.5.0-armel /var/lib/jenkins/workspace/netcore/nightly_master/build_coreclr_rpm/repo/code/tests/src/Common/CoreFX/CoreFX.csproj /p:SetTFMForRestore=true" exited with code 1.
00:16:42.042 2 Warning(s)
00:16:42.042 2 Error(s)
We are interested in building CoreCLR/CoreFX tests using build.sh, but we launch them separately from build.sh/msbuild.
@gbalykov is there a package being published for corefx with the RID tizen.5.5.0-armel? /cc @safern
Also I know there was work ongoing to hook up some sort of CI for tizen. Until this is done, I expect Tizen to break often. Generally we modify our build infrastructure after we ship, which I expect to be disruptive to anything we are not explicitly covering in the lab.
We do not publish tizen specific packages right now. Previously, tests build was ok with this, and we used ubuntu nuget packages with tizen rootfs (on x64 ubuntu host). Can it be done the same way, i.e. explicitly passing ubuntu to some option in build.sh/msbuild?
I do not believe this has changed. I had hoped to look further into this, but I did not get to this today.
Either way, the larger issue remains unanswered, today this failure can be fixed, but I have an expectation that without Tizen coverage this will be broken again in the near future. /cc @richlander @mmitche
Assigning to me for now. However, I would like to get an idea of when/how we will avoid breaks in the future.
After dotnet/coreclr#26108 we get next output during build of CoreCLR
Build command with Tizen rootfs:
Where is the new place to add Tizen rids?
Also, built-test.sh fails with next output:
or with
cc @o-piskunov @alpencolt