mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-01 11:18:09 -07:00
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:
committed by
Joonas Niilola
parent
c41bf1762a
commit
aa4cea02ac
@@ -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);
|
||||
|
||||
13
dev-cpp/gtest/files/gtest-1.9.0_pre20190607-increase-clone-stack-size.patch
Executable file
13
dev-cpp/gtest/files/gtest-1.9.0_pre20190607-increase-clone-stack-size.patch
Executable 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);
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user