summaryrefslogtreecommitdiff
path: root/packaging/0025-Fix-undefined-references-on-SOS-11701.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/0025-Fix-undefined-references-on-SOS-11701.patch')
-rw-r--r--packaging/0025-Fix-undefined-references-on-SOS-11701.patch81
1 files changed, 81 insertions, 0 deletions
diff --git a/packaging/0025-Fix-undefined-references-on-SOS-11701.patch b/packaging/0025-Fix-undefined-references-on-SOS-11701.patch
new file mode 100644
index 0000000000..cad1e7678f
--- /dev/null
+++ b/packaging/0025-Fix-undefined-references-on-SOS-11701.patch
@@ -0,0 +1,81 @@
+From ef8f88537cf8264ea1b7f079b7cf93f2fda2bbcb Mon Sep 17 00:00:00 2001
+From: Jonghyun Park <parjong@gmail.com>
+Date: Thu, 18 May 2017 12:30:52 +0900
+Subject: [PATCH 25/29] Fix undefined references on SOS (#11701)
+
+---
+ src/vm/i386/excepx86.cpp | 21 +++++++++------------
+ src/vm/virtualcallstub.cpp | 14 +++++++-------
+ 2 files changed, 16 insertions(+), 19 deletions(-)
+
+diff --git a/src/vm/i386/excepx86.cpp b/src/vm/i386/excepx86.cpp
+index cf01147..9f19d47 100644
+--- a/src/vm/i386/excepx86.cpp
++++ b/src/vm/i386/excepx86.cpp
+@@ -1953,18 +1953,6 @@ LPVOID STDCALL COMPlusEndCatch(LPVOID ebp, DWORD ebx, DWORD edi, DWORD esi, LPVO
+ return esp;
+ }
+
+-#endif // !DACCESS_COMPILE
+-
+-PTR_CONTEXT GetCONTEXTFromRedirectedStubStackFrame(CONTEXT * pContext)
+-{
+- LIMITED_METHOD_DAC_CONTRACT;
+-
+- UINT_PTR stackSlot = pContext->Ebp + REDIRECTSTUB_EBP_OFFSET_CONTEXT;
+- PTR_PTR_CONTEXT ppContext = dac_cast<PTR_PTR_CONTEXT>((TADDR)stackSlot);
+- return *ppContext;
+-}
+-
+-#if !defined(DACCESS_COMPILE)
+ PEXCEPTION_REGISTRATION_RECORD GetCurrentSEHRecord()
+ {
+ WRAPPER_NO_CONTRACT;
+@@ -3618,6 +3606,15 @@ EXCEPTION_HANDLER_IMPL(COMPlusFrameHandlerRevCom)
+ #endif // !DACCESS_COMPILE
+ #endif // !WIN64EXCEPTIONS
+
++PTR_CONTEXT GetCONTEXTFromRedirectedStubStackFrame(CONTEXT * pContext)
++{
++ LIMITED_METHOD_DAC_CONTRACT;
++
++ UINT_PTR stackSlot = pContext->Ebp + REDIRECTSTUB_EBP_OFFSET_CONTEXT;
++ PTR_PTR_CONTEXT ppContext = dac_cast<PTR_PTR_CONTEXT>((TADDR)stackSlot);
++ return *ppContext;
++}
++
+ #ifndef DACCESS_COMPILE
+ LONG CLRNoCatchHandler(EXCEPTION_POINTERS* pExceptionInfo, PVOID pv)
+ {
+diff --git a/src/vm/virtualcallstub.cpp b/src/vm/virtualcallstub.cpp
+index 01b15c6..e753860 100644
+--- a/src/vm/virtualcallstub.cpp
++++ b/src/vm/virtualcallstub.cpp
+@@ -1640,6 +1640,13 @@ void VirtualCallStubManager::BackPatchWorkerStatic(PCODE returnAddress, TADDR si
+ END_ENTRYPOINT_VOIDRET;
+ }
+
++#if defined(_TARGET_X86_) && defined(FEATURE_PAL)
++void BackPatchWorkerStaticStub(PCODE returnAddr, TADDR siteAddrForRegisterIndirect)
++{
++ VirtualCallStubManager::BackPatchWorkerStatic(returnAddr, siteAddrForRegisterIndirect);
++}
++#endif
++
+ PCODE VirtualCallStubManager::ResolveWorker(StubCallSite* pCallSite,
+ OBJECTREF *protectedObj,
+ DispatchToken token,
+@@ -4047,10 +4054,3 @@ BOOL VirtualCallStubManagerManager::TraceManager(
+ // Forward the call to the appropriate manager.
+ return pMgr->TraceManager(thread, trace, pContext, pRetAddr);
+ }
+-
+-#if defined(_TARGET_X86_) && defined(FEATURE_PAL)
+-void BackPatchWorkerStaticStub(PCODE returnAddr, TADDR siteAddrForRegisterIndirect)
+-{
+- VirtualCallStubManager::BackPatchWorkerStatic(returnAddr, siteAddrForRegisterIndirect);
+-}
+-#endif
+--
+2.7.4
+