summaryrefslogtreecommitdiff
path: root/packaging/0011-Enable-thread-abort-reraise-loop-prevention.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/0011-Enable-thread-abort-reraise-loop-prevention.patch')
-rw-r--r--packaging/0011-Enable-thread-abort-reraise-loop-prevention.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/packaging/0011-Enable-thread-abort-reraise-loop-prevention.patch b/packaging/0011-Enable-thread-abort-reraise-loop-prevention.patch
new file mode 100644
index 0000000000..ce875f0c3a
--- /dev/null
+++ b/packaging/0011-Enable-thread-abort-reraise-loop-prevention.patch
@@ -0,0 +1,39 @@
+From d37538bb656ba27f008c00f3eb3adf1a5a221be1 Mon Sep 17 00:00:00 2001
+From: Jonghyun Park <parjong@gmail.com>
+Date: Tue, 4 Jul 2017 17:25:20 +0900
+Subject: [PATCH 11/12] Enable thread-abort reraise loop prevention
+
+---
+ src/vm/exceptionhandling.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/vm/exceptionhandling.cpp b/src/vm/exceptionhandling.cpp
+index 7ed4375..a35f009 100644
+--- a/src/vm/exceptionhandling.cpp
++++ b/src/vm/exceptionhandling.cpp
+@@ -1482,7 +1482,7 @@ void ExceptionTracker::InitializeCrawlFrame(CrawlFrame* pcfThisFrame, Thread* pT
+ #endif // ESTABLISHER_FRAME_ADDRESS_IS_CALLER_SP
+ }
+
+-#if defined(_TARGET_ARM_) || defined(_TARGET_ARM64_)
++#ifdef ADJUST_PC_UNWOUND_TO_CALL
+ // Further below, we will adjust the ControlPC based upon whether we are at a callsite or not.
+ // We need to do this for "RegDisplay.ControlPC" field as well so that when data structures like
+ // EECodeInfo initialize themselves using this field, they will have the correct absolute value
+@@ -1501,12 +1501,12 @@ void ExceptionTracker::InitializeCrawlFrame(CrawlFrame* pcfThisFrame, Thread* pT
+ fAdjustRegdisplayControlPC = true;
+
+ }
++#endif // ADJUST_PC_UNWOUND_TO_CALL
+
+ #if defined(_TARGET_ARM_)
+ // Remove the Thumb bit
+ ControlPCForEHSearch = ThumbCodeToDataPointer<DWORD_PTR, DWORD_PTR>(ControlPCForEHSearch);
+ #endif
+-#endif // _TARGET_ARM_ || _TARGET_ARM64_
+
+ #ifdef ADJUST_PC_UNWOUND_TO_CALL
+ // If the OS indicated that the IP is a callsite, then adjust the ControlPC by decrementing it
+--
+2.7.4
+