diff --git a/.dotnet5.0.metadata b/.dotnet5.0.metadata index c7ed126..9d006c0 100644 --- a/.dotnet5.0.metadata +++ b/.dotnet5.0.metadata @@ -1 +1 @@ -4e69f55efa3555d765674449e65b6b1f7be13a1c SOURCES/dotnet-v5.0.206-SDK.tar.gz +c8d1317df1ddab04711bf28711c42ba316383647 SOURCES/dotnet-v5.0.210-SDK.tar.gz diff --git a/.gitignore b/.gitignore index ec45abc..c9baaf4 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/dotnet-v5.0.206-SDK.tar.gz +SOURCES/dotnet-v5.0.210-SDK.tar.gz diff --git a/SOURCES/runtime-62170-clang13.patch b/SOURCES/runtime-62170-clang13.patch new file mode 100644 index 0000000..5869a69 --- /dev/null +++ b/SOURCES/runtime-62170-clang13.patch @@ -0,0 +1,79 @@ +From a89c562f9389fdc2bb1356d3da782d0063951e14 Mon Sep 17 00:00:00 2001 +From: Jan Vorlicek +Date: Tue, 30 Nov 2021 10:55:21 +0100 +Subject: [PATCH] Fix clang 13 induced runtime issues (#62170) + +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/src/inc/corhlpr.h | 8 ++++---- + src/coreclr/src/jit/bitsetasshortlong.h | 4 ++-- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/coreclr/src/inc/corhlpr.h b/src/coreclr/src/inc/corhlpr.h +index 450514da95c..427e8cdc0ff 100644 +--- a/src/coreclr/src/inc/corhlpr.h ++++ b/src/coreclr/src/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/src/jit/bitsetasshortlong.h b/src/coreclr/src/jit/bitsetasshortlong.h +index 078cdc810e9..4c52819853f 100644 +--- a/src/coreclr/src/jit/bitsetasshortlong.h ++++ b/src/coreclr/src/jit/bitsetasshortlong.h +@@ -345,7 +345,7 @@ public: + { + 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 @@ public: + { + 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 + { +-- +2.33.1 + diff --git a/SPECS/dotnet5.0.spec b/SPECS/dotnet5.0.spec index 80f2345..a63a2c4 100644 --- a/SPECS/dotnet5.0.spec +++ b/SPECS/dotnet5.0.spec @@ -20,10 +20,10 @@ # until that's done, disable LTO. This has to happen before setting the flags below. %define _lto_cflags %{nil} -%global host_version 5.0.9 -%global runtime_version 5.0.9 +%global host_version 5.0.13 +%global runtime_version 5.0.13 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 5.0.206 +%global sdk_version 5.0.210 %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -56,12 +56,12 @@ Name: dotnet5.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/ -# The source is generated on a Fedora box via: +# The source is generated on a RHEL/Fedora box via: # ./build-dotnet-tarball v%%{src_version}-SDK Source0: dotnet-v%{src_version}-SDK.tar.gz Source1: check-debug-symbols.py @@ -69,6 +69,8 @@ Source2: dotnet.sh.in Patch1: source-build-remove-test-references-from-patches.patch +Patch100: runtime-62170-clang13.patch + # Disable telemetry by default; make it opt-in Patch500: sdk-telemetry-optout.patch @@ -290,7 +292,7 @@ applications using the .NET SDK. %dotnet_targeting_pack dotnet-apphost-pack-5.0 %{runtime_rpm_version} Microsoft.NETCore.App 5.0 Microsoft.NETCore.App.Host.%{runtime_id} %dotnet_targeting_pack dotnet-targeting-pack-5.0 %{runtime_rpm_version} Microsoft.NETCore.App 5.0 Microsoft.NETCore.App.Ref %dotnet_targeting_pack aspnetcore-targeting-pack-5.0 %{aspnetcore_runtime_rpm_version} Microsoft.AspNetCore.App 5.0 Microsoft.AspNetCore.App.Ref -%dotnet_targeting_pack netstandard-targeting-pack-2.1 %{sdk_rpm_version} NETStandard.Library 2.1 NETStandard.Library.Ref +#%%dotnet_targeting_pack netstandard-targeting-pack-2.1 %%{sdk_rpm_version} NETStandard.Library 2.1 NETStandard.Library.Ref %package -n dotnet-sdk-5.0-source-built-artifacts @@ -326,17 +328,18 @@ ln -s %{_libdir}/dotnet/reference-packages/Private.SourceBuild.ReferencePackages %endif # Fix bad hardcoded path in build -sed -i 's|/usr/share/dotnet|%{_libdir}/dotnet|' src/runtime.*/src/installer/corehost/cli/hostmisc/pal.unix.cpp +sed -i 's|/usr/share/dotnet|%{_libdir}/dotnet|' src/dotnet-runtime.*/src/installer/corehost/cli/hostmisc/pal.unix.cpp # Disable warnings sed -i 's|skiptests|skiptests ignorewarnings|' repos/runtime.common.props %patch1 -p1 -pushd src/runtime.* +pushd src/dotnet-runtime.* +%patch100 -p1 popd -pushd src/sdk.* +pushd src/dotnet-sdk.* %patch500 -p1 popd @@ -440,26 +443,31 @@ chmod 0755 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{run chmod 0644 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{runtime_id}/%{runtime_version}/runtimes/%{runtime_id}/native/nethost.h chmod 0755 %{buildroot}/%{_libdir}/dotnet/packs/Microsoft.NETCore.App.Host.%{runtime_id}/%{runtime_version}/runtimes/%{runtime_id}/native/singlefilehost -install -dm 0755 %{buildroot}%{_sysconfdir}/profile.d/ -install dotnet.sh %{buildroot}%{_sysconfdir}/profile.d/ +# Provided by dotnet-host from another SRPM +#install -dm 0755 %%{buildroot}%%{_sysconfdir}/profile.d/ +#install dotnet.sh %%{buildroot}%%{_sysconfdir}/profile.d/ -install -dm 0755 %{buildroot}/%{_datadir}/bash-completion/completions +# Provided by dotnet-host from another SRPM +#install -dm 0755 %%{buildroot}/%%{_datadir}/bash-completion/completions # dynamic completion needs the file to be named the same as the base command -install src/sdk.*/scripts/register-completions.bash %{buildroot}/%{_datadir}/bash-completion/completions/dotnet +#install src/dotnet-sdk.*/scripts/register-completions.bash %%{buildroot}/%%{_datadir}/bash-completion/completions/dotnet # TODO: the zsh completion script needs to be ported to use #compdef #install -dm 755 %%{buildroot}/%%{_datadir}/zsh/site-functions #install src/cli/scripts/register-completions.zsh %%{buildroot}/%%{_datadir}/zsh/site-functions/_dotnet -install -dm 0755 %{buildroot}%{_bindir} -ln -s ../../%{_libdir}/dotnet/dotnet %{buildroot}%{_bindir}/ +# Provided by dotnet-host from another SRPM +#install -dm 0755 %%{buildroot}%%{_bindir} +#ln -s ../../%%{_libdir}/dotnet/dotnet %%{buildroot}%%{_bindir}/ -install -dm 0755 %{buildroot}%{_mandir}/man1/ -find -iname 'dotnet*.1' -type f -exec cp {} %{buildroot}%{_mandir}/man1/ \; +# Provided by dotnet-host from another SRPM +#install -dm 0755 %%{buildroot}%%{_mandir}/man1/ +#find -iname 'dotnet*.1' -type f -exec cp {} %%{buildroot}%%{_mandir}/man1/ \; -echo "%{_libdir}/dotnet" >> install_location -install -dm 0755 %{buildroot}%{_sysconfdir}/dotnet -install install_location %{buildroot}%{_sysconfdir}/dotnet/ +# Provided by dotnet-host from another SRPM +#echo "%%{_libdir}/dotnet" >> install_location +#install -dm 0755 %%{buildroot}%%{_sysconfdir}/dotnet +#install install_location %%{buildroot}%%{_sysconfdir}/dotnet/ install -dm 0755 %{buildroot}%{_libdir}/dotnet/source-built-artifacts install artifacts/%{runtime_arch}/Release/Private.SourceBuilt.Artifacts.*.tar.gz %{buildroot}/%{_libdir}/dotnet/source-built-artifacts/ @@ -470,28 +478,17 @@ install artifacts/%{runtime_arch}/Release/Private.SourceBuilt.Artifacts.*.tar.gz echo "Testing build results for debug symbols..." %{SOURCE1} -v %{buildroot}%{_libdir}/dotnet/ - -%check +# Self-check %{buildroot}%{_libdir}/dotnet/dotnet --info +# Provided by dotnet-host from another SRPM +rm %{buildroot}%{_libdir}/dotnet/LICENSE.txt +rm %{buildroot}%{_libdir}/dotnet/ThirdPartyNotices.txt +rm %{buildroot}%{_libdir}/dotnet/dotnet -%files -n dotnet -# empty package useful for dependencies +# Provided by netstandard-targeting-pack-2.1 from another SRPM +rm -rf %{buildroot}%{_libdir}/dotnet/packs/NETStandard.Library.Ref/2.1.0 -%files -n dotnet-host -%dir %{_libdir}/dotnet -%{_libdir}/dotnet/dotnet -%dir %{_libdir}/dotnet/host -%dir %{_libdir}/dotnet/host/fxr -%{_bindir}/dotnet -%license %{_libdir}/dotnet/LICENSE.txt -%license %{_libdir}/dotnet/ThirdPartyNotices.txt -%doc %{_mandir}/man1/dotnet*.1.gz -%{_sysconfdir}/profile.d/dotnet.sh -%{_sysconfdir}/dotnet -%dir %{_datadir}/bash-completion -%dir %{_datadir}/bash-completion/completions -%{_datadir}/bash-completion/completions/dotnet %files -n dotnet-hostfxr-5.0 %dir %{_libdir}/dotnet/host/fxr @@ -522,6 +519,21 @@ echo "Testing build results for debug symbols..." %changelog +* Wed Jan 05 2022 Omair Majid - 5.0.210-2 +- Update to .NET SDK 5.0.210 and Runtime 5.0.13 +- Resolves: RHBZ#2030737 + +* Thu Dec 02 2021 Omair Majid - 5.0.209-2 +- Bump release +- Related: RHBZ#2011058 +- Related: RHBZ#2003078 + +* Sun Nov 21 2021 Omair Majid - 5.0.209.1-1 +- Update to .NET SDK 5.0.209 and Runtime 5.0.12 +- Resolves: RHBZ#2024319 +- Resolves: RHBZ#2011058 +- Resolves: RHBZ#2003078 + * Thu Aug 12 2021 Omair Majid - 5.0.206-1 - Update to .NET SDK 5.0.206 and Runtime 5.0.9 - Resolves: RHBZ#1990940