Disable bootstrap

Also update to .NET 6.0.102

Related: RHBZ#1986211
This commit is contained in:
Omair Majid 2022-02-07 09:25:52 -05:00
parent 490af008ee
commit a7f5bd07e6
6 changed files with 27 additions and 198 deletions

2
.gitignore vendored
View File

@ -1,3 +1,5 @@
/dotnet-9e8b04bbff820c93c142f99a507a46b976f5c14c-x64-bootstrap.tar.xz
/dotnet-arm64-prebuilts-2021-10-29.tar.gz
/dotnet-s390x-prebuilts-2021-10-29.tar.gz
/dotnet-9e8b04bbff820c93c142f99a507a46b976f5c14c.tar.gz
/dotnet-v6.0.102.tar.gz

View File

@ -1,4 +1,4 @@
%bcond_without bootstrap
%bcond_with bootstrap
# Avoid provides/requires from private libraries
%global privlibs libhostfxr
@ -20,11 +20,11 @@
# until that's done, disable LTO. This has to happen before setting the flags below.
%define _lto_cflags %{nil}
%global host_version 6.0.0
%global runtime_version 6.0.0
%global aspnetcore_runtime_version 6.0.0
%global sdk_version 6.0.100
%global templates_version 6.0.0
%global host_version 6.0.2
%global runtime_version 6.0.2
%global aspnetcore_runtime_version %{runtime_version}
%global sdk_version 6.0.102
%global templates_version %{runtime_version}
#%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }')
%global host_rpm_version %{host_version}
@ -33,8 +33,7 @@
%global sdk_rpm_version %{sdk_version}
# upstream can update releases without revving the SDK version so these don't always match
#%%global upstream_tag v%%{sdk_version}-SDK
%global upstream_tag 9e8b04bbff820c93c142f99a507a46b976f5c14c
%global upstream_tag v%{sdk_version}
%if 0%{?fedora} || 0%{?rhel} < 8
%global use_bundled_libunwind 0
@ -60,7 +59,7 @@
Name: dotnet6.0
Version: %{sdk_rpm_version}
Release: 2%{?dist}
Release: 3%{?dist}
Summary: .NET Runtime and SDK
License: MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib
URL: https://github.com/dotnet/
@ -86,10 +85,6 @@ Source11: dotnet.sh.in
Patch100: runtime-arm64-lld-fix.patch
# Mono still has a dependency on (now unbuildable) ILStrip which was removed from CoreCLR: https://github.com/dotnet/runtime/pull/60315
Patch101: runtime-mono-remove-ilstrip.patch
# https://github.com/dotnet/runtime/pull/61442
Patch102: runtime-61442-disable-werror.patch
# https://github.com/dotnet/runtime/pull/62170
Patch103: runtime-62170-clang13.patch
# https://github.com/dotnet/command-line-api/pull/1401
Patch300: command-line-api-use-work-tree-with-git-apply.patch
@ -130,8 +125,6 @@ Patch1501: sdk-22373-portablerid.patch
# https://github.com/dotnet/installer/pull/12516
Patch1600: installer-12516-portablerid.patch
# https://github.com/dotnet/installer/pull/12622
Patch1601: installer-12622-fix-runtime-symbols.patch
%if 0%{?fedora} || 0%{?rhel} >= 8
@ -393,8 +386,6 @@ sed -i 's|/usr/share/dotnet|%{_libdir}/dotnet|' src/runtime.*/src/native/corehos
pushd src/runtime.*
%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch103 -p1
popd
pushd src/command-line-api.*
@ -447,10 +438,6 @@ pushd src/installer.*
%patch1600 -p1
popd
# We need to apply the patch to the already-built tarball's
# repos/runtime.common.targets, not to the installer's "source" copy.
%patch1601 -p5
# Disable package validation which breaks our build.
# There's no need to run validation in RPM packages anyway.
# See https://github.com/dotnet/runtime/pull/60881
@ -528,12 +515,13 @@ ls artifacts/%{runtime_arch}/Release
tar xf artifacts/%{runtime_arch}/Release/dotnet-sdk-%{sdk_version}-%{runtime_id}.tar.gz -C %{buildroot}%{_libdir}/dotnet/
# See https://github.com/dotnet/source-build/issues/2579
find %{buildroot}%{_libdir}/dotnet/ -type f -iname testhost.x86 -delete
find %{buildroot}%{_libdir}/dotnet/ -type f -iname vstest.console -delete
find %{buildroot}%{_libdir}/dotnet/ -type f -name 'testhost.x86' -delete
find %{buildroot}%{_libdir}/dotnet/ -type f -name 'vstest.console' -delete
# Install managed symbols
# Disabled until https://github.com/dotnet/source-build/issues/2623 is sorted out
#tar xf artifacts/%%{runtime_arch}/Release/runtime/dotnet-runtime-symbols-%%{runtime_id}-%%{runtime_version}.tar.gz \
# Install managed symbols: disabled because they don't contain sources
# but point to the paths the sources would have been at in the build
# servers. The end user experience is pretty bad atm.
# tar xf artifacts/%%{runtime_arch}/Release/runtime/dotnet-runtime-symbols-%%{runtime_id}-%%{runtime_version}.tar.gz \
# -C %%{buildroot}/%%{_libdir}/dotnet/shared/Microsoft.NETCore.App/%%{runtime_version}/
# Fix executable permissions on files
@ -577,13 +565,15 @@ install install_location_%{runtime_arch} %{buildroot}%{_sysconfdir}/dotnet/
install -dm 0755 %{buildroot}%{_libdir}/dotnet/source-built-artifacts
install -m 0644 artifacts/%{runtime_arch}/Release/Private.SourceBuilt.Artifacts.*.tar.gz %{buildroot}/%{_libdir}/dotnet/source-built-artifacts/
# Quick and dirty check for https://github.com/dotnet/source-build/issues/2731
test -f %{buildroot}%{_libdir}/dotnet/sdk/%{sdk_version}/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.props
# Check debug symbols in all elf objects. This is not in %%check
# because native binaries are stripped by rpm-build after %%install.
# So we need to do this check earlier.
# FIXME
#echo "Testing build results for debug symbols..."
#%%{SOURCE10} -v %%{buildroot}%%{_libdir}/dotnet/
echo "Testing build results for debug symbols..."
%{SOURCE10} -v %{buildroot}%{_libdir}/dotnet/
@ -648,6 +638,10 @@ test -f %{buildroot}%{_libdir}/dotnet/sdk/%{sdk_version}/Sdks/Microsoft.NET.Sdk/
%changelog
* Tue Feb 15 2022 Omair Majid <omajid@redhat.com> - 6.0.102-3
- Disable bootstrap
- Related: RHBZ#1986211
* Fri Feb 04 2022 Omair Majid <omajid@redhat.com> - 6.0.100-2
- Rebuild and check SDK to avoid an incomplete SDK
- Related: RHBZ#1986211

View File

@ -1,48 +0,0 @@
From 7365824ddc6ed66152cfc50f4c8508368953099c Mon Sep 17 00:00:00 2001
From: Omair Majid <omajid@redhat.com>
Date: Tue, 9 Nov 2021 08:39:27 -0500
Subject: [PATCH] Also publish non-portable RID runtime symbols tarball
This fixes a regression in .NET 6 source-build compared to the .NET
5 source-build.
source-build wants to publish runtime symbols tarball for portable (eg,
linux-x64) and non-portable (eg, fedora.33-x64) RIDs here after a build.
Following .NET 5 conventions, I expected to see:
./artifacts/x64/Release/runtime/dotnet-runtime-symbols-fedora.34-x64-6.0.0.tar.gz
./artifacts/x64/Release/runtime/dotnet-runtime-symbols-linux-x64-6.0.0.tar.gz
Unfortunately, only the portable RID (linux-x64) tarball is present
after a full source-build in .NET 6.
It turns out this is a bug in our build scripts. We try and copy
binaries - including the symbol tarballs - after building each of
runtime-portable and runtime. However, the target dependency is wrong:
after `Build`, the intermediate package doesn't exist from the
just-built repo.
What ends up happening is that nothing is copied after building
runtime-portable. However, after building runtime, the runtime-portable
intermediate artifacts are found and copied over. So the end
build has portable RID symbos, but not the non-portable ones.
Fix that by changing the dependency of this target so it runs after
intermediate packages are available.
---
src/SourceBuild/tarball/content/repos/runtime.common.targets | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/SourceBuild/tarball/content/repos/runtime.common.targets b/src/SourceBuild/tarball/content/repos/runtime.common.targets
index ca606b23d21..862b70dc832 100644
--- a/src/SourceBuild/tarball/content/repos/runtime.common.targets
+++ b/src/SourceBuild/tarball/content/repos/runtime.common.targets
@@ -23,7 +23,7 @@
</Target>
<Target Name="CopyBinariesToBinFolder"
- AfterTargets="Build"
+ AfterTargets="ExtractIntermediatePackages"
Inputs="$(MSBuildProjectFullPath)"
Outputs="$(RepoCompletedSemaphorePath)CopyBinariesToBinFolder.complete">
<ItemGroup>

View File

@ -1,41 +0,0 @@
From f41c06ba040adf1930156340c5b03d9864d8a1d4 Mon Sep 17 00:00:00 2001
From: Omair Majid <omajid@redhat.com>
Date: Wed, 10 Nov 2021 17:54:45 -0500
Subject: [PATCH] The 6.0 branch is no longer pre-release
This has limited affects, but it should have been set to false since 6.0
is now stable/released.
The one difference it makes is that -Werror is disabled when building
native code.
---
Directory.Build.props | 2 +-
eng/native/configureplatform.cmake | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Directory.Build.props b/Directory.Build.props
index f19ea9208c2c..5cb87bb7c257 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -255,7 +255,7 @@
<PackageReleaseNotes>https://go.microsoft.com/fwlink/?LinkID=799421</PackageReleaseNotes>
<!-- Indicates this is not an officially supported release. Release branches should set this to false. -->
<!-- Keep it in sync with PRERELEASE in eng/native/configureplatform.cmake -->
- <IsPrerelease>true</IsPrerelease>
+ <IsPrerelease>false</IsPrerelease>
<IsPrivateAssembly>$(MSBuildProjectName.Contains('Private'))</IsPrivateAssembly>
<!-- Private packages should not be stable -->
<SuppressFinalPackageVersion Condition="'$(SuppressFinalPackageVersion)' == '' and $(IsPrivateAssembly)">true</SuppressFinalPackageVersion>
diff --git a/eng/native/configureplatform.cmake b/eng/native/configureplatform.cmake
index 519431772004..af1c88bce5b6 100644
--- a/eng/native/configureplatform.cmake
+++ b/eng/native/configureplatform.cmake
@@ -2,7 +2,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/functions.cmake)
# If set, indicates that this is not an officially supported release
# Keep in sync with IsPrerelease in Directory.Build.props
-set(PRERELEASE 1)
+set(PRERELEASE 0)
#----------------------------------------
# Detect and set platform variable names

View File

@ -1,76 +0,0 @@
From 9cd95a5608b667e22727d9eb1a5330efd61dfe50 Mon Sep 17 00:00:00 2001
From: Jan Vorlicek <janvorli@microsoft.com>
Date: Mon, 29 Nov 2021 17:32:45 -0800
Subject: [PATCH] Fix clang 13 induced runtime issues
The clang 13 optimizer started to assume that "this" pointer is always
properly aligned. That lead to elimination of some code that was actually
needed.
It also takes pointer aliasing rules more strictly in one place in jit.
That caused the optimizer to falsely assume that a callee with an argument
passed by reference is not modifying that argument and used a stale
copy of the original value at the caller site.
This change fixes both of the issues. With this fix, runtime compiled
using clang 13 seems to be fully functional.
---
src/coreclr/inc/corhlpr.h | 8 ++++----
src/coreclr/jit/bitsetasshortlong.h | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/coreclr/inc/corhlpr.h b/src/coreclr/inc/corhlpr.h
index 450514da95c1..427e8cdc0ff5 100644
--- a/src/coreclr/inc/corhlpr.h
+++ b/src/coreclr/inc/corhlpr.h
@@ -336,7 +336,7 @@ struct COR_ILMETHOD_SECT
const COR_ILMETHOD_SECT* Next() const
{
if (!More()) return(0);
- return ((COR_ILMETHOD_SECT*)(((BYTE *)this) + DataSize()))->Align();
+ return ((COR_ILMETHOD_SECT*)Align(((BYTE *)this) + DataSize()));
}
const BYTE* Data() const
@@ -374,9 +374,9 @@ struct COR_ILMETHOD_SECT
return((AsSmall()->Kind & CorILMethod_Sect_FatFormat) != 0);
}
- const COR_ILMETHOD_SECT* Align() const
+ static const void* Align(const void* p)
{
- return((COR_ILMETHOD_SECT*) ((((UINT_PTR) this) + 3) & ~3));
+ return((void*) ((((UINT_PTR) p) + 3) & ~3));
}
protected:
@@ -579,7 +579,7 @@ typedef struct tagCOR_ILMETHOD_FAT : IMAGE_COR_ILMETHOD_FAT
const COR_ILMETHOD_SECT* GetSect() const {
if (!More()) return (0);
- return(((COR_ILMETHOD_SECT*) (GetCode() + GetCodeSize()))->Align());
+ return(((COR_ILMETHOD_SECT*) COR_ILMETHOD_SECT::Align(GetCode() + GetCodeSize())));
}
} COR_ILMETHOD_FAT;
diff --git a/src/coreclr/jit/bitsetasshortlong.h b/src/coreclr/jit/bitsetasshortlong.h
index d343edeeda4c..365cf346a10a 100644
--- a/src/coreclr/jit/bitsetasshortlong.h
+++ b/src/coreclr/jit/bitsetasshortlong.h
@@ -345,7 +345,7 @@ class BitSetOps</*BitSetType*/ BitSetShortLongRep,
{
if (IsShort(env))
{
- (size_t&)out = (size_t)out & ((size_t)gen | (size_t)in);
+ out = (BitSetShortLongRep)((size_t)out & ((size_t)gen | (size_t)in));
}
else
{
@@ -361,7 +361,7 @@ class BitSetOps</*BitSetType*/ BitSetShortLongRep,
{
if (IsShort(env))
{
- (size_t&)in = (size_t)use | ((size_t)out & ~(size_t)def);
+ in = (BitSetShortLongRep)((size_t)use | ((size_t)out & ~(size_t)def));
}
else
{

View File

@ -1,3 +1 @@
SHA512 (dotnet-9e8b04bbff820c93c142f99a507a46b976f5c14c-x64-bootstrap.tar.xz) = dedbc8619af5141f7cba108c4060cbbcf9c4c4c8968180ed1dc71d2afdf829a99c479b6daaf5c15018b8cd66de14eb6fee9fc4072f81546067544a6a6a20b641
SHA512 (dotnet-arm64-prebuilts-2021-10-29.tar.gz) = e24fb8bb8b0fb24f52a68d472356574d8edf7af554b14618aeeae6ff76b54ce5e6d8a9deb056f9bc052bff8d17bae01c6475217039508bb0e08303f9f6c4b5d1
SHA512 (dotnet-s390x-prebuilts-2021-10-29.tar.gz) = 6ea9d857edce50efd1cc35a73b3b3ccb170bbdb5cc4c8b20fb0ee1c7cb75cc573a565b01ef1bf4eec10a3e6e5209143957425cee5ff3fe24c7c1c89813272a99
SHA512 (dotnet-v6.0.102.tar.gz) = dcb4102b1a6c9e1889d80f8cecf30da00ad16320cbbf14de891db632ebaa0b872501865957429107ade0caef569a2f2ed5ccb70111de7772838b820997f0c36e