import dotnet-2.1.521-2.el8

This commit is contained in:
CentOS Sources 2021-03-30 14:22:48 -04:00 committed by Stepan Oksanichenko
parent d26b30904b
commit c474a462c5
8 changed files with 439 additions and 567 deletions

View File

@ -1 +1 @@
1f0ad270531d7847e9ef604316c7fc52635c2838 SOURCES/dotnet-v2.1.515-SDK.tar.gz 4b1cef0d4502e0c244f993f3a69093072e6512a1 SOURCES/dotnet-v2.1.521-SDK.tar.gz

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/dotnet-v2.1.515-SDK.tar.gz SOURCES/dotnet-v2.1.521-SDK.tar.gz

View File

@ -1,448 +0,0 @@
commit e73f34074a381891ee92711e496134dce758a969
Author: Omair Majid <omajid@redhat.com>
Date: Tue Jun 2 12:16:31 2020 -0400
Fix build with clang 10
This contains a grab bag of fixes to fix the build with clang 10.
- https://github.com/dotnet/coreclr/pull/23075
Fix missing includes in coreclr/src/debug/createdump/
- https://github.com/dotnet/runtime/pull/33096
SList::Init: add missing constructor
- A subset of https://github.com/dotnet/coreclr/pull/22129
Just the parts that introduce the THROW_DECL macro in pal.h
- https://github.com/dotnet/runtime/pull/32837
This fixes THROW_DECL introduce in the previous PR to work with clang, which
is required in clang 10.
- One new change:
In a significant divergance, this commits adds more THROW_DECL macros
to all the math functions to address a ton of errors pointed out when
building SOS:
In file included from /home/omajid/devel/dotnet/coreclr/src/ToolBox/SOS/Strike/strike.cpp:116:
In file included from /home/omajid/devel/dotnet/coreclr/src/vm/hillclimbing.h:19:
In file included from /home/omajid/devel/dotnet/coreclr/src/inc/complex.h:16:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/math.h:36:
In file included from /usr/bin/../lib/gcc/x86_64-redhat-linux/10/../../../../include/c++/10/cmath:45:
In file included from /usr/include/math.h:290:
/usr/include/bits/mathcalls.h:53:13: error: exception specification in declaration does not match previous declaration
__MATHCALL (acos,, (_Mdouble_ __x));
^
/home/omajid/devel/dotnet/coreclr/src/pal/inc/pal.h:4395:26: note: previous declaration is here
PALIMPORT double __cdecl acos(double);
^
Then, to make sure the declarations and implementations match, it adds
THROW_DECL to the definitions in src/pal/src/cruntime/math.cpp
Co-authored-by: Mike McLaughlin <mikem@microsoft.com>
Co-authored-by: Sinan Kaya <sinan.kaya@microsoft.com>
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
diff --git a/src/debug/createdump/createdump.h b/src/debug/createdump/createdump.h
index 4892e5464b..3f71b627e6 100644
--- a/src/debug/createdump/createdump.h
+++ b/src/debug/createdump/createdump.h
@@ -54,6 +54,8 @@ typedef int T_CONTEXT;
#include <map>
#include <set>
#include <vector>
+#include <string>
+#include <array>
#include "datatarget.h"
#include "threadinfo.h"
#include "memoryregion.h"
diff --git a/src/inc/slist.h b/src/inc/slist.h
index 2b81f9ba90..8ea6f9098e 100644
--- a/src/inc/slist.h
+++ b/src/inc/slist.h
@@ -160,13 +160,13 @@ public:
void Init()
{
LIMITED_METHOD_CONTRACT;
- m_pHead = &m_link;
+ m_pHead = PTR_SLink(&m_link);
// NOTE :: fHead variable is template argument
// the following code is a compiled in, only if the fHead flag
// is set to false,
if (!fHead)
{
- m_pTail = &m_link;
+ m_pTail = PTR_SLink(&m_link);
}
}
@@ -274,7 +274,7 @@ public:
SLink *ret = SLink::FindAndRemove(m_pHead, GetLink(pObj), &prior);
if (ret == m_pTail)
- m_pTail = prior;
+ m_pTail = PTR_SLink(prior);
return GetObject(ret);
}
diff --git a/src/pal/inc/mbusafecrt.h b/src/pal/inc/mbusafecrt.h
index f030b7ded2..7021439af2 100644
--- a/src/pal/inc/mbusafecrt.h
+++ b/src/pal/inc/mbusafecrt.h
@@ -31,6 +31,12 @@ typedef int errno_t;
// define the return value for success
#define SAFECRT_SUCCESS 0
+#if defined(_MSC_VER)
+#define THROW_DECL
+#else
+#define THROW_DECL throw()
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -98,7 +104,7 @@ extern int swscanf_s( const WCHAR *string, const WCHAR *format, ... );
extern int _snscanf_s( const char *string, size_t count, const char *format, ... );
extern int _snwscanf_s( const WCHAR *string, size_t count, const WCHAR *format, ... );
-extern errno_t memcpy_s( void * dst, size_t sizeInBytes, const void * src, size_t count );
+extern errno_t memcpy_s( void * dst, size_t sizeInBytes, const void * src, size_t count ) THROW_DECL;
extern errno_t memmove_s( void * dst, size_t sizeInBytes, const void * src, size_t count );
#ifdef __cplusplus
diff --git a/src/pal/inc/pal.h b/src/pal/inc/pal.h
index 5106c01421..de20524faf 100644
--- a/src/pal/inc/pal.h
+++ b/src/pal/inc/pal.h
@@ -137,6 +137,11 @@ extern "C" {
#define LANG_THAI 0x1e
/******************* Compiler-specific glue *******************************/
+#if defined(_MSC_VER) || !defined(__cplusplus)
+#define THROW_DECL
+#else
+#define THROW_DECL throw()
+#endif
#ifndef _MSC_VER
#if defined(CORECLR)
@@ -4207,7 +4212,7 @@ EXTERN_C
PALIMPORT
void *PAL_memcpy (void *dest, const void *src, size_t count);
-PALIMPORT void * __cdecl memcpy(void *, const void *, size_t);
+PALIMPORT void * __cdecl memcpy(void *, const void *, size_t) THROW_DECL;
#define memcpy PAL_memcpy
#define IS_PAL_memcpy 1
@@ -4220,7 +4225,7 @@ PALIMPORT int __cdecl memcmp(const void *, const void *, size_t);
PALIMPORT void * __cdecl memset(void *, int, size_t);
PALIMPORT void * __cdecl memmove(void *, const void *, size_t);
PALIMPORT void * __cdecl memchr(const void *, int, size_t);
-PALIMPORT long long int __cdecl atoll(const char *);
+PALIMPORT long long int __cdecl atoll(const char *) THROW_DECL;
PALIMPORT size_t __cdecl strlen(const char *);
PALIMPORT int __cdecl strcmp(const char*, const char *);
PALIMPORT int __cdecl strncmp(const char*, const char *, size_t);
@@ -4259,7 +4264,7 @@ PALIMPORT int __cdecl toupper(int);
#define _TRUNCATE ((size_t)-1)
#endif
-PALIMPORT errno_t __cdecl memcpy_s(void *, size_t, const void *, size_t);
+PALIMPORT errno_t __cdecl memcpy_s(void *, size_t, const void *, size_t) THROW_DECL;
PALIMPORT errno_t __cdecl memmove_s(void *, size_t, const void *, size_t);
PALIMPORT char * __cdecl _strlwr(char *);
PALIMPORT int __cdecl _stricmp(const char *, const char *);
@@ -4387,58 +4392,58 @@ PALIMPORT long long __cdecl llabs(long long);
PALIMPORT int __cdecl _finite(double);
PALIMPORT int __cdecl _isnan(double);
PALIMPORT double __cdecl _copysign(double, double);
-PALIMPORT double __cdecl acos(double);
-PALIMPORT double __cdecl acosh(double);
-PALIMPORT double __cdecl asin(double);
-PALIMPORT double __cdecl asinh(double);
-PALIMPORT double __cdecl atan(double);
-PALIMPORT double __cdecl atanh(double);
-PALIMPORT double __cdecl atan2(double, double);
-PALIMPORT double __cdecl cbrt(double);
-PALIMPORT double __cdecl ceil(double);
-PALIMPORT double __cdecl cos(double);
-PALIMPORT double __cdecl cosh(double);
-PALIMPORT double __cdecl exp(double);
-PALIMPORT double __cdecl fabs(double);
-PALIMPORT double __cdecl floor(double);
-PALIMPORT double __cdecl fmod(double, double);
-PALIMPORT double __cdecl log(double);
-PALIMPORT double __cdecl log10(double);
-PALIMPORT double __cdecl modf(double, double*);
-PALIMPORT double __cdecl pow(double, double);
-PALIMPORT double __cdecl sin(double);
-PALIMPORT double __cdecl sinh(double);
-PALIMPORT double __cdecl sqrt(double);
-PALIMPORT double __cdecl tan(double);
-PALIMPORT double __cdecl tanh(double);
+PALIMPORT double __cdecl acos(double) THROW_DECL;
+PALIMPORT double __cdecl acosh(double) THROW_DECL;
+PALIMPORT double __cdecl asin(double) THROW_DECL;
+PALIMPORT double __cdecl asinh(double) THROW_DECL;
+PALIMPORT double __cdecl atan(double) THROW_DECL;
+PALIMPORT double __cdecl atanh(double) THROW_DECL;
+PALIMPORT double __cdecl atan2(double, double) THROW_DECL;
+PALIMPORT double __cdecl cbrt(double) THROW_DECL;
+PALIMPORT double __cdecl ceil(double) THROW_DECL;
+PALIMPORT double __cdecl cos(double) THROW_DECL;
+PALIMPORT double __cdecl cosh(double) THROW_DECL;
+PALIMPORT double __cdecl exp(double) THROW_DECL;
+PALIMPORT double __cdecl fabs(double) THROW_DECL;
+PALIMPORT double __cdecl floor(double) THROW_DECL;
+PALIMPORT double __cdecl fmod(double, double) THROW_DECL;
+PALIMPORT double __cdecl log(double) THROW_DECL;
+PALIMPORT double __cdecl log10(double) THROW_DECL;
+PALIMPORT double __cdecl modf(double, double*) THROW_DECL;
+PALIMPORT double __cdecl pow(double, double) THROW_DECL;
+PALIMPORT double __cdecl sin(double) THROW_DECL;
+PALIMPORT double __cdecl sinh(double) THROW_DECL;
+PALIMPORT double __cdecl sqrt(double) THROW_DECL;
+PALIMPORT double __cdecl tan(double) THROW_DECL;
+PALIMPORT double __cdecl tanh(double) THROW_DECL;
PALIMPORT int __cdecl _finitef(float);
PALIMPORT int __cdecl _isnanf(float);
PALIMPORT float __cdecl _copysignf(float, float);
-PALIMPORT float __cdecl acosf(float);
-PALIMPORT float __cdecl acoshf(float);
-PALIMPORT float __cdecl asinf(float);
-PALIMPORT float __cdecl asinhf(float);
-PALIMPORT float __cdecl atanf(float);
-PALIMPORT float __cdecl atanhf(float);
-PALIMPORT float __cdecl atan2f(float, float);
-PALIMPORT float __cdecl cbrtf(float);
-PALIMPORT float __cdecl ceilf(float);
-PALIMPORT float __cdecl cosf(float);
-PALIMPORT float __cdecl coshf(float);
-PALIMPORT float __cdecl expf(float);
-PALIMPORT float __cdecl fabsf(float);
-PALIMPORT float __cdecl floorf(float);
-PALIMPORT float __cdecl fmodf(float, float);
-PALIMPORT float __cdecl logf(float);
-PALIMPORT float __cdecl log10f(float);
-PALIMPORT float __cdecl modff(float, float*);
-PALIMPORT float __cdecl powf(float, float);
-PALIMPORT float __cdecl sinf(float);
-PALIMPORT float __cdecl sinhf(float);
-PALIMPORT float __cdecl sqrtf(float);
-PALIMPORT float __cdecl tanf(float);
-PALIMPORT float __cdecl tanhf(float);
+PALIMPORT float __cdecl acosf(float) THROW_DECL;
+PALIMPORT float __cdecl acoshf(float) THROW_DECL;
+PALIMPORT float __cdecl asinf(float) THROW_DECL;
+PALIMPORT float __cdecl asinhf(float) THROW_DECL;
+PALIMPORT float __cdecl atanf(float) THROW_DECL;
+PALIMPORT float __cdecl atanhf(float) THROW_DECL;
+PALIMPORT float __cdecl atan2f(float, float) THROW_DECL;
+PALIMPORT float __cdecl cbrtf(float) THROW_DECL;
+PALIMPORT float __cdecl ceilf(float) THROW_DECL;
+PALIMPORT float __cdecl cosf(float) THROW_DECL;
+PALIMPORT float __cdecl coshf(float) THROW_DECL;
+PALIMPORT float __cdecl expf(float) THROW_DECL;
+PALIMPORT float __cdecl fabsf(float) THROW_DECL;
+PALIMPORT float __cdecl floorf(float) THROW_DECL;
+PALIMPORT float __cdecl fmodf(float, float) THROW_DECL;
+PALIMPORT float __cdecl logf(float) THROW_DECL;
+PALIMPORT float __cdecl log10f(float) THROW_DECL;
+PALIMPORT float __cdecl modff(float, float*) THROW_DECL;
+PALIMPORT float __cdecl powf(float, float) THROW_DECL;
+PALIMPORT float __cdecl sinf(float) THROW_DECL;
+PALIMPORT float __cdecl sinhf(float) THROW_DECL;
+PALIMPORT float __cdecl sqrtf(float) THROW_DECL;
+PALIMPORT float __cdecl tanf(float) THROW_DECL;
+PALIMPORT float __cdecl tanhf(float) THROW_DECL;
#ifndef PAL_STDCPP_COMPAT
diff --git a/src/pal/src/cruntime/math.cpp b/src/pal/src/cruntime/math.cpp
index a36ac9aa93..81345ea14b 100644
--- a/src/pal/src/cruntime/math.cpp
+++ b/src/pal/src/cruntime/math.cpp
@@ -117,7 +117,7 @@ Function:
See MSDN.
--*/
-PALIMPORT double __cdecl PAL_acos(double x)
+PALIMPORT double __cdecl PAL_acos(double x) THROW_DECL
{
double ret;
PERF_ENTRY(acos);
@@ -147,7 +147,7 @@ Function:
See MSDN.
--*/
-PALIMPORT double __cdecl PAL_acosh(double x)
+PALIMPORT double __cdecl PAL_acosh(double x) THROW_DECL
{
double ret;
PERF_ENTRY(acosh);
@@ -166,7 +166,7 @@ Function:
See MSDN.
--*/
-PALIMPORT double __cdecl PAL_asin(double x)
+PALIMPORT double __cdecl PAL_asin(double x) THROW_DECL
{
double ret;
PERF_ENTRY(asin);
@@ -196,7 +196,7 @@ Function:
See MSDN.
--*/
-PALIMPORT double __cdecl PAL_asinh(double x)
+PALIMPORT double __cdecl PAL_asinh(double x) THROW_DECL
{
double ret;
PERF_ENTRY(asinh);
@@ -215,7 +215,7 @@ Function:
See MSDN.
--*/
-PALIMPORT double __cdecl PAL_atan2(double y, double x)
+PALIMPORT double __cdecl PAL_atan2(double y, double x) THROW_DECL
{
double ret;
PERF_ENTRY(atan2);
@@ -255,7 +255,7 @@ Function:
See MSDN.
--*/
-PALIMPORT double __cdecl PAL_exp(double x)
+PALIMPORT double __cdecl PAL_exp(double x) THROW_DECL
{
double ret;
PERF_ENTRY(exp);
@@ -306,7 +306,7 @@ Function:
See MSDN.
--*/
-PALIMPORT double __cdecl PAL_log(double x)
+PALIMPORT double __cdecl PAL_log(double x) THROW_DECL
{
double ret;
PERF_ENTRY(log);
@@ -336,7 +336,7 @@ Function:
See MSDN.
--*/
-PALIMPORT double __cdecl PAL_log10(double x)
+PALIMPORT double __cdecl PAL_log10(double x) THROW_DECL
{
double ret;
PERF_ENTRY(log10);
@@ -366,7 +366,7 @@ Function:
See MSDN.
--*/
-PALIMPORT double __cdecl PAL_pow(double x, double y)
+PALIMPORT double __cdecl PAL_pow(double x, double y) THROW_DECL
{
double ret;
PERF_ENTRY(pow);
@@ -527,7 +527,7 @@ Function:
See MSDN.
--*/
-PALIMPORT float __cdecl PAL_acosf(float x)
+PALIMPORT float __cdecl PAL_acosf(float x) THROW_DECL
{
float ret;
PERF_ENTRY(acosf);
@@ -557,7 +557,7 @@ Function:
See MSDN.
--*/
-PALIMPORT float __cdecl PAL_acoshf(float x)
+PALIMPORT float __cdecl PAL_acoshf(float x) THROW_DECL
{
float ret;
PERF_ENTRY(acoshf);
@@ -576,7 +576,7 @@ Function:
See MSDN.
--*/
-PALIMPORT float __cdecl PAL_asinf(float x)
+PALIMPORT float __cdecl PAL_asinf(float x) THROW_DECL
{
float ret;
PERF_ENTRY(asinf);
@@ -606,7 +606,7 @@ Function:
See MSDN.
--*/
-PALIMPORT float __cdecl PAL_asinhf(float x)
+PALIMPORT float __cdecl PAL_asinhf(float x) THROW_DECL
{
float ret;
PERF_ENTRY(asinhf);
@@ -626,7 +626,7 @@ Function:
See MSDN.
--*/
-PALIMPORT float __cdecl PAL_atan2f(float y, float x)
+PALIMPORT float __cdecl PAL_atan2f(float y, float x) THROW_DECL
{
float ret;
PERF_ENTRY(atan2f);
@@ -666,7 +666,7 @@ Function:
See MSDN.
--*/
-PALIMPORT float __cdecl PAL_expf(float x)
+PALIMPORT float __cdecl PAL_expf(float x) THROW_DECL
{
float ret;
PERF_ENTRY(expf);
@@ -698,7 +698,7 @@ Function:
See MSDN.
--*/
-PALIMPORT float __cdecl PAL_logf(float x)
+PALIMPORT float __cdecl PAL_logf(float x) THROW_DECL
{
float ret;
PERF_ENTRY(logf);
@@ -728,7 +728,7 @@ Function:
See MSDN.
--*/
-PALIMPORT float __cdecl PAL_log10f(float x)
+PALIMPORT float __cdecl PAL_log10f(float x) THROW_DECL
{
float ret;
PERF_ENTRY(log10f);
@@ -758,7 +758,7 @@ Function:
See MSDN.
--*/
-PALIMPORT float __cdecl PAL_powf(float x, float y)
+PALIMPORT float __cdecl PAL_powf(float x, float y) THROW_DECL
{
float ret;
PERF_ENTRY(powf);
diff --git a/src/pal/src/safecrt/memcpy_s.cpp b/src/pal/src/safecrt/memcpy_s.cpp
index 27aeb79665..a75ec41861 100644
--- a/src/pal/src/safecrt/memcpy_s.cpp
+++ b/src/pal/src/safecrt/memcpy_s.cpp
@@ -54,7 +54,7 @@ errno_t __cdecl memcpy_s(
size_t sizeInBytes,
const void * src,
size_t count
-)
+) THROW_DECL
{
if (count == 0)
{

View File

@ -1,40 +0,0 @@
From 5164e76ce01fc36833a7f5e6fb7b1ec2f55c2262 Mon Sep 17 00:00:00 2001
From: Omair Majid <omajid@redhat.com>
Date: Wed, 1 Aug 2018 12:02:53 -0400
Subject: [PATCH] Use the identified python when building
System.Private.CoreLib (#19043)
build.sh and build.cmd contain logic to identify a working version of
python to use. System.Private.CoreLib ignores that and directly invokes
'python', which may not work, or even execute a different program.
---
build.sh | 2 ++
src/System.Private.CoreLib/System.Private.CoreLib.csproj | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/build.sh b/build.sh
index 091d6227caf..4002f2744c2 100755
--- a/build.sh
+++ b/build.sh
@@ -22,6 +22,8 @@ then
exit 1
fi
+export PYTHON
+
usage()
{
echo "Usage: $0 [BuildArch] [BuildType] [-verbose] [-coverage] [-cross] [-clangx.y] [-ninja] [-configureonly] [-skipconfigure] [-skipnative] [-skipmscorlib] [-skiptests] [-stripsymbols] [-ignorewarnings] [-cmakeargs] [-bindir]"
diff --git a/src/mscorlib/System.Private.CoreLib.csproj b/src/mscorlib/System.Private.CoreLib.csproj
index 9a2fc681703..0a02d3cffdf 100644
--- a/src/mscorlib/System.Private.CoreLib.csproj
+++ b/src/mscorlib/System.Private.CoreLib.csproj
@@ -543,7 +543,7 @@
<PropertyGroup>
<CMakeDefinitionSaveFile>$(IntermediateOutputPath)..\cmake.definitions</CMakeDefinitionSaveFile>
</PropertyGroup>
- <Exec Command="python $(MSBuildThisFileDirectory)..\scripts\check-definitions.py &quot;$(CMakeDefinitionSaveFile)&quot; &quot;$(DefineConstants)&quot; &quot;$(IgnoreDefineConstants)&quot; " />
+ <Exec Command="&quot;$(PYTHON)&quot; $(MSBuildThisFileDirectory)..\scripts\check-definitions.py &quot;$(CMakeDefinitionSaveFile)&quot; &quot;$(DefineConstants)&quot; &quot;$(IgnoreDefineConstants)&quot; " />
</Target>
<PropertyGroup Condition="'$(BuildOS)' == 'Windows_NT'">
<EnableDotnetAnalyzers Condition="'$(EnableDotnetAnalyzers)'==''">true</EnableDotnetAnalyzers>

View File

@ -1,38 +0,0 @@
From 7e0608fee5cacbf5bf7d0c3886e2fcb1a9d10754 Mon Sep 17 00:00:00 2001
From: Omair Majid <omajid@redhat.com>
Date: Wed, 9 Jan 2019 12:28:48 -0500
Subject: [PATCH] Support building with python3 on unix (#19356)
The windows build scripts try finding python in order of python3,
python2 and then python. The unix build scripts dont. They just try
python2 variants and then fail. This change makes brings them closer
together by letting users build using only python3.
---
build.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/build.sh b/build.sh
index a0b1742effb..14452ad5ac5 100755
--- a/build.sh
+++ b/build.sh
@@ -7,9 +7,9 @@ export ghprbCommentBody=
# resolve python-version to use
if [ "$PYTHON" == "" ] ; then
- if ! PYTHON=$(command -v python2.7 || command -v python2 || command -v python)
+ if ! PYTHON=$(command -v python3 || command -v python2 || command -v python)
then
- echo "Unable to locate build-dependency python2.x!" 1>&2
+ echo "Unable to locate build-dependency python!" 1>&2
exit 1
fi
fi
@@ -17,7 +17,7 @@ fi
# useful in case of explicitly set option.
if ! command -v $PYTHON > /dev/null
then
- echo "Unable to locate build-dependency python2.x ($PYTHON)!" 1>&2
+ echo "Unable to locate build-dependency python ($PYTHON)!" 1>&2
exit 1
fi

View File

@ -1,26 +0,0 @@
From e7c6f87f54be723724a4c996d815d59b515b01a6 Mon Sep 17 00:00:00 2001
From: Omair Majid <omajid@redhat.com>
Date: Thu, 31 Jan 2019 16:09:35 -0500
Subject: [PATCH] Update python lookup in CMakeLists.txt to match
build.(sh|cmd) (#22145)
Use the same logic that's used in build.sh/build.cmd to lookup python:
first search for `python3`, then fall back to `python2` and finally to
`python`.
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 82c19a9cbaa..31b814f118d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -37,7 +37,7 @@ OPTION(CLR_CMAKE_ENABLE_CODE_COVERAGE "Enable code coverage" OFF)
OPTION(CLR_CMAKE_WARNINGS_ARE_ERRORS "Warnings are errors" ON)
# Ensure that python is present
-find_program(PYTHON NAMES python2.7 python2 python)
+find_program(PYTHON NAMES python3 python2 python)
if (PYTHON STREQUAL "PYTHON-NOTFOUND")
message(FATAL_ERROR "PYTHON not found: Please install Python 2.7.9 or later from https://www.python.org/downloads/")
endif()

View File

@ -0,0 +1,402 @@
From 29e17d8d2ccbca07c423e3089a6d5ae8a1c9cb6e Mon Sep 17 00:00:00 2001
From: Yichao Yu <yyc1992@gmail.com>
Date: Tue, 31 Mar 2020 00:43:32 -0400
Subject: [PATCH] Fix compilation with -fno-common.
Making all other archs consistent with IA64 which should not have this problem.
Also move the FIXME to the correct place.
Also add some minimum comments about this...
---
src/aarch64/Ginit.c | 15 +++++++--------
src/arm/Ginit.c | 15 +++++++--------
src/coredump/_UPT_get_dyn_info_list_addr.c | 5 +++++
src/hppa/Ginit.c | 15 +++++++--------
src/ia64/Ginit.c | 1 +
src/mi/Gfind_dynamic_proc_info.c | 1 +
src/mips/Ginit.c | 15 +++++++--------
src/ppc32/Ginit.c | 11 +++++++----
src/ppc64/Ginit.c | 11 +++++++----
src/ptrace/_UPT_get_dyn_info_list_addr.c | 5 +++++
src/s390x/Ginit.c | 15 +++++++--------
src/sh/Ginit.c | 15 +++++++--------
src/tilegx/Ginit.c | 15 +++++++--------
src/x86/Ginit.c | 15 +++++++--------
src/x86_64/Ginit.c | 15 +++++++--------
15 files changed, 89 insertions(+), 80 deletions(-)
diff --git a/src/pal/src/libunwind/src/aarch64/Ginit.c b/src/pal/src/libunwind/src/aarch64/Ginit.c
index dec235c82..35389762f 100644
--- a/src/pal/src/libunwind/src/aarch64/Ginit.c
+++ b/src/pal/src/libunwind/src/aarch64/Ginit.c
@@ -61,13 +61,6 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg)
# endif /* UNW_LOCAL_ONLY */
-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
-
-/* XXX fix me: there is currently no way to locate the dyn-info list
- by a remote unwinder. On ia64, this is done via a special
- unwind-table entry. Perhaps something similar can be done with
- DWARF2 unwind info. */
-
static void
put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
{
@@ -78,7 +71,13 @@ static int
get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
void *arg)
{
- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
+#ifndef UNW_LOCAL_ONLY
+# pragma weak _U_dyn_info_list_addr
+ if (!_U_dyn_info_list_addr)
+ return -UNW_ENOINFO;
+#endif
+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
return 0;
}
diff --git a/src/pal/src/libunwind/src/arm/Ginit.c b/ssrc/pal/src/libunwind/src/arm/Ginit.c
index 2720d063a..0bac0d72d 100644
--- a/src/pal/src/libunwind/src/arm/Ginit.c
+++ b/src/pal/src/libunwind/src/arm/Ginit.c
@@ -57,18 +57,17 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg)
# endif /* UNW_LOCAL_ONLY */
-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
-
-/* XXX fix me: there is currently no way to locate the dyn-info list
- by a remote unwinder. On ia64, this is done via a special
- unwind-table entry. Perhaps something similar can be done with
- DWARF2 unwind info. */
-
static int
get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
void *arg)
{
- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
+#ifndef UNW_LOCAL_ONLY
+# pragma weak _U_dyn_info_list_addr
+ if (!_U_dyn_info_list_addr)
+ return -UNW_ENOINFO;
+#endif
+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
return 0;
}
diff --git a/src/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c b/src/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c
index 0d1190556..739ed0569 100644
--- a/src/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c
+++ b/src/pal/src/libunwind/src/coredump/_UPT_get_dyn_info_list_addr.c
@@ -74,6 +74,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
#else
+/* XXX fix me: there is currently no way to locate the dyn-info list
+ by a remote unwinder. On ia64, this is done via a special
+ unwind-table entry. Perhaps something similar can be done with
+ DWARF2 unwind info. */
+
static inline int
get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
int *countp)
diff --git a/src/pal/src/libunwind/src/hppa/Ginit.c b/src/pal/src/libunwind/src/hppa/Ginit.c
index 461e4b93d..265455a68 100644
--- a/src/pal/src/libunwind/src/hppa/Ginit.c
+++ b/src/pal/src/libunwind/src/hppa/Ginit.c
@@ -64,13 +64,6 @@ _Uhppa_uc_addr (ucontext_t *uc, int reg)
# endif /* UNW_LOCAL_ONLY */
-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
-
-/* XXX fix me: there is currently no way to locate the dyn-info list
- by a remote unwinder. On ia64, this is done via a special
- unwind-table entry. Perhaps something similar can be done with
- DWARF2 unwind info. */
-
static void
put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
{
@@ -81,7 +74,13 @@ static int
get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
void *arg)
{
- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
+#ifndef UNW_LOCAL_ONLY
+# pragma weak _U_dyn_info_list_addr
+ if (!_U_dyn_info_list_addr)
+ return -UNW_ENOINFO;
+#endif
+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
return 0;
}
diff --git a/src/pal/src/libunwind/src/ia64/Ginit.c b/src/pal/src/libunwind/src/ia64/Ginit.c
index b09a2ad57..8601bb3ca 100644
--- a/src/pal/src/libunwind/src/ia64/Ginit.c
+++ b/src/pal/src/libunwind/src/ia64/Ginit.c
@@ -68,6 +68,7 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
if (!_U_dyn_info_list_addr)
return -UNW_ENOINFO;
#endif
+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
*dyn_info_list_addr = _U_dyn_info_list_addr ();
return 0;
}
diff --git a/src/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c b/src/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c
index 98d350128..2e7c62e5e 100644
--- a/src/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c
+++ b/src/pal/src/libunwind/src/mi/Gfind_dynamic_proc_info.c
@@ -49,6 +49,7 @@ local_find_proc_info (unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi,
return -UNW_ENOINFO;
#endif
+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
list = (unw_dyn_info_list_t *) (uintptr_t) _U_dyn_info_list_addr ();
for (di = list->first; di; di = di->next)
if (ip >= di->start_ip && ip < di->end_ip)
diff --git a/src/pal/src/libunwind/src/mips/Ginit.c b/src/pal/src/libunwind/src/mips/Ginit.c
index 3df170c75..bf7a8f5a8 100644
--- a/src/pal/src/libunwind/src/mips/Ginit.c
+++ b/src/pal/src/libunwind/src/mips/Ginit.c
@@ -69,13 +69,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
# endif /* UNW_LOCAL_ONLY */
-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
-
-/* XXX fix me: there is currently no way to locate the dyn-info list
- by a remote unwinder. On ia64, this is done via a special
- unwind-table entry. Perhaps something similar can be done with
- DWARF2 unwind info. */
-
static void
put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
{
@@ -86,7 +79,13 @@ static int
get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
void *arg)
{
- *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list;
+#ifndef UNW_LOCAL_ONLY
+# pragma weak _U_dyn_info_list_addr
+ if (!_U_dyn_info_list_addr)
+ return -UNW_ENOINFO;
+#endif
+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
return 0;
}
diff --git a/src/pal/src/libunwind/src/ppc32/Ginit.c b/src/pal/src/libunwind/src/ppc32/Ginit.c
index ba302448a..7b4545580 100644
--- a/src/pal/src/libunwind/src/ppc32/Ginit.c
+++ b/src/pal/src/libunwind/src/ppc32/Ginit.c
@@ -91,9 +91,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
# endif /* UNW_LOCAL_ONLY */
-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
-
-
static void
put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
{
@@ -104,7 +101,13 @@ static int
get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
void *arg)
{
- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
+#ifndef UNW_LOCAL_ONLY
+# pragma weak _U_dyn_info_list_addr
+ if (!_U_dyn_info_list_addr)
+ return -UNW_ENOINFO;
+#endif
+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
return 0;
}
diff --git a/src/pal/src/libunwind/src/ppc64/Ginit.c b/src/pal/src/libunwind/src/ppc64/Ginit.c
index 4c88cd6e7..7bfb395a7 100644
--- a/src/pal/src/libunwind/src/ppc64/Ginit.c
+++ b/src/pal/src/libunwind/src/ppc64/Ginit.c
@@ -95,9 +95,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
# endif /* UNW_LOCAL_ONLY */
-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
-
-
static void
put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
{
@@ -108,7 +105,13 @@ static int
get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
void *arg)
{
- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
+#ifndef UNW_LOCAL_ONLY
+# pragma weak _U_dyn_info_list_addr
+ if (!_U_dyn_info_list_addr)
+ return -UNW_ENOINFO;
+#endif
+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
return 0;
}
diff --git a/src/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c b/src/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c
index cc5ed0441..16671d453 100644
--- a/src/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c
+++ b/src/pal/src/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c
@@ -71,6 +71,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
#else
+/* XXX fix me: there is currently no way to locate the dyn-info list
+ by a remote unwinder. On ia64, this is done via a special
+ unwind-table entry. Perhaps something similar can be done with
+ DWARF2 unwind info. */
+
static inline int
get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
int *countp)
diff --git a/src/pal/src/libunwind/src/sh/Ginit.c b/src/pal/src/libunwind/src/sh/Ginit.c
index 52988a721..9fe96d2bd 100644
--- a/src/pal/src/libunwind/src/sh/Ginit.c
+++ b/src/pal/src/libunwind/src/sh/Ginit.c
@@ -58,13 +58,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
# endif /* UNW_LOCAL_ONLY */
-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
-
-/* XXX fix me: there is currently no way to locate the dyn-info list
- by a remote unwinder. On ia64, this is done via a special
- unwind-table entry. Perhaps something similar can be done with
- DWARF2 unwind info. */
-
static void
put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
{
@@ -75,7 +68,13 @@ static int
get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
void *arg)
{
- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
+#ifndef UNW_LOCAL_ONLY
+# pragma weak _U_dyn_info_list_addr
+ if (!_U_dyn_info_list_addr)
+ return -UNW_ENOINFO;
+#endif
+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
return 0;
}
diff --git a/src/pal/src/libunwind/src/tilegx/Ginit.c b/src/pal/src/libunwind/src/tilegx/Ginit.c
index 7564a558b..925e64132 100644
--- a/src/pal/src/libunwind/src/tilegx/Ginit.c
+++ b/src/pal/src/libunwind/src/tilegx/Ginit.c
@@ -64,13 +64,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
# endif /* UNW_LOCAL_ONLY */
-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
-
-/* XXX fix me: there is currently no way to locate the dyn-info list
- by a remote unwinder. On ia64, this is done via a special
- unwind-table entry. Perhaps something similar can be done with
- DWARF2 unwind info. */
-
static void
put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
{
@@ -81,7 +74,13 @@ static int
get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
void *arg)
{
- *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list;
+#ifndef UNW_LOCAL_ONLY
+# pragma weak _U_dyn_info_list_addr
+ if (!_U_dyn_info_list_addr)
+ return -UNW_ENOINFO;
+#endif
+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
return 0;
}
diff --git a/src/pal/src/libunwind/src/x86/Ginit.c b/src/pal/src/libunwind/src/x86/Ginit.c
index f6b8dc27d..3cec74a21 100644
--- a/src/pal/src/libunwind/src/x86/Ginit.c
+++ b/src/pal/src/libunwind/src/x86/Ginit.c
@@ -54,13 +54,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
# endif /* UNW_LOCAL_ONLY */
-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
-
-/* XXX fix me: there is currently no way to locate the dyn-info list
- by a remote unwinder. On ia64, this is done via a special
- unwind-table entry. Perhaps something similar can be done with
- DWARF2 unwind info. */
-
static void
put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
{
@@ -71,7 +64,13 @@ static int
get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
void *arg)
{
- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
+#ifndef UNW_LOCAL_ONLY
+# pragma weak _U_dyn_info_list_addr
+ if (!_U_dyn_info_list_addr)
+ return -UNW_ENOINFO;
+#endif
+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
return 0;
}
diff --git a/src/pal/src/libunwind/src/x86_64/Ginit.c b/src/pal/src/libunwind/src/x86_64/Ginit.c
index a865d3385..fd8d418b1 100644
--- a/src/pal/src/libunwind/src/x86_64/Ginit.c
+++ b/src/pal/src/libunwind/src/x86_64/Ginit.c
@@ -49,13 +49,6 @@ static struct unw_addr_space local_addr_space;
unw_addr_space_t unw_local_addr_space = &local_addr_space;
-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
-
-/* XXX fix me: there is currently no way to locate the dyn-info list
- by a remote unwinder. On ia64, this is done via a special
- unwind-table entry. Perhaps something similar can be done with
- DWARF2 unwind info. */
-
static void
put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
{
@@ -66,7 +59,13 @@ static int
get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
void *arg)
{
- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
+#ifndef UNW_LOCAL_ONLY
+# pragma weak _U_dyn_info_list_addr
+ if (!_U_dyn_info_list_addr)
+ return -UNW_ENOINFO;
+#endif
+ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
return 0;
}

View File

@ -28,9 +28,9 @@
%global simple_name dotnet %global simple_name dotnet
%global host_version 2.1.19 %global host_version 2.1.25
%global runtime_version 2.1.19 %global runtime_version 2.1.25
%global sdk_version 2.1.515 %global sdk_version 2.1.521
Name: dotnet Name: dotnet
Version: %{sdk_version} Version: %{sdk_version}
@ -51,13 +51,8 @@ Patch11: corefx-32956-alpn.patch
# This patch is generally applied at tarball-build time, except when we dont build the tarball # This patch is generally applied at tarball-build time, except when we dont build the tarball
Patch12: build-corefx-disable-werror.patch Patch12: build-corefx-disable-werror.patch
Patch100: coreclr-build-python3.patch Patch100: coreclr-pie.patch
Patch101: coreclr-cmake-python3.patch Patch101: coreclr-libunwind-fno-common.patch
Patch102: coreclr-pie.patch
# This patch is generally applied at tarball-build time, except when we dont build the tarball
Patch103: build-coreclr-mscorlib.patch
# This patch is generally applied at tarball-build time, except when we dont build the tarball
Patch104: build-coreclr-clang10.patch
Patch300: core-setup-4510-commit-id.patch Patch300: core-setup-4510-commit-id.patch
Patch301: core-setup-pie.patch Patch301: core-setup-pie.patch
@ -208,9 +203,6 @@ popd
pushd src/coreclr pushd src/coreclr
%patch100 -p1 %patch100 -p1
%patch101 -p1 %patch101 -p1
%patch102 -p1
%patch103 -p1
%patch104 -p1
popd popd
pushd src/core-setup pushd src/core-setup
@ -325,6 +317,36 @@ rm %{buildroot}%{_libdir}/%{simple_name}/dotnet
%{_libdir}/%{simple_name}/sdk/%{sdk_version} %{_libdir}/%{simple_name}/sdk/%{sdk_version}
%changelog %changelog
* Wed Feb 10 2021 Omair Majid <omajid@redhat.com> - 2.1.521-2
- Update to .NET Core SDK 2.1.521 and Runtime 2.1.25
- Resolves: RHBZ#1921939
* Tue Jan 12 14:41:40 EST 2021 Omair Majid <omajid@redhat.com> - 2.1.520-1
- Update to .NET Core SDK 2.1.520 and Runtime 2.1.24
- Resolves: RHBZ#1905575
* Tue Oct 06 2020 Omair Majid <omajid@redhat.com> - 2.1.519-2
- Bump release
- Resolves: RHBZ#1884080
* Thu Oct 01 2020 Omair Majid <omajid@redhat.com> - 2.1.519-1
- Update to .NET Core SDK 2.1.519 and Runtime 2.1.23
- Drop patches merged upstream
- Resolves: RHBZ#1884080
* Fri Sep 04 2020 Omair Majid <omajid@redhat.com> - 2.1.518-1
- Update to .NET Core SDK 2.1.518 and Runtime 2.1.22
- Resolves: RHBZ#1874064
* Mon Aug 17 2020 Omair Majid <omajid@redhat.com> - 2.1.517-1
- Update to .NET Core SDK 2.1.517 and Runtime 2.1.21
- Resolves: RHBZ#1866119
* Fri Jul 17 2020 Omair Majid <omajid@redhat.com> - 2.1.516-1
- Update to .NET Core SDK 2.1.516 and Runtime 2.1.20
- Resolves: RHBZ#1851971
- Resolves: RHBZ#1856937
* Thu Jun 11 2020 Omair Majid <omajid@redhat.com> - 2.1.515-2 * Thu Jun 11 2020 Omair Majid <omajid@redhat.com> - 2.1.515-2
- Update to .NET Core SDK 2.1.515 and Runtime 2.1.19 - Update to .NET Core SDK 2.1.515 and Runtime 2.1.19
- Resolves: RHBZ#1843672 - Resolves: RHBZ#1843672