summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpackaging/coreclr.spec26
-rw-r--r--src/debug/createdump/threadinfo.cpp6
-rw-r--r--src/inc/slist.h6
-rw-r--r--src/pal/inc/pal.h2
-rw-r--r--src/pal/src/exception/signal.cpp4
-rw-r--r--src/tools/metainfo/mdinfo.cpp10
-rw-r--r--src/vm/object.inl4
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);
}
//===============================================================================