Update to .NET SDK 7.0.101 and Runtime 7.0.1

Resolves: RHBZ#2150150
This commit is contained in:
Omair Majid 2023-01-17 14:24:41 -05:00
parent c070504d30
commit 72349ef837
11 changed files with 13 additions and 336 deletions

1
.gitignore vendored
View File

@ -9,3 +9,4 @@
/dotnet-s390x-prebuilts-2022-10-12.tar.gz
/dotnet-ppc64le-prebuilts-2022-10-21.tar.gz
/dotnet-v7.0.100.tar.gz
/dotnet-v7.0.101.tar.gz

View File

@ -1,24 +0,0 @@
From d77f55bc7c5f6dd087113b6e93b7778d3ebcdbb4 Mon Sep 17 00:00:00 2001
From: Sapana Khemkar <sapana.khemkar@ibm.com>
Date: Fri, 14 Oct 2022 05:44:54 +0000
Subject: [PATCH] add ppc64le arch to crossgen2 not available list
---
.../App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/aspnetcore/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj b/src/aspnetcore/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj
index c062788037..4dfa88f7d6 100644
--- a/src/aspnetcore/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj
+++ b//src/aspnetcore/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj
@@ -42,8 +42,8 @@ This package is an internal implementation of the .NET Core SDK and is not meant
<!-- Pack .ni.r2rmap files in symbols package (native symbols for Linux) -->
<AllowedOutputExtensionsInSymbolsPackageBuildOutputFolder>$(AllowedOutputExtensionsInSymbolsPackageBuildOutputFolder);.r2rmap</AllowedOutputExtensionsInSymbolsPackageBuildOutputFolder>
- <!-- Optimize the framework using the crossgen2 tool. Crossgen2 is not currently supported on s390x. -->
- <CrossgenOutput Condition=" '$(TargetArchitecture)' == 's390x' ">false</CrossgenOutput>
+ <!-- Optimize the framework using the crossgen2 tool. Crossgen2 is not currently supported on s390x or ppc64le or armv6. -->
+ <CrossgenOutput Condition=" '$(TargetArchitecture)' == 's390x' OR '$(TargetArchitecture)' == 'armv6' OR '$(TargetArchitecture)' == 'ppc64le' ">false</CrossgenOutput>
<CrossgenOutput Condition=" '$(CrossgenOutput)' == '' AND '$(Configuration)' != 'Debug' ">true</CrossgenOutput>
<!-- Produce crossgen2 profiling symbols (.ni.pdb or .r2rmap files). -->

View File

@ -6,10 +6,10 @@
# until that's done, disable LTO. This has to happen before setting the flags below.
%define _lto_cflags %{nil}
%global host_version 7.0.0
%global runtime_version 7.0.0
%global aspnetcore_runtime_version 7.0.0
%global sdk_version 7.0.100
%global host_version 7.0.1
%global runtime_version 7.0.1
%global aspnetcore_runtime_version %{runtime_version}
%global sdk_version 7.0.101
%global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|')
%global templates_version %{runtime_version}
#%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }')
@ -51,7 +51,7 @@
Name: dotnet7.0
Version: %{sdk_rpm_version}
Release: 1%{?dist}
Release: 2%{?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/
@ -77,20 +77,8 @@ Source11: dotnet.sh.in
# https://github.com/dotnet/installer/pull/14792
Patch1: installer-14792-mono.patch
# https://github.com/dotnet/aspnetcore/pull/44583
Patch2: aspnetcore-44583-ppc64le-crossgen.patch
# https://github.com/dotnet/runtime/pull/77269
Patch3: runtime-77269-mono-ppc64le-opcheckthis.patch
# https://github.com/dotnet/runtime/pull/77270
Patch4: runtime-77270-ppc64le-fsharp-crash.patch
# https://github.com/dotnet/runtime/pull/77308
Patch5: runtime-77308-ppc64le-delegate.patch
# Disable apphost; there's no net6.0 apphost for ppc64le
Patch6: roslyn-analyzers-ppc64le-apphost.patch
# https://github.com/dotnet/runtime/pull/77682
Patch7: runtime-77682-mono-cgroup-min-memory.patch
# TODO upstream this fix
Patch8: runtime-mono-ppc64le-clang15.patch
Patch2: roslyn-analyzers-ppc64le-apphost.patch
%if 0%{?fedora} || 0%{?rhel} >= 8
@ -413,12 +401,6 @@ popd
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
# Fix bad hardcoded path in build
sed -i 's|/usr/share/dotnet|%{_libdir}/dotnet|' src/runtime/src/native/corehost/hostmisc/pal.unix.cpp
@ -630,7 +612,6 @@ export COMPlus_LTTng=0
%{_libdir}/dotnet/sdk/%{sdk_version}
%dir %{_libdir}/dotnet/sdk-manifests
%{_libdir}/dotnet/sdk-manifests/%{sdk_feature_band_version}
%{_libdir}/dotnet/sdk-manifests/%{sdk_feature_band_version}-rc.1
%{_libdir}/dotnet/metadata
%dir %{_libdir}/dotnet/packs
@ -640,6 +621,10 @@ export COMPlus_LTTng=0
%changelog
* Wed Jan 11 2023 Omair Majid <omajid@redhat.com> - 7.0.101-2
- Update to .NET SDK 7.0.101 and Runtime 7.0.1
- Resolves: RHBZ#2150150
* Wed Nov 09 2022 Omair Majid <omajid@redhat.com> - 7.0.100-1
- Update to .NET 7 GA release
- Resolves: RHBZ#2137944

View File

@ -23,92 +23,6 @@ to work with mono.
create mode 100644 src/SourceBuild/tarball/patches/runtime/0001-source-build-support-building-with-mono-runtime.patch
create mode 100644 src/SourceBuild/tarball/patches/sdk/0001-source-build-support-building-with-mono-runtime.patch
diff --git a/eng/SourceBuild.props b/eng/SourceBuild.props
index a2831d57455..9ebca97ff90 100644
--- a/src/installer/eng/SourceBuild.props
+++ b/src/installer/eng/SourceBuild.props
@@ -11,6 +11,7 @@
<InnerBuildArgs>$(InnerBuildArgs) /p:IncludeNuGetPackageArchive=false</InnerBuildArgs>
<InnerBuildArgs>$(InnerBuildArgs) /p:IncludeAdditionalSharedFrameworks=false</InnerBuildArgs>
<InnerBuildArgs>$(InnerBuildArgs) /p:IncludeSharedFrameworksForBackwardsCompatibilityTests=false</InnerBuildArgs>
+ <InnerBuildArgs Condition="'$(SourceBuildUseMonoRuntime)' == 'true'">$(InnerBuildArgs) /p:DISABLE_CROSSGEN=true</InnerBuildArgs>
</PropertyGroup>
</Target>
diff --git a/Directory.Build.props b/Directory.Build.props
index 860785575f7..982fb7f0725 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -24,6 +24,11 @@
<UseStableVersions Condition="'$(UseStableVersions)' == ''">false</UseStableVersions>
+ <SourceBuildUseMonoRuntime>false</SourceBuildUseMonoRuntime>
+ <!-- These architectures are only supported with mono runtime -->
+ <SourceBuildUseMonoRuntime Condition="'$(BuildArchitecture)' == 's390x'">true</SourceBuildUseMonoRuntime>
+ <SourceBuildUseMonoRuntime Condition="'$(BuildArchitecture)' == 'ppc64le'">true</SourceBuildUseMonoRuntime>
+
<!-- new supported portable/nonportable options. These control whether to build portable runtime
or portable SDK. The PortableBuild flag is only set in runtime-portable.proj and should
no longer be passed in. -->
diff --git a/build.sh b/build.sh
index e899d2f808c..17699c78cb7 100755
--- a/build.sh
+++ b/build.sh
@@ -11,6 +11,7 @@ usage() {
echo " --run-smoke-test don't build; run smoke tests"
echo " --with-packages <dir> use the specified directory of previously-built packages"
echo " --with-sdk <dir> use the SDK in the specified directory for bootstrapping"
+ echo " --use-mono-runtime output uses the mono runtime"
echo "use -- to send the remaining arguments to MSBuild"
echo ""
}
@@ -65,6 +66,9 @@ while :; do
fi
shift
;;
+ --use-mono-runtime)
+ MSBUILD_ARGUMENTS+=( "/p:SourceBuildUseMonoRuntime=true" )
+ ;;
--)
shift
echo "Detected '--': passing remaining parameters '$@' as build.sh arguments."
diff --git a/repos/Directory.Build.props b/repos/Directory.Build.props
index e4e3060af7f..04ab89d11dc 100644
--- a/repos/Directory.Build.props
+++ b/repos/Directory.Build.props
@@ -143,6 +143,7 @@
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:AdditionalSourceBuiltNupkgCacheDir="$(SourceBuiltPackagesPath)"</StandardSourceBuildArgs>
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:ReferencePackageNupkgCacheDir="$(ReferencePackagesDir)"</StandardSourceBuildArgs>
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:PreviouslySourceBuiltNupkgCacheDir="$(PrebuiltSourceBuiltPackagesPath)"</StandardSourceBuildArgs>
+ <StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:SourceBuildUseMonoRuntime=$(SourceBuildUseMonoRuntime)</StandardSourceBuildArgs>
<StandardSourceBuildCommand>$(ProjectDirectory)\build$(ShellExtension)</StandardSourceBuildCommand>
</PropertyGroup>
diff --git a/src/aspnetcore/eng/SourceBuild.props b/src/aspnetcore/eng/SourceBuild.props
index 32108e1f..3dfbd5ef 100644
--- a/src/aspnetcore/eng/SourceBuild.props
+++ b/src/aspnetcore/eng/SourceBuild.props
@@ -55,6 +55,7 @@
<PropertyGroup>
<InnerBuildArgs>$(InnerBuildArgs) /p:SourceBuildRuntimeIdentifier=$(TargetRuntimeIdentifier)</InnerBuildArgs>
+ <InnerBuildArgs Condition="'$(SourceBuildUseMonoRuntime)' == 'true'">$(InnerBuildArgs) /p:CrossgenOutput=false</InnerBuildArgs>
</PropertyGroup>
</Target>
diff --git a/src/runtime/eng/SourceBuild.props b/src/runtime/eng/SourceBuild.props
index c197d8afd..55c1c1d22 100644
--- a/src/runtime/eng/SourceBuild.props
+++ b/src/runtime/eng/SourceBuild.props
@@ -41,6 +41,7 @@
<InnerBuildArgs>$(InnerBuildArgs) /p:EnableNgenOptimization=false</InnerBuildArgs>
<InnerBuildArgs>$(InnerBuildArgs) /p:EnablePackageValidation=false</InnerBuildArgs>
<InnerBuildArgs>$(InnerBuildArgs) /p:DisableSourceLink=false</InnerBuildArgs>
+ <InnerBuildArgs Condition="'$(SourceBuildUseMonoRuntime)' == 'true'">$(InnerBuildArgs) /p:PrimaryRuntimeFlavor=Mono /p:RuntimeFlavor=Mono</InnerBuildArgs>
</PropertyGroup>
</Target>
diff --git a/src/sdk/eng/SourceBuild.props b/src/sdk/eng/SourceBuild.props
index 61b9a913708..2107a718419 100644
--- a/src/sdk/eng/SourceBuild.props

View File

@ -47,6 +47,7 @@ new_name=${new_name/.tar.gz}
echo "Original: ${original_name}.tar.gz"
echo "New name: ${new_name}.tar.gz"
rm -rf "temp-${new_name}"
mkdir "temp-${new_name}"
pushd "temp-${new_name}" > /dev/null
tar xf "${original_path}"

View File

@ -1,23 +0,0 @@
From f163003da28cd01866b15233116d5efd53b1a2ef Mon Sep 17 00:00:00 2001
From: Sapana Khemkar <sapana.khemkar@ibm.com>
Date: Thu, 13 Oct 2022 07:45:23 +0000
Subject: [PATCH] use byte load instruction in OP_CHECK_THIS instead of double
word instruction
---
src/runtime/src/mono/mono/mini/mini-ppc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/runtime/src/mono/mono/mini/mini-ppc.c b/src/runtime/src/mono/mono/mini/mini-ppc.c
index bc97b497af93a..a2d8c5a714e3b 100644
--- a/src/runtime/src/mono/mono/mini/mini-ppc.c
+++ b/src/runtime/src/mono/mono/mini/mini-ppc.c
@@ -3837,7 +3837,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
}
case OP_CHECK_THIS:
/* ensure ins->sreg1 is not NULL */
- ppc_ldptr (code, ppc_r0, 0, ins->sreg1);
+ ppc_lbz (code, ppc_r0, 0, ins->sreg1);
break;
case OP_ARGLIST: {
long cookie_offset = cfg->sig_cookie + cfg->stack_usage;

View File

@ -1,56 +0,0 @@
From 14749457ff716cebd043b4e41aad622f9ac89586 Mon Sep 17 00:00:00 2001
From: Alhad Deshpande <Alhad.Deshpande1@ibm.com>
Date: Wed, 19 Oct 2022 06:29:54 +0000
Subject: [PATCH] Fixed FSharp crash issue
---
src/mono/mono/mini/mini-ppc.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/runtime/src/mono/mono/mini/mini-ppc.c b/src/runtime/src/mono/mono/mini/mini-ppc.c
index bc97b497af93a..3df60c6a925f6 100644
--- a/src/runtime/src/mono/mono/mini/mini-ppc.c
+++ b/src/runtime/src/mono/mono/mini/mini-ppc.c
@@ -3782,23 +3782,11 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
ppc_addis (code, ppc_r12, cfg->frame_reg, ppc_ha(cfg->stack_usage));
ppc_addi (code, ppc_r12, ppc_r12, cfg->stack_usage);
}
- if (!cfg->method->save_lmf) {
- pos = 0;
- for (i = 31; i >= 13; --i) {
- if (cfg->used_int_regs & (1 << i)) {
- pos += sizeof (target_mgreg_t);
- ppc_ldptr (code, i, -pos, ppc_r12);
- }
- }
- } else {
- /* FIXME restore from MonoLMF: though this can't happen yet */
- }
/* Copy arguments on the stack to our argument area */
if (call->stack_usage) {
code = emit_memcpy (code, call->stack_usage, ppc_r12, PPC_STACK_PARAM_OFFSET, ppc_sp, PPC_STACK_PARAM_OFFSET);
/* r12 was clobbered */
- g_assert (cfg->frame_reg == ppc_sp);
if (ppc_is_imm16 (cfg->stack_usage)) {
ppc_addi (code, ppc_r12, cfg->frame_reg, cfg->stack_usage);
} else {
@@ -3809,6 +3797,18 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
}
}
+ if (!cfg->method->save_lmf) {
+ pos = 0;
+ for (i = 31; i >= 13; --i) {
+ if (cfg->used_int_regs & (1 << i)) {
+ pos += sizeof (target_mgreg_t);
+ ppc_ldptr (code, i, -pos, ppc_r12);
+ }
+ }
+ } else {
+ /* FIXME restore from MonoLMF: though this can't happen yet */
+ }
+
ppc_mr (code, ppc_sp, ppc_r12);
mono_add_patch_info (cfg, (guint8*) code - cfg->native_code, MONO_PATCH_INFO_METHOD_JUMP, call->method);
cfg->thunk_area += THUNK_SIZE;

View File

@ -1,60 +0,0 @@
diff --git a/src/runtime/src/mono/mono/mini/mini-ppc.c b/src/runtime/src/mono/mono/mini/mini-ppc.c
index db669f8b5da0f..73a26c02b18aa 100644
--- a/src/runtime/src/mono/mono/mini/mini-ppc.c
+++ b/src/runtime/src/mono/mono/mini/mini-ppc.c
@@ -470,10 +470,54 @@ mono_arch_get_delegate_invoke_impl (MonoMethodSignature *sig, gboolean has_targe
return start;
}
+/**
+ *
+ * @brief Architecture-specific delegation virtual trampoline processing
+ *
+ * @param[in] @sig - Method signature
+ * @param[in] @method - Method
+ * @param[in] @offset - Offset into vtable
+ * @param[in] @load_imt_reg - Whether to load the LMT register
+ * @returns Trampoline
+ *
+ * Return a pointer to a delegation virtual trampoline
+ */
+
gpointer
mono_arch_get_delegate_virtual_invoke_impl (MonoMethodSignature *sig, MonoMethod *method, int offset, gboolean load_imt_reg)
{
- return NULL;
+ guint8 *code, *start;
+ int size = 32;
+
+ start = code = (guint8 *) mono_global_codeman_reserve (size);
+
+ /*
+ * Replace the "this" argument with the target
+ */
+ ppc_mr (code, ppc_r12, ppc_r3);
+ ppc_ldptr (code, ppc_r3, MONO_STRUCT_OFFSET(MonoDelegate, target), ppc_r12);
+
+ /*
+ * Load the IMT register, if needed
+ */
+ if (load_imt_reg) {
+ ppc_ldptr (code, MONO_ARCH_IMT_REG, MONO_STRUCT_OFFSET(MonoDelegate, method), ppc_r12);
+ }
+
+ /*
+ * Load the vTable
+ */
+ ppc_ldptr (code, ppc_r12, MONO_STRUCT_OFFSET(MonoObject, vtable), ppc_r3);
+ if (!ppc_is_imm16(offset))
+ ppc_addis (code, ppc_r12, ppc_r12, ppc_ha(offset));
+ ppc_ldptr (code, ppc_r12, offset, ppc_r12);
+ ppc_mtctr (code, ppc_r12);
+ ppc_bcctr (code, PPC_BR_ALWAYS, 0);
+
+ mono_arch_flush_icache (start, code - start);
+ MONO_PROFILER_RAISE (jit_code_buffer, (start, code - start, MONO_PROFILER_CODE_BUFFER_DELEGATE_INVOKE, NULL));
+
+ return(start);
}
gpointer

View File

@ -1,22 +0,0 @@
From f78e8c273d342cbaf691c23d7cd45d2e5ebbc56d Mon Sep 17 00:00:00 2001
From: Neale Ferguson <neale@sinenomine.net>
Date: Mon, 31 Oct 2022 15:06:04 +0000
Subject: [PATCH] Correct minimum memory size value from 200MB to 20MB
---
src/mono/mono/utils/memfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/runtime/src/mono/mono/utils/memfuncs.c b/src/runtime/src/mono/mono/utils/memfuncs.c
index 885c21ae3d8fb..a38dcec17b1b6 100644
--- a/src/runtime/src/mono/mono/utils/memfuncs.c
+++ b/src/runtime/src/mono/mono/utils/memfuncs.c
@@ -70,7 +70,7 @@
__d [__i] = NULL; \
} while (0)
-#define MINMEMSZ 209715200 /* Minimum restricted memory size */
+#define MINMEMSZ 20971520 /* Minimum restricted memory size - 20MB */
/**
* mono_gc_bzero_aligned:

View File

@ -1,39 +0,0 @@
diff --git a/src/runtime/src/mono/mono/mini/mini-ppc.c b/src/runtime/src/mono/mono/mini/mini-ppc.c
index bc97b497af9..cc5e5ccc0e6 100644
--- a/src/runtime/src/mono/mono/mini/mini-ppc.c
+++ b/src/runtime/src/mono/mono/mini/mini-ppc.c
@@ -2733,7 +2733,7 @@ handle_thunk (MonoCompile *cfg, guchar *code, const guchar *target)
cfg->arch.thunks = cfg->thunks;
cfg->arch.thunks_size = cfg->thunk_area;
#ifdef THUNK_ADDR_ALIGNMENT
- cfg->arch.thunks = ALIGN_TO(cfg->arch.thunks, THUNK_ADDR_ALIGNMENT);
+ cfg->arch.thunks = (guint8 *)ALIGN_TO(cfg->arch.thunks, THUNK_ADDR_ALIGNMENT);
#endif
}
thunks = cfg->arch.thunks;
@@ -5886,7 +5886,7 @@ host_mgreg_t*
mono_arch_context_get_int_reg_address (MonoContext *ctx, int reg)
{
if (reg == ppc_r1)
- return (host_mgreg_t)(gsize)MONO_CONTEXT_GET_SP (ctx);
+ return (host_mgreg_t *)(gsize)&ctx->sc_sp;
return &ctx->regs [reg];
}
diff --git a/src/runtime/src/mono/mono/mini/tramp-ppc.c b/src/runtime/src/mono/mono/mini/tramp-ppc.c
index 59bcb275a48..e0bc7f8eca4 100644
--- a/src/runtime/src/mono/mono/mini/tramp-ppc.c
+++ b/src/runtime/src/mono/mono/mini/tramp-ppc.c
@@ -672,10 +672,10 @@ mono_arch_get_call_target (guint8 *code)
}
#if defined(TARGET_POWERPC64) && !defined(PPC_USES_FUNCTION_DESCRIPTOR)
else if (((guint32*)(code - 32)) [0] >> 26 == 15) {
- guint8 *thunk = GET_MEMORY_SLOT_THUNK_ADDRESS((guint32*)(code - 32));
+ guint8 *thunk = (guint8 *)GET_MEMORY_SLOT_THUNK_ADDRESS((guint32*)(code - 32));
return thunk;
} else if (((guint32*)(code - 4)) [0] >> 26 == 15) {
- guint8 *thunk = GET_MEMORY_SLOT_THUNK_ADDRESS((guint32*)(code - 4));
+ guint8 *thunk = (guint8 *)GET_MEMORY_SLOT_THUNK_ADDRESS((guint32*)(code - 4));
return thunk;
}
#endif

View File

@ -1 +1 @@
SHA512 (dotnet-v7.0.100.tar.gz) = 53c78ce176a57e541973bdee6b9f58413d05dfae351f21944cbd2b1dd8aafcb8374ef756ae530ad650b0d068f449db51c08d002e4a6269df3c51ff04bbbf27bb
SHA512 (dotnet-v7.0.101.tar.gz) = 2d6faac05ad79eaeab7de2a69c639122ef2e737cb2fd983e230f73766a7fab7c3051a717960e42b0c08661b02cb1693839d1c61ba4968dce0531727018a9f70c