From a27dfe2057fe9d294b784f5f5be279ed6c5d6c22 Mon Sep 17 00:00:00 2001 From: "jiseob.jang" Date: Thu, 7 Sep 2017 13:16:07 +0900 Subject: CoreCLR version update to 2.0.0.12082 Change-Id: I72c9f2b7258c576be457df609e33af55e0beab88 --- .../0016-callsignalhandlerwrapper-patch.patch | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 packaging/0016-callsignalhandlerwrapper-patch.patch (limited to 'packaging/0016-callsignalhandlerwrapper-patch.patch') diff --git a/packaging/0016-callsignalhandlerwrapper-patch.patch b/packaging/0016-callsignalhandlerwrapper-patch.patch new file mode 100644 index 0000000000..8fb92abda4 --- /dev/null +++ b/packaging/0016-callsignalhandlerwrapper-patch.patch @@ -0,0 +1,51 @@ +From 8e38cfbaf45147c4361123a306d5b50c667a899e Mon Sep 17 00:00:00 2001 +From: CHUNSEOK LEE +Date: Wed, 2 Aug 2017 09:02:14 +0900 +Subject: [PATCH 16/23] callsignalhandlerwrapper patch + +Change-Id: I38630f9d02733aab5890b46afda39fd6e45461db +--- + src/pal/src/arch/arm/callsignalhandlerwrapper.S | 10 ++++++---- + src/pal/src/arch/arm/signalhandlerhelper.cpp | 2 ++ + 2 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/src/pal/src/arch/arm/callsignalhandlerwrapper.S b/src/pal/src/arch/arm/callsignalhandlerwrapper.S +index 266e4fd..b6288c4 100644 +--- a/src/pal/src/arch/arm/callsignalhandlerwrapper.S ++++ b/src/pal/src/arch/arm/callsignalhandlerwrapper.S +@@ -18,12 +18,14 @@ C_FUNC(SignalHandlerWorkerReturnOffset\Alignment): + // address set to SignalHandlerWorkerReturn during SIGSEGV handling. + // It enables the unwinder to unwind stack from the handling code to the actual failure site. + NESTED_ENTRY CallSignalHandlerWrapper\Alignment, _TEXT, NoHandler +- sub sp, sp, #(8 + \Alignment) // red zone + alignment +- stmfd sp!, {r7, lr} ++ alloc_stack (8 + \Alignment) ++// PROLOG_PUSH "{r7, lr}" ++ .save {r7, r11, lr, pc} + bl EXTERNAL_C_FUNC(signal_handler_worker) + LOCAL_LABEL(SignalHandlerWorkerReturn\Alignment): +- ldmfd sp!, {r7, lr} +- bx lr ++// EPILOG_POP "{r7, lr}" ++// free_stack (8 + \Alignment) ++// bx lr + NESTED_END CallSignalHandlerWrapper\Alignment, _TEXT + + .endm +diff --git a/src/pal/src/arch/arm/signalhandlerhelper.cpp b/src/pal/src/arch/arm/signalhandlerhelper.cpp +index e1ad460..3936204 100644 +--- a/src/pal/src/arch/arm/signalhandlerhelper.cpp ++++ b/src/pal/src/arch/arm/signalhandlerhelper.cpp +@@ -48,7 +48,9 @@ void ExecuteHandlerOnOriginalStack(int code, siginfo_t *siginfo, void *context, + // Build fake stack frame to enable the stack unwinder to unwind from signal_handler_worker to the faulting instruction + // pushed LR + *--sp = (size_t)MCREG_Pc(ucontext->uc_mcontext); ++ *--sp = (size_t)MCREG_Lr(ucontext->uc_mcontext); + // pushed frame pointer ++ *--sp = (size_t)MCREG_R11(ucontext->uc_mcontext); + *--sp = (size_t)MCREG_R7(ucontext->uc_mcontext); + + // Switch the current context to the signal_handler_worker and the original stack +-- +1.9.1 + -- cgit v1.2.3