mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
community/vbam: add patch
This commit is contained in:
parent
2b0da836cf
commit
9ebf585d23
1 changed files with 83 additions and 0 deletions
83
community/vbam/doctest.patch
Normal file
83
community/vbam/doctest.patch
Normal file
|
@ -0,0 +1,83 @@
|
|||
diff --git a/third_party/include/doctest/doctest.h b/third_party/include/doctest/doctest.h
|
||||
index 94446982..13ccf272 100644
|
||||
--- a/third_party/include/doctest/doctest.h
|
||||
+++ b/third_party/include/doctest/doctest.h
|
||||
@@ -3940,7 +3940,9 @@ namespace {
|
||||
#if !defined(DOCTEST_CONFIG_POSIX_SIGNALS) && !defined(DOCTEST_CONFIG_WINDOWS_SEH)
|
||||
struct FatalConditionHandler
|
||||
{
|
||||
- void reset() {}
|
||||
+ static void reset() {}
|
||||
+ static void allocateAltStackMem() {}
|
||||
+ static void freeAltStackMem() {}
|
||||
};
|
||||
#else // DOCTEST_CONFIG_POSIX_SIGNALS || DOCTEST_CONFIG_WINDOWS_SEH
|
||||
|
||||
@@ -3977,6 +3979,9 @@ namespace {
|
||||
return EXCEPTION_CONTINUE_SEARCH;
|
||||
}
|
||||
|
||||
+ static void allocateAltStackMem() {}
|
||||
+ static void freeAltStackMem() {}
|
||||
+
|
||||
FatalConditionHandler() {
|
||||
isSet = true;
|
||||
// 32k seems enough for doctest to handle stack overflow,
|
||||
@@ -4029,7 +4034,8 @@ namespace {
|
||||
static bool isSet;
|
||||
static struct sigaction oldSigActions[DOCTEST_COUNTOF(signalDefs)];
|
||||
static stack_t oldSigStack;
|
||||
- static char altStackMem[4 * SIGSTKSZ];
|
||||
+ static size_t altStackSize;
|
||||
+ static char* altStackMem;
|
||||
|
||||
static void handleSignal(int sig) {
|
||||
const char* name = "<unknown signal>";
|
||||
@@ -4045,11 +4051,19 @@ namespace {
|
||||
raise(sig);
|
||||
}
|
||||
|
||||
+ static void allocateAltStackMem() {
|
||||
+ altStackMem = new char[altStackSize];
|
||||
+ }
|
||||
+
|
||||
+ static void freeAltStackMem() {
|
||||
+ delete[] altStackMem;
|
||||
+ }
|
||||
+
|
||||
FatalConditionHandler() {
|
||||
isSet = true;
|
||||
stack_t sigStack;
|
||||
sigStack.ss_sp = altStackMem;
|
||||
- sigStack.ss_size = sizeof(altStackMem);
|
||||
+ sigStack.ss_size = altStackSize;
|
||||
sigStack.ss_flags = 0;
|
||||
sigaltstack(&sigStack, &oldSigStack);
|
||||
struct sigaction sa = {};
|
||||
@@ -4074,10 +4088,11 @@ namespace {
|
||||
}
|
||||
};
|
||||
|
||||
- bool FatalConditionHandler::isSet = false;
|
||||
+ bool FatalConditionHandler::isSet = false;
|
||||
struct sigaction FatalConditionHandler::oldSigActions[DOCTEST_COUNTOF(signalDefs)] = {};
|
||||
- stack_t FatalConditionHandler::oldSigStack = {};
|
||||
- char FatalConditionHandler::altStackMem[] = {};
|
||||
+ stack_t FatalConditionHandler::oldSigStack = {};
|
||||
+ size_t FatalConditionHandler::altStackSize = 4 * SIGSTKSZ;
|
||||
+ char* FatalConditionHandler::altStackMem = nullptr;
|
||||
|
||||
#endif // DOCTEST_PLATFORM_WINDOWS
|
||||
#endif // DOCTEST_CONFIG_POSIX_SIGNALS || DOCTEST_CONFIG_WINDOWS_SEH
|
||||
@@ -5936,7 +5951,11 @@ int Context::run() {
|
||||
p->cout = &fstr;
|
||||
}
|
||||
|
||||
+ FatalConditionHandler::allocateAltStackMem();
|
||||
+
|
||||
auto cleanup_and_return = [&]() {
|
||||
+ FatalConditionHandler::freeAltStackMem();
|
||||
+
|
||||
if(fstr.is_open())
|
||||
fstr.close();
|
||||
|
Loading…
Reference in a new issue