#29 Update to .NET Core SDK 2.1.515 and Runtime 2.1.19
Merged 3 years ago by rhea. Opened 3 years ago by omajid.
dotnet-sig/ omajid/dotnet-2-1 master  into  master

file modified
+36 -18
@@ -3,10 +3,12 @@ 

  # Usage:

  #   build-dotnet-tarball <tag-from-source-build>

  #

- # Creates a source archive from a tag at github.com/dotnet/source-build

+ # Creates a source archive from a tag (or commit) at github.com/dotnet/source-build

  

- # Source-build is a little strange, we need to clone it, check out the tag,

- # build it and then create a tarball from the archive directory it creates.

+ # Source-build is a little strange, we need to clone it, check out the

+ # tag, build it and then create a tarball from the archive directory

+ # it creates. Also, it is likely that the source archive is only

+ # buildable on the OS it was initially created in.

  

  set -euo pipefail

  IFS=$'\n\t'
@@ -20,7 +22,7 @@ 

  

  clean_dotnet_cache() {

      rm -rf ~/.aspnet ~/.dotnet/ ~/.nuget/ ~/.local/share/NuGet ~/.templateengine

-     rm -rf /tmp/NuGet /tmp/NuGetScratch /tmp/.NETCore* /tmp/.NETStandard* /tmp/.dotnet /tmp/clr-debug-pipe* /tmp/Razor-Server /tmp/CoreFxPipe* /tmp/VBCSCompiler /tmp/.NETFramework*

+     rm -rf /tmp/NuGet /tmp/NuGetScratch /tmp/.NETCore* /tmp/.NETStandard* /tmp/.dotnet /tmp/dotnet.* /tmp/clr-debug-pipe* /tmp/Razor-Server /tmp/CoreFxPipe* /tmp/VBCSCompiler /tmp/.NETFramework*

  }

  

  positional_args=()
@@ -47,18 +49,34 @@ 

  

  set -x

  

- temp_dir=$(mktemp -d -p "$HOME/temp")

  dir_name="dotnet-${tag}"

- pushd "${temp_dir}"

- git clone https://github.com/dotnet/source-build

- pushd source-build

- git checkout "${tag}"

- git submodule update --init --recursive

- clean_dotnet_cache

- ./build-source-tarball.sh "${dir_name}"

- popd

- popd

- 

- tar czf "${dir_name}.tar.gz" -C "${temp_dir}/source-build" "${dir_name}"

- 

- rm -rf "${temp_dir}"

+ unmodified_tarball_name="${dir_name}-original"

+ tarball_name="${dir_name}"

+ 

+ if [ -f "${tarball_name}.tar.gz" ]; then

+     echo "error: ${tarball_name}.tar.gz already exists"

+     exit 1

+ fi

+ 

+ if [ ! -f "${unmodified_tarball_name}.tar.gz" ]; then

+     temp_dir=$(mktemp -d -p "$(pwd)")

+     pushd "${temp_dir}"

+     git clone https://github.com/dotnet/source-build

+     pushd source-build

+     git checkout "${tag}"

+     git submodule update --init --recursive

+     clean_dotnet_cache

+     ./build-source-tarball.sh "${unmodified_tarball_name}"

+     popd

+     popd

+ 

+     tar czf "${unmodified_tarball_name}.tar.gz" -C "${temp_dir}/source-build" "${unmodified_tarball_name}"

+ 

+     rm -rf "${temp_dir}"

+ fi

+ 

+ rm -rf "${tarball_name}"

+ tar xf "${unmodified_tarball_name}.tar.gz"

+ mv "${unmodified_tarball_name}" "${tarball_name}"

+ 

+ tar czf "${tarball_name}.tar.gz" "${tarball_name}"

@@ -0,0 +1,455 @@ 

+ From e73f34074a381891ee92711e496134dce758a969 Mon Sep 17 00:00:00 2001

+ From: Omair Majid <omajid@redhat.com>

+ Date: Tue, 2 Jun 2020 12:16:31 -0400

+ Subject: [PATCH] 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>

+ ---

+  src/debug/createdump/createdump.h |   2 +

+  src/inc/slist.h                   |   6 +-

+  src/pal/inc/mbusafecrt.h          |   8 ++-

+  src/pal/inc/pal.h                 | 107 ++++++++++++++++--------------

+  src/pal/src/cruntime/math.cpp     |  36 +++++-----

+  src/pal/src/safecrt/memcpy_s.cpp  |   2 +-

+  6 files changed, 87 insertions(+), 74 deletions(-)

+ 

+ diff --git a/src/debug/createdump/createdump.h b/src/debug/createdump/createdump.h

+ index 4892e5464b1f..3f71b627e642 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 2b81f9ba902b..8ea6f9098e2e 100644

+ --- a/src/inc/slist.h

+ +++ b/src/inc/slist.h

+ @@ -160,13 +160,13 @@ class SList

+      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 @@ class SList

+          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 f030b7ded20c..7021439af2d1 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 5106c0142118..de20524faf12 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 a36ac9aa9333..81345ea14bbb 100644

+ --- a/src/pal/src/cruntime/math.cpp

+ +++ b/src/pal/src/cruntime/math.cpp

+ @@ -117,7 +117,7 @@ double __cdecl _copysign(double x, double y)

+  

+  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 @@ PALIMPORT double __cdecl PAL_acos(double x)

+  

+  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 @@ PALIMPORT double __cdecl PAL_acosh(double x)

+  

+  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 @@ PALIMPORT double __cdecl PAL_asin(double x)

+  

+  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 @@ PALIMPORT double __cdecl PAL_asinh(double x)

+  

+  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 @@ PALIMPORT double __cdecl PAL_atan2(double y, double x)

+  

+  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 @@ PALIMPORT LONG __cdecl PAL_labs(LONG l)

+  

+  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 @@ PALIMPORT double __cdecl PAL_log(double x)

+  

+  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 @@ PALIMPORT double __cdecl PAL_log10(double x)

+  

+  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 @@ float __cdecl _copysignf(float x, float y)

+  

+  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 @@ PALIMPORT float __cdecl PAL_acosf(float x)

+  

+  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 @@ PALIMPORT float __cdecl PAL_acoshf(float x)

+  

+  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 @@ PALIMPORT float __cdecl PAL_asinf(float x)

+  

+  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 @@ PALIMPORT float __cdecl PAL_asinhf(float x)

+  

+  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 @@ PALIMPORT float __cdecl PAL_atan2f(float y, float x)

+  

+  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 @@ PALIMPORT float __cdecl PAL_expf(float x)

+  

+  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 @@ PALIMPORT float __cdecl PAL_logf(float x)

+  

+  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 @@ PALIMPORT float __cdecl PAL_log10f(float x)

+  

+  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 27aeb7966593..a75ec4186140 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)

+      {

@@ -1,584 +0,0 @@ 

- diff --git a/src/debug/ee/amd64/dbghelpers.S b/src/debug/ee/amd64/dbghelpers.S

- index 85ec80c701..864c4dc943 100644

- --- a/src/debug/ee/amd64/dbghelpers.S

- +++ b/src/debug/ee/amd64/dbghelpers.S

- @@ -29,7 +29,7 @@ NESTED_ENTRY FuncEvalHijack, _TEXT, UnhandledExceptionHandlerUnix

-          //

-          // epilogue

-          //

- -        add     rsp, 20h

- +        add     rsp, 0x20

-          TAILJMP_RAX

-  NESTED_END FuncEvalHijack, _TEXT

-  

- @@ -65,14 +65,14 @@ NESTED_ENTRY ExceptionHijack, _TEXT, UnhandledExceptionHandlerUnix

-          // its arguments on the stack. In x64, it gets its arguments in

-          // registers (set up for us by DacDbiInterfaceImpl::Hijack),

-          // and this stack space may be reused.

- -        mov     rax, [rsp + 20h]

- +        mov     rax, [rsp + 0x20]

-          mov     [rsp], rax

- -        mov     rax, [rsp + 28h]

- -        mov     [rsp + 8h], rax

- -        mov     rax, [rsp + 30h]

- -        mov     [rsp + 10h], rax

- -        mov     rax, [rsp + 38h]

- -        mov     [rsp + 18h], rax

- +        mov     rax, [rsp + 0x28]

- +        mov     [rsp + 0x8], rax

- +        mov     rax, [rsp + 0x30]

- +        mov     [rsp + 0x10], rax

- +        mov     rax, [rsp + 0x38]

- +        mov     [rsp + 0x18], rax

-          

-          // DD Hijack primitive already set the stack. So just make the call now.

-          call    C_FUNC(ExceptionHijackWorker)

- @@ -93,7 +93,7 @@ NESTED_ENTRY ExceptionHijack, _TEXT, UnhandledExceptionHandlerUnix

-          //

-          // epilogue

-          //

- -        add     rsp, 20h

- +        add     rsp, 0x20

-          TAILJMP_RAX

-  

-  // Put a label here to tell the debugger where the end of this function is.

- diff --git a/src/pal/inc/unixasmmacros.inc b/src/pal/inc/unixasmmacros.inc

- index e7a5eba898..8a74e3f266 100644

- --- a/src/pal/inc/unixasmmacros.inc

- +++ b/src/pal/inc/unixasmmacros.inc

- @@ -2,7 +2,7 @@

-  // The .NET Foundation licenses this file to you under the MIT license.

-  // See the LICENSE file in the project root for more information.

-  

- -#define INVALIDGCVALUE 0CCCCCCCDh

- +#define INVALIDGCVALUE 0xCCCCCCCD

-  

-  #if defined(__APPLE__)

-  #define C_FUNC(name) _##name

- diff --git a/src/vm/amd64/JitHelpers_Fast.asm b/src/vm/amd64/JitHelpers_Fast.asm

- index 83f7132688..5251387408 100644

- --- a/src/vm/amd64/JitHelpers_Fast.asm

- +++ b/src/vm/amd64/JitHelpers_Fast.asm

- @@ -40,7 +40,7 @@ EXTERN  g_GCShadow:QWORD

-  EXTERN  g_GCShadowEnd:QWORD

-  endif

-  

- -INVALIDGCVALUE          equ     0CCCCCCCDh

- +INVALIDGCVALUE          equ     0xCCCCCCCD

-  

-  ifdef _DEBUG

-  extern JIT_WriteBarrier_Debug:proc

- diff --git a/src/vm/amd64/JitHelpers_Slow.asm b/src/vm/amd64/JitHelpers_Slow.asm

- index 0e26ae6dfd..80b7453d4f 100644

- --- a/src/vm/amd64/JitHelpers_Slow.asm

- +++ b/src/vm/amd64/JitHelpers_Slow.asm

- @@ -48,7 +48,7 @@ g_pStringClass          equ     ?g_pStringClass@@3PEAVMethodTable@@EA

-  FramedAllocateString    equ     ?FramedAllocateString@@YAPEAVStringObject@@K@Z

-  JIT_NewArr1             equ     ?JIT_NewArr1@@YAPEAVObject@@PEAUCORINFO_CLASS_STRUCT_@@_J@Z

-  

- -INVALIDGCVALUE          equ     0CCCCCCCDh

- +INVALIDGCVALUE          equ     0xCCCCCCCD

-  

-  extern JIT_NEW:proc

-  extern CopyValueClassUnchecked:proc

- diff --git a/src/vm/amd64/jithelpers_fast.S b/src/vm/amd64/jithelpers_fast.S

- index 6f955b0bee..5f68fc0ebf 100644

- --- a/src/vm/amd64/jithelpers_fast.S

- +++ b/src/vm/amd64/jithelpers_fast.S

- @@ -81,14 +81,14 @@ LEAF_ENTRY JIT_WriteBarrier, _TEXT

-          // Update the write watch table if necessary

-          mov     rax, rdi

-          movabs  r10, 0xF0F0F0F0F0F0F0F0

- -        shr     rax, 0Ch // SoftwareWriteWatch::AddressToTableByteIndexShift

- +        shr     rax, 0xC // SoftwareWriteWatch::AddressToTableByteIndexShift

-          NOP_2_BYTE // padding for alignment of constant

-          movabs  r11, 0xF0F0F0F0F0F0F0F0

-          add     rax, r10

- -        cmp     byte ptr [rax], 0h

- +        cmp     byte ptr [rax], 0x0

-          .byte 0x75, 0x06

-          // jne     CheckCardTable

- -        mov     byte ptr [rax], 0FFh

- +        mov     byte ptr [rax], 0xFF

-  

-          NOP_3_BYTE // padding for alignment of constant

-  

- @@ -112,27 +112,27 @@ LEAF_ENTRY JIT_WriteBarrier, _TEXT

-  

-          // Touch the card table entry, if not already dirty.

-          shr     rdi, 0x0B

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-          .byte 0x75, 0x02

-          // jne     UpdateCardTable

-          REPRET

-  

-      UpdateCardTable:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  

-  #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES

-          NOP_2_BYTE // padding for alignment of constant

-          shr     rdi, 0x0A

-  

-          movabs  rax, 0xF0F0F0F0F0F0F0F0

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-  

-          .byte 0x75, 0x02

-          // jne     UpdateCardBundle_WriteWatch_PostGrow64

-          REPRET

-  

-      UpdateCardBundle_WriteWatch_PostGrow64:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  #endif

-  

-          ret

- @@ -177,14 +177,14 @@ LEAF_ENTRY JIT_WriteBarrier, _TEXT

-          movabs  rax, 0xF0F0F0F0F0F0F0F0

-  

-          // Touch the card table entry, if not already dirty.

- -        shr     rdi, 0Bh

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        shr     rdi, 0x0B

- +        cmp     byte ptr [rdi + rax], 0xFF

-          .byte 0x75, 0x02

-          // jne     UpdateCardTable

-          REPRET

-  

-      UpdateCardTable:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0x0xFF

-  

-  #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES

-          NOP_6_BYTE // padding for alignment of constant

- @@ -194,14 +194,14 @@ LEAF_ENTRY JIT_WriteBarrier, _TEXT

-          // Touch the card bundle, if not already dirty.

-          // rdi is already shifted by 0xB, so shift by 0xA more

-          shr     rdi, 0x0A

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-  

-          .byte 0x75, 0x02 

-          // jne     UpdateCardBundle

-          REPRET

-  

-      UpdateCardBundle:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  #endif

-  

-          ret

- @@ -312,15 +312,15 @@ LEAF_ENTRY JIT_ByRefWriteBarrier, _TEXT

-  #ifdef FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP

-          // Update the write watch table if necessary

-          PREPARE_EXTERNAL_VAR g_sw_ww_enabled_for_gc_heap, rax

- -        cmp     byte ptr [rax], 0h

- +        cmp     byte ptr [rax], 0x0

-          je      CheckCardTable_ByRefWriteBarrier

-          mov     rax, rdi

- -        shr     rax, 0Ch // SoftwareWriteWatch::AddressToTableByteIndexShift

- +        shr     rax, 0xC // SoftwareWriteWatch::AddressToTableByteIndexShift

-          PREPARE_EXTERNAL_VAR g_sw_ww_table, r10

-          add     rax, qword ptr [r10]

- -        cmp     byte ptr [rax], 0h

- +        cmp     byte ptr [rax], 0x0

-          jne     CheckCardTable_ByRefWriteBarrier

- -        mov     byte ptr [rax], 0FFh

- +        mov     byte ptr [rax], 0xFF

-  #endif

-  

-      CheckCardTable_ByRefWriteBarrier:

- @@ -334,8 +334,8 @@ LEAF_ENTRY JIT_ByRefWriteBarrier, _TEXT

-  

-          // move current rdi value into rcx and then increment the pointers

-          mov     rcx, rdi

- -        add     rsi, 8h

- -        add     rdi, 8h

- +        add     rsi, 0x8

- +        add     rdi, 0x8

-  

-          // Check if we need to update the card table

-          // Calc pCardByte

- @@ -345,13 +345,13 @@ LEAF_ENTRY JIT_ByRefWriteBarrier, _TEXT

-          mov     rax, [rax]

-  

-          // Check if this card is dirty

- -        cmp     byte ptr [rcx + rax], 0FFh

- +        cmp     byte ptr [rcx + rax], 0xFF

-  

-          jne     UpdateCardTable_ByRefWriteBarrier

-          REPRET

-  

-      UpdateCardTable_ByRefWriteBarrier:

- -        mov     byte ptr [rcx + rax], 0FFh

- +        mov     byte ptr [rcx + rax], 0xFF

-  

-  #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES

-          // Shift rcx by 0x0A more to get the card bundle byte (we shifted by 0x0B already)

- @@ -361,13 +361,13 @@ LEAF_ENTRY JIT_ByRefWriteBarrier, _TEXT

-          add     rcx, [rax]

-  

-          // Check if this bundle byte is dirty

- -        cmp     byte ptr [rcx], 0FFh

- +        cmp     byte ptr [rcx], 0xFF

-  

-          jne     UpdateCardBundle_ByRefWriteBarrier

-          REPRET

-  

-      UpdateCardBundle_ByRefWriteBarrier:

- -        mov     byte ptr [rcx], 0FFh

- +        mov     byte ptr [rcx], 0xFF

-  #endif

-  

-          ret

- @@ -383,8 +383,8 @@ LEAF_ENTRY JIT_ByRefWriteBarrier, _TEXT

-  #endif

-      Exit_ByRefWriteBarrier:

-          // Increment the pointers before leaving

- -        add     rdi, 8h

- -        add     rsi, 8h

- +        add     rdi, 0x8

- +        add     rsi, 0x8

-          ret

-  LEAF_END JIT_ByRefWriteBarrier, _TEXT

-  

- diff --git a/src/vm/amd64/jithelpers_fastwritebarriers.S b/src/vm/amd64/jithelpers_fastwritebarriers.S

- index 23c1115165..0fe0e57472 100644

- --- a/src/vm/amd64/jithelpers_fastwritebarriers.S

- +++ b/src/vm/amd64/jithelpers_fastwritebarriers.S

- @@ -38,13 +38,13 @@ PATCH_LABEL JIT_WriteBarrier_PreGrow64_Patch_Label_CardTable

-  

-          // Touch the card table entry, if not already dirty.

-          shr     rdi, 0x0B

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-          .byte 0x75, 0x02

-          // jne     UpdateCardTable_PreGrow64

-          REPRET

-  

-      UpdateCardTable_PreGrow64:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  

-  #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES

-          NOP_6_BYTE // padding for alignment of constant

- @@ -55,14 +55,14 @@ PATCH_LABEL JIT_WriteBarrier_PreGrow64_Patch_Label_CardBundleTable

-          // Touch the card bundle, if not already dirty.

-          // rdi is already shifted by 0xB, so shift by 0xA more

-          shr     rdi, 0x0A

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-  

-          .byte 0x75, 0x02 

-          // jne     UpdateCardBundle_PreGrow64

-          REPRET

-  

-      UpdateCardBundle_PreGrow64:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  #endif

-  

-          ret

- @@ -123,13 +123,13 @@ PATCH_LABEL JIT_WriteBarrier_PostGrow64_Patch_Label_CardTable

-  

-          // Touch the card table entry, if not already dirty.

-          shr     rdi, 0x0B

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-          .byte 0x75, 0x02

-          // jne     UpdateCardTable_PostGrow64

-          REPRET

-  

-      UpdateCardTable_PostGrow64:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  

-  #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES

-          NOP_6_BYTE // padding for alignment of constant

- @@ -140,14 +140,14 @@ PATCH_LABEL JIT_WriteBarrier_PostGrow64_Patch_Label_CardBundleTable

-          // Touch the card bundle, if not already dirty.

-          // rdi is already shifted by 0xB, so shift by 0xA more

-          shr     rdi, 0x0A

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-  

-          .byte 0x75, 0x02 

-          // jne     UpdateCardBundle_PostGrow64

-          REPRET

-  

-      UpdateCardBundle_PostGrow64:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  #endif

-  

-          ret

- @@ -182,13 +182,13 @@ PATCH_LABEL JIT_WriteBarrier_SVR64_PatchLabel_CardTable

-  

-          shr     rdi, 0x0B

-  

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-          .byte 0x75, 0x02

-          // jne     UpdateCardTable_SVR64

-          REPRET

-  

-      UpdateCardTable_SVR64:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  

-  #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES

-          NOP_6_BYTE // padding for alignment of constant

- @@ -198,14 +198,14 @@ PATCH_LABEL JIT_WriteBarrier_SVR64_PatchLabel_CardBundleTable

-  

-          // Shift the address by 0xA more since already shifted by 0xB

-          shr     rdi, 0x0A

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-  

-          .byte 0x75, 0x02 

-          // jne     UpdateCardBundle_SVR64

-          REPRET

-  

-      UpdateCardBundle_SVR64:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  #endif

-  

-          ret

- @@ -236,15 +236,15 @@ LEAF_ENTRY JIT_WriteBarrier_WriteWatch_PreGrow64, _TEXT

-          mov     rax, rdi

-  PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_WriteWatchTable

-          movabs  r10, 0xF0F0F0F0F0F0F0F0

- -        shr     rax, 0Ch // SoftwareWriteWatch::AddressToTableByteIndexShift

- +        shr     rax, 0xC // SoftwareWriteWatch::AddressToTableByteIndexShift

-          NOP_2_BYTE // padding for alignment of constant

-  PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_Lower

-          movabs  r11, 0xF0F0F0F0F0F0F0F0

-          add     rax, r10

- -        cmp     byte ptr [rax], 0h

- +        cmp     byte ptr [rax], 0x0

-          .byte 0x75, 0x03

-          // jne     CheckCardTable_WriteWatch_PreGrow64

- -        mov     byte ptr [rax], 0FFh

- +        mov     byte ptr [rax], 0xFF

-  

-      CheckCardTable_WriteWatch_PreGrow64:

-          // Check the lower ephemeral region bound.

- @@ -263,13 +263,13 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_Lower

-          NOP_2_BYTE // padding for alignment of constant

-  PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_CardTable

-          movabs  rax, 0xF0F0F0F0F0F0F0F0

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-          .byte 0x75, 0x02

-          // jne     UpdateCardTable_WriteWatch_PreGrow64

-          REPRET

-  

-      UpdateCardTable_WriteWatch_PreGrow64:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  

-  #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES

-          NOP_2_BYTE // padding for alignment of constant

- @@ -277,14 +277,14 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PreGrow64_Patch_Label_CardBundleTable

-          movabs  rax, 0xF0F0F0F0F0F0F0F0

-  

-          shr     rdi, 0x0A

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-  

-          .byte 0x75, 0x02

-          // jne     UpdateCardBundle_WriteWatch_PreGrow64

-          REPRET

-  

-      UpdateCardBundle_WriteWatch_PreGrow64:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  #endif

-  

-          ret

- @@ -314,15 +314,15 @@ LEAF_ENTRY JIT_WriteBarrier_WriteWatch_PostGrow64, _TEXT

-          mov     rax, rdi

-  PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_WriteWatchTable

-          movabs  r10, 0xF0F0F0F0F0F0F0F0

- -        shr     rax, 0Ch // SoftwareWriteWatch::AddressToTableByteIndexShift

- +        shr     rax, 0xC // SoftwareWriteWatch::AddressToTableByteIndexShift

-          NOP_2_BYTE // padding for alignment of constant

-  PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_Lower

-          movabs  r11, 0xF0F0F0F0F0F0F0F0

-          add     rax, r10

- -        cmp     byte ptr [rax], 0h

- +        cmp     byte ptr [rax], 0x0

-          .byte 0x75, 0x06

-          // jne     CheckCardTable_WriteWatch_PostGrow64

- -        mov     byte ptr [rax], 0FFh

- +        mov     byte ptr [rax], 0xFF

-  

-          NOP_3_BYTE // padding for alignment of constant

-  

- @@ -358,13 +358,13 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_CardTable

-  

-          // Touch the card table entry, if not already dirty.

-          shr     rdi, 0x0B

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-          .byte 0x75, 0x02

-          // jne     UpdateCardTable_WriteWatch_PostGrow64

-          REPRET

-  

-      UpdateCardTable_WriteWatch_PostGrow64:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  

-  #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES

-          NOP_2_BYTE // padding for alignment of constant

- @@ -372,14 +372,14 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_CardTable

-  

-  PATCH_LABEL JIT_WriteBarrier_WriteWatch_PostGrow64_Patch_Label_CardBundleTable

-          movabs  rax, 0xF0F0F0F0F0F0F0F0

- -        cmp     byte ptr [rdi + rax], 0FFh

- +        cmp     byte ptr [rdi + rax], 0xFF

-  

-          .byte 0x75, 0x02

-          // jne     UpdateCardBundle_WriteWatch_PostGrow64

-          REPRET

-  

-      UpdateCardBundle_WriteWatch_PostGrow64:

- -        mov     byte ptr [rdi + rax], 0FFh

- +        mov     byte ptr [rdi + rax], 0xFF

-  #endif

-  

-          ret

- @@ -417,25 +417,25 @@ LEAF_ENTRY JIT_WriteBarrier_WriteWatch_SVR64, _TEXT

-          mov     rax, rdi

-  PATCH_LABEL JIT_WriteBarrier_WriteWatch_SVR64_PatchLabel_WriteWatchTable

-          movabs  r10, 0xF0F0F0F0F0F0F0F0

- -        shr     rax, 0Ch // SoftwareWriteWatch::AddressToTableByteIndexShift

- +        shr     rax, 0xC // SoftwareWriteWatch::AddressToTableByteIndexShift

-          NOP_2_BYTE // padding for alignment of constant

-  PATCH_LABEL JIT_WriteBarrier_WriteWatch_SVR64_PatchLabel_CardTable

-          movabs  r11, 0xF0F0F0F0F0F0F0F0

-          add     rax, r10

- -        cmp     byte ptr [rax], 0h

- +        cmp     byte ptr [rax], 0x0

-          .byte 0x75, 0x03

-          // jne     CheckCardTable_WriteWatch_SVR64

- -        mov     byte ptr [rax], 0FFh

- +        mov     byte ptr [rax], 0xFF

-  

-      CheckCardTable_WriteWatch_SVR64:

-          shr     rdi, 0x0B

- -        cmp     byte ptr [rdi + r11], 0FFh

- +        cmp     byte ptr [rdi + r11], 0xFF

-          .byte 0x75, 0x02

-          // jne     UpdateCardTable_WriteWatch_SVR64

-          REPRET

-  

-      UpdateCardTable_WriteWatch_SVR64:

- -        mov     byte ptr [rdi + r11], 0FFh

- +        mov     byte ptr [rdi + r11], 0xFF

-  

-  #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES

-          NOP // padding for alignment of constant

- @@ -444,13 +444,13 @@ PATCH_LABEL JIT_WriteBarrier_WriteWatch_SVR64_PatchLabel_CardBundleTable

-          movabs  r11, 0xF0F0F0F0F0F0F0F0

-  

-          shr     rdi, 0x0A

- -        cmp     byte ptr [rdi + r11], 0FFh

- +        cmp     byte ptr [rdi + r11], 0xFF

-          .byte 0x75, 0x02

-          // jne     UpdateCardBundle_WriteWatch_SVR64

-          REPRET

-  

-      UpdateCardBundle_WriteWatch_SVR64:

- -        mov     byte ptr [rdi + r11], 0FFh

- +        mov     byte ptr [rdi + r11], 0xFF

-  #endif

-  

-          ret

- diff --git a/src/vm/amd64/jithelpers_slow.S b/src/vm/amd64/jithelpers_slow.S

- index f61b42afc7..aa2e8cc064 100644

- --- a/src/vm/amd64/jithelpers_slow.S

- +++ b/src/vm/amd64/jithelpers_slow.S

- @@ -71,15 +71,15 @@ LEAF_ENTRY JIT_WriteBarrier_Debug, _TEXT

-  #ifdef FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP

-          // Update the write watch table if necessary

-          PREPARE_EXTERNAL_VAR g_sw_ww_enabled_for_gc_heap, r10

- -        cmp     byte ptr [r10], 0h

- +        cmp     byte ptr [r10], 0x0

-          je      CheckCardTable_Debug

-          mov     r10, rdi

- -        shr     r10, 0Ch // SoftwareWriteWatch::AddressToTableByteIndexShift

- +        shr     r10, 0xC // SoftwareWriteWatch::AddressToTableByteIndexShift

-          PREPARE_EXTERNAL_VAR g_sw_ww_table, r11

-          add     r10, qword ptr [r11]

- -        cmp     byte ptr [r10], 0h

- +        cmp     byte ptr [r10], 0x0

-          jne     CheckCardTable_Debug

- -        mov     byte ptr [r10], 0FFh

- +        mov     byte ptr [r10], 0xFF

-  #endif

-  

-      CheckCardTable_Debug:

- @@ -99,13 +99,13 @@ LEAF_ENTRY JIT_WriteBarrier_Debug, _TEXT

-          mov     r10, [r10]

-  

-          // Check if this card is dirty

- -        cmp     byte ptr [rdi + r10], 0FFh

- +        cmp     byte ptr [rdi + r10], 0xFF

-  

-          jne     UpdateCardTable_Debug

-          REPRET

-  

-      UpdateCardTable_Debug:

- -        mov     byte ptr [rdi + r10], 0FFh

- +        mov     byte ptr [rdi + r10], 0xFF

-  

-  #ifdef FEATURE_MANUALLY_MANAGED_CARD_BUNDLES

-          // Shift rdi by 0x0A more to get the card bundle byte (we shifted by 0x0B already)

- @@ -115,13 +115,13 @@ LEAF_ENTRY JIT_WriteBarrier_Debug, _TEXT

-          add     rdi, [r10]

-  

-          // Check if this bundle byte is dirty

- -        cmp     byte ptr [rdi], 0FFh

- +        cmp     byte ptr [rdi], 0xFF

-  

-          jne     UpdateCardBundle_Debug

-          REPRET

-  

-      UpdateCardBundle_Debug:

- -        mov     byte ptr [rdi], 0FFh

- +        mov     byte ptr [rdi], 0xFF

-  #endif

-  

-          ret

- diff --git a/src/vm/amd64/virtualcallstubamd64.S b/src/vm/amd64/virtualcallstubamd64.S

- index 59b5b77dba..38c33d498e 100644

- --- a/src/vm/amd64/virtualcallstubamd64.S

- +++ b/src/vm/amd64/virtualcallstubamd64.S

- @@ -59,19 +59,19 @@ LEAF_ENTRY ResolveWorkerChainLookupAsmStub, _TEXT

-          jnz     Fail_RWCLAS          // If the BACKPATCH_FLAGS is set we will go directly to the ResolveWorkerAsmStub

-          

-  MainLoop_RWCLAS:

- -        mov     rax, [rax+18h]   // get the next entry in the chain (don't bother checking the first entry again)

- +        mov     rax, [rax+0x18]   // get the next entry in the chain (don't bother checking the first entry again)

-          test    rax,rax          // test if we hit a terminating NULL

-          jz      Fail_RWCLAS

-  

- -        cmp    rdx, [rax+00h]    // compare our MT with the one in the ResolveCacheElem

- +        cmp    rdx, [rax+0x0]    // compare our MT with the one in the ResolveCacheElem

-          jne    MainLoop_RWCLAS

- -        cmp    r10, [rax+08h]    // compare our DispatchToken with one in the ResolveCacheElem

- +        cmp    r10, [rax+0x8]    // compare our DispatchToken with one in the ResolveCacheElem

-          jne    MainLoop_RWCLAS

-  Success_RWCLAS:        

-          PREPARE_EXTERNAL_VAR CHAIN_SUCCESS_COUNTER, rdx

-          sub    qword ptr [rdx],1 // decrement success counter 

-          jl     Promote_RWCLAS

- -        mov    rax, [rax+10h]    // get the ImplTarget

- +        mov    rax, [rax+0x10]    // get the ImplTarget

-          pop    rdx

-          jmp    rax

-          

file modified
+16 -6
@@ -27,9 +27,9 @@ 

  

  %global simple_name dotnet

  

- %global host_version 2.1.13

- %global sdk_version 2.1.509

- %global runtime_version 2.1.13

+ %global host_version 2.1.19

+ %global sdk_version 2.1.515

+ %global runtime_version 2.1.19

  

  Name:           %{simple_name}2.1

  Version:        %{sdk_version}
@@ -40,7 +40,7 @@ 

  

  # The source is generated on a Fedora box via:

  # ./build-dotnet-tarball dotnet-v%%{runtime_version}

- Source0:        dotnet-v%{runtime_version}.tar.gz

+ Source0:        dotnet-v%{sdk_version}-SDK.tar.gz

  Source1:        check-debug-symbols.py

  Source2:        dotnet.sh

  
@@ -51,7 +51,7 @@ 

  Patch201:       coreclr-cmake-python3.patch

  Patch202:       coreclr-mscorlib.patch

  Patch203:       coreclr-pie.patch

- Patch204:       coreclr-assembly-hex-constants.patch

+ Patch204:       coreclr-28045-clang10.patch

  

  Patch300:       core-setup-4510-commit-id.patch

  Patch301:       core-setup-pie.patch
@@ -83,6 +83,7 @@ 

  BuildRequires:  openssl-devel

  BuildRequires:  python3

  BuildRequires:  strace

+ BuildRequires:  systemtap-sdt-devel

  BuildRequires:  zlib-devel

  

  %if %{use_bundled_libunwind}
@@ -215,7 +216,7 @@ 

  

  

  %prep

- %setup -q -n %{simple_name}-v%{runtime_version}

+ %setup -q -n %{simple_name}-v%{sdk_version}-SDK

  

  # Fix bad hardcoded path in build

  sed -i 's|/usr/share/dotnet|%{_libdir}/%{simple_name}|' src/core-setup/src/corehost/common/pal.unix.cpp
@@ -333,6 +334,15 @@ 

  %{_libdir}/%{simple_name}/sdk/%{sdk_version}

  

  %changelog

+ * Wed Jun 10 2020 Omair Majid <omajid@redhat.com> - 2.1.515-1

+ - Update to .NET Core Runtime 2.1.19 and SDK 2.1.515

+ 

+ * Fri Apr 17 2020 Omair Majid <omajid@redhat.com> - 2.1.513-1

+ - Update to .NET Core Runtime 2.1.17 and SDK 2.1.513

+ 

+ * Wed Jan 22 2020 Omair Majid <omajid@redhat.com> - 2.1.511-1

+ - Update to .NET Core Runtime 2.1.15 and SDK 2.1.511

+ 

  * Tue Sep 10 2019 Omair Majid <omajid@redhat.com> - 2.1.509-1

  - Update to .NET Core Runtime 2.1.13 and SDK 2.1.509

  

file modified
+13 -13
@@ -8,7 +8,7 @@ 

  

  print_usage() {

      echo " Usage:"

-     echo "     ./update-release runtime-version sdk-version"

+     echo "     ./update-release sdk-version runtime-version"

  }

  

  positional_args=()
@@ -28,25 +28,25 @@ 

  

  spec_file=dotnet2.1.spec

  

- runtime_version=${positional_args[0]:-}

- if [[ -z ${runtime_version} ]]; then

-     echo "error: missing runtime version"

+ sdk_version=${positional_args[0]:-}

+ if [[ -z ${sdk_version} ]]; then

+     echo "error: missing sdk version"

      exit 1

  fi

- host_version="$runtime_version"

  

- sdk_version=${positional_args[1]:-}

- if [[ -z ${sdk_version} ]]; then

-     echo "error: missing sdk version"

+ runtime_version=${positional_args[1]:-}

+ if [[ -z ${runtime_version} ]]; then

+     echo "error: missing runtime version"

      exit 1

  fi

+ host_version="$runtime_version"

  

- if [[ ! -f "dotnet-v${runtime_version}.tar.gz" ]] && [[ -f "dotnet-${runtime_version}.tar.gz" ]]; then

-     ./rename-tarball "dotnet-${runtime_version}.tar.gz" "dotnet-v${runtime_version}.tar.gz"

+ if [[ ! -f "dotnet-v${sdk_version}-SDK.tar.gz" ]] && [[ -f "dotnet-${runtime_version}.tar.gz" ]]; then

+     ./rename-tarball "dotnet-${runtime_version}.tar.gz" "dotnet-v${sdk_version}-SDK.tar.gz"

  fi

  

- if [[ ! -f "dotnet-v${runtime_version}.tar.gz" ]]; then

-     ./build-dotnet-tarball "v${runtime_version}"

+ if [[ ! -f "dotnet-v${sdk_version}-SDK.tar.gz" ]]; then

+     ./build-dotnet-tarball "v${sdk_version}-SDK"

  fi

  

  set -x
@@ -55,7 +55,7 @@ 

  sed -i -E "s|^%global runtime_version [[:digit:]]\.[[:digit:]]\.[[:digit:]]+|%global runtime_version ${runtime_version}|" "$spec_file"

  sed -i -E "s|^%global sdk_version [[:digit:]]\.[[:digit:]]\.[[:digit:]][[:digit:]][[:digit:]]|%global sdk_version ${sdk_version}|" "$spec_file"

  

- comment="Update to .NET Core Runtime ${runtime_version} and SDK ${sdk_version}"

+ comment="Update to .NET Core SDK ${sdk_version} and Runtime ${runtime_version}"

  

  rpmdev-bumpspec --comment="$comment" $spec_file

  

No idea about the patch but everything else looks good.

The patch was reviewed and merged upstream: https://github.com/dotnet/coreclr/pull/28045 :rocket:

Well if you're not gonna merge it here, I will :P

Pull-Request has been merged by rhea

3 years ago