diff options
-rwxr-xr-x | packaging/coreclr.spec | 26 | ||||
-rw-r--r-- | src/debug/createdump/threadinfo.cpp | 6 | ||||
-rw-r--r-- | src/inc/slist.h | 6 | ||||
-rw-r--r-- | src/pal/inc/pal.h | 2 | ||||
-rw-r--r-- | src/pal/src/exception/signal.cpp | 4 | ||||
-rw-r--r-- | src/tools/metainfo/mdinfo.cpp | 10 | ||||
-rw-r--r-- | src/vm/object.inl | 4 |
7 files changed, 37 insertions, 21 deletions
diff --git a/packaging/coreclr.spec b/packaging/coreclr.spec index a012e654ce..b4e2485cf0 100755 --- a/packaging/coreclr.spec +++ b/packaging/coreclr.spec @@ -4,7 +4,7 @@ %define skipnative 0 %define skipmscorlib 0 -%ifarch %{arm} aarch64 %{ix86} x86_64 +%ifarch armv7l armv7hl aarch64 %{ix86} x86_64 %else %define skiptests 1 %endif @@ -41,11 +41,16 @@ Requires: libunwind Requires: libuuid # Accelerate python, clang -%ifarch %{arm} +%ifarch armv7l BuildRequires: python-accel-armv7l-cross-arm BuildRequires: clang-accel-armv7l-cross-arm %endif +%ifarch armv7hl +BuildRequires: python-accel-armv7hl-cross-arm +BuildRequires: clang-accel-armv7hl-cross-arm +%endif + %ifarch aarch64 BuildRequires: python-accel-aarch64-cross-aarch64 BuildRequires: clang-accel-aarch64-cross-aarch64 @@ -66,7 +71,7 @@ BuildRequires: pkgconfig(lttng-ust) %if 0%{skipmscorlib} %else -%ifarch %{arm} aarch64 +%ifarch armv7l armv7hl aarch64 BuildRequires: patchelf %endif %ifarch %{ix86} @@ -117,7 +122,7 @@ cp %{SOURCE1} . %if 0%{skipmscorlib} %else -%ifarch %{arm} aarch64 +%ifarch armv7l armv7hl aarch64 # Detect interpreter name from cross-gcc LD_INTERPRETER=$(patchelf --print-interpreter /emul/usr/bin/gcc) LD_RPATH=$(patchelf --print-rpath /emul/usr/bin/gcc) @@ -166,17 +171,22 @@ export CLANG_NO_LIBDIR_SUFFIX=1 BASE_FLAGS="$(echo $BASE_FLAGS | sed -e 's/--target=i686/--target=i586/')" BASE_FLAGS="$BASE_FLAGS -mstackrealign" %else -%ifarch %{arm} +%ifarch armv7l %define _barch armel export CLANG_NO_LIBDIR_SUFFIX=1 %else +%ifarch armv7hl +%define _barch arm +export CLANG_NO_LIBDIR_SUFFIX=1 +%else %endif %endif %endif %endif +%endif -%ifarch %{arm} +%ifarch armv7l armv7hl %define _tarch arm %endif %ifarch aarch64 @@ -197,7 +207,7 @@ export CFLAGS="${BASE_FLAGS}" export CXXFLAGS="${BASE_FLAGS}" export ASMFLAGS="${BASE_FLAGS}" -%ifarch %{arm} +%ifarch armv7l armv7hl %if %{dotnet_buildtype} == "Release" export CXXFLAGS+="-fstack-protector-strong -D_FORTIFY_SOURCE=2" %else @@ -219,7 +229,7 @@ export CXXFLAGS+="-fstack-protector-strong" %endif %endif -%ifarch %{arm} aarch64 +%ifarch armv7l armv7hl aarch64 %define _ngen_relocs_opts cmakeargs "-DFEATURE_NGEN_RELOCS_OPTIMIZATIONS=true" %else %define _ngen_relocs_opts "" diff --git a/src/debug/createdump/threadinfo.cpp b/src/debug/createdump/threadinfo.cpp index 685f9e64c0..55d1df947e 100644 --- a/src/debug/createdump/threadinfo.cpp +++ b/src/debug/createdump/threadinfo.cpp @@ -322,6 +322,12 @@ void ThreadInfo::SetRegisters(elf_prstatus *prstatus) m_gpRegisters.ARM_r10 = u_reg->uregs[10]; m_gpRegisters.ARM_fp = u_reg->uregs[REG_FP]; m_gpRegisters.ARM_ip = u_reg->uregs[REG_IP]; +#elif defined(__aarch64__) + struct user_regs_struct *u_reg = (struct user_regs_struct *)&prstatus->pr_reg; + memcpy(m_gpRegisters.regs, u_reg, sizeof(m_gpRegisters.regs)); + m_gpRegisters.sp = u_reg->sp; + m_gpRegisters.pc = u_reg->pc; + m_gpRegisters.pstate = u_reg->pstate; #endif } diff --git a/src/inc/slist.h b/src/inc/slist.h index f05d763dc6..abebe04d47 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/pal.h b/src/pal/inc/pal.h index 9d05d73530..c04dfbaf97 100644 --- a/src/pal/inc/pal.h +++ b/src/pal/inc/pal.h @@ -145,7 +145,7 @@ typedef PVOID NATIVE_LIBRARY_HANDLE; /******************* Compiler-specific glue *******************************/ #ifndef THROW_DECL -#if defined(_MSC_VER) || defined(__llvm__) || !defined(__cplusplus) +#if defined(_MSC_VER) || !defined(__cplusplus) #define THROW_DECL #else #define THROW_DECL throw() diff --git a/src/pal/src/exception/signal.cpp b/src/pal/src/exception/signal.cpp index 7e00483417..325a1501c7 100644 --- a/src/pal/src/exception/signal.cpp +++ b/src/pal/src/exception/signal.cpp @@ -689,7 +689,7 @@ PAL_ERROR InjectActivationInternal(CorUnix::CPalThread* pThread) { #ifdef INJECT_ACTIVATION_SIGNAL int status = pthread_kill(pThread->GetPThreadSelf(), INJECT_ACTIVATION_SIGNAL); - if (status != 0) + if ((status != 0) && (status != EAGAIN)) { // Failure to send the signal is fatal. There are only two cases when sending // the signal can fail. First, if the signal ID is invalid and second, @@ -958,4 +958,4 @@ void restore_signal_and_resend(int signal_id, struct sigaction* previousAction) { restore_signal(signal_id, previousAction); kill(gPID, signal_id); -}
\ No newline at end of file +} diff --git a/src/tools/metainfo/mdinfo.cpp b/src/tools/metainfo/mdinfo.cpp index 5458a76d28..a716189b8d 100644 --- a/src/tools/metainfo/mdinfo.cpp +++ b/src/tools/metainfo/mdinfo.cpp @@ -1948,11 +1948,11 @@ void MDInfo::DisplayCustomAttributeInfo(mdCustomAttribute inValue, const char *p VWrite(" :: %S", qSigName.Ptr()); // Keep track of coff overhead. - if (!wcscmp(W("__DecoratedName"), rcName)) - { - bCoffSymbol = true; - g_cbCoffNames += cbValue + 6; - } + if (!wcscmp(W("__DecoratedName"), rcName)) + { + bCoffSymbol = true; + g_cbCoffNames += cbValue + 6; + } WriteLine(""); VWriteLine("%s\tLength: %ld", preFix, cbValue); diff --git a/src/vm/object.inl b/src/vm/object.inl index 64cf9ed4dd..ff60a7808a 100644 --- a/src/vm/object.inl +++ b/src/vm/object.inl @@ -293,7 +293,7 @@ __forceinline BOOL Nullable::IsNullableForType(TypeHandle type, MethodTable* par return FALSE; if (!type.AsMethodTable()->HasInstantiation()) // shortcut, if it is not generic it can't be Nullable<T> return FALSE; - return Nullable::IsNullableForTypeHelper(type.AsMethodTable(), paramMT); + return Nullable::IsNullableForTypeHelper(type.AsMethodTable(), paramMT); } //=============================================================================== @@ -305,7 +305,7 @@ __forceinline BOOL Nullable::IsNullableForTypeNoGC(TypeHandle type, MethodTable* return FALSE; if (!type.AsMethodTable()->HasInstantiation()) // shortcut, if it is not generic it can't be Nullable<T> return FALSE; - return Nullable::IsNullableForTypeHelperNoGC(type.AsMethodTable(), paramMT); + return Nullable::IsNullableForTypeHelperNoGC(type.AsMethodTable(), paramMT); } //=============================================================================== |