dev-cpp/gtest: Fix test failure on sparc64

sparc64 exhibits the same usersandbox stack overflow bug and its stack can
apparently grow upwards in memory.  Revert back to allocating 10 pages of
mapped memory for the offending call to clone().

Bug: https://bugs.gentoo.org/692464
Reported-by: Rolf Eike Beer <gentoo-bug@opensource.sf-tec.de>
Package-Manager: Portage-2.3.71, Repoman-2.3.17
Signed-off-by: Peter Levine <plevine457@gmail.com>
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
This commit is contained in:
Peter Levine
2019-08-20 01:56:41 -04:00
committed by Joonas Niilola
parent c41bf1762a
commit aa4cea02ac
4 changed files with 15 additions and 17 deletions

View File

@@ -1,15 +0,0 @@
Bug: https://bugs.gentoo.org/688162
Upstream PR: https://github.com/google/googletest/pull/2276
--- a/googletest/src/gtest-death-test.cc
+++ b/googletest/src/gtest-death-test.cc
@@ -1357,6 +1357,9 @@ static pid_t ExecDeathTestSpawnChild(char* const* argv, int close_fd) {
const auto stack_size = static_cast<size_t>(getpagesize());
// MMAP_ANONYMOUS is not defined on Mac, so we use MAP_ANON instead.
void* const stack = mmap(nullptr, stack_size, PROT_READ | PROT_WRITE,
+# if GTEST_OS_LINUX
+ (stack_grows_down ? MAP_GROWSDOWN : 0) | // Needed for stack auto-resizing
+# endif
MAP_ANON | MAP_PRIVATE, -1, 0);
GTEST_DEATH_TEST_CHECK_(stack != MAP_FAILED);

View File

@@ -0,0 +1,13 @@
Bug: https://bugs.gentoo.org/692464
--- a/googletest/src/gtest-death-test.cc
+++ b/googletest/src/gtest-death-test.cc
@@ -1070,7 +1070,7 @@
if (!use_fork) {
static const bool stack_grows_down = StackGrowsDown();
- const auto stack_size = static_cast<size_t>(getpagesize());
+ const auto stack_size = static_cast<size_t>(getpagesize()* 10);
// MMAP_ANONYMOUS is not defined on Mac, so we use MAP_ANON instead.
void* const stack = mmap(NULL, stack_size, PROT_READ | PROT_WRITE,
MAP_ANON | MAP_PRIVATE, -1, 0);

View File

@@ -35,7 +35,7 @@ DEPEND="test? ( ${PYTHON_DEPS} )"
RDEPEND="!dev-cpp/gmock"
PATCHES=(
"${FILESDIR}"/${PN}-1.9.0_pre20190607-add-mmap-stack-flag.patch
"${FILESDIR}"/${PN}-1.9.0_pre20190607-increase-clone-stack-size.patch
)
pkg_setup() {

View File

@@ -33,7 +33,7 @@ DEPEND="test? ( ${PYTHON_DEPS} )"
RDEPEND="!dev-cpp/gmock"
PATCHES=(
"${FILESDIR}"/${PN}-1.9.0_pre20190607-add-mmap-stack-flag.patch
"${FILESDIR}"/${PN}-1.9.0_pre20190607-increase-clone-stack-size.patch
)
pkg_setup() {