summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpackaging/coreclr.spec26
-rw-r--r--src/debug/createdump/threadinfo.cpp6
-rw-r--r--src/pal/src/exception/signal.cpp5
3 files changed, 27 insertions, 10 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/pal/src/exception/signal.cpp b/src/pal/src/exception/signal.cpp
index 7e00483417..fa3a47f910 100644
--- a/src/pal/src/exception/signal.cpp
+++ b/src/pal/src/exception/signal.cpp
@@ -689,8 +689,9 @@ 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))
{
+ printf("thread_t : 0x%08lx(%lu), status : %s\n", pThread->GetPThreadSelf(), pThread->GetPThreadSelf(), strerror(status));
// 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,
// if the thread doesn't exist anymore.
@@ -958,4 +959,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
+}