From fa2b99e6870afad858d5a7005ea07a6cb82238c0 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Oct 27 2018 10:13:16 +0000 Subject: Fix the build --- diff --git a/0001-tests-don-t-run-buf-oom-on-32-bit-systems.patch b/0001-tests-don-t-run-buf-oom-on-32-bit-systems.patch new file mode 100644 index 0000000..19335b9 --- /dev/null +++ b/0001-tests-don-t-run-buf-oom-on-32-bit-systems.patch @@ -0,0 +1,64 @@ +From 990e42d9c751d089cea161a25b7c2ade0a15d279 Mon Sep 17 00:00:00 2001 +From: Edward Thomson +Date: Thu, 13 Sep 2018 13:27:07 +0100 +Subject: [PATCH] tests: don't run buf::oom on 32-bit systems + +On a 32-bit Linux systems, the value large enough to make malloc +guarantee a failure is also large enough that valgrind considers it +"fishy". Skip this test on those systems entirely. + +(cherry picked from commit 415a8ae9c9b6ac18f0524b6af8e58408b426457d) +--- + tests/buf/oom.c | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/tests/buf/oom.c b/tests/buf/oom.c +index 16a03cc1a..86f5e7239 100644 +--- a/tests/buf/oom.c ++++ b/tests/buf/oom.c +@@ -11,12 +11,8 @@ + */ + #if defined(GIT_ARCH_64) && defined(__linux__) + # define TOOBIG 0x0fffffffffffffff +-#elif defined(__linux__) +-# define TOOBIG 0x0fffffff + #elif defined(GIT_ARCH_64) + # define TOOBIG 0xffffffffffffff00 +-#else +-# define TOOBIG 0xffffff00 + #endif + + /** +@@ -25,13 +21,18 @@ + * will fail. And because the git_buf_grow() wrapper always + * sets mark_oom, the code in git_buf_try_grow() will free + * the internal buffer and set it to git_buf__oom. +- * ++ * + * We initialized the internal buffer to (the static variable) + * git_buf__initbuf. The purpose of this test is to make sure + * that we don't try to free the static buffer. ++ * ++ * Skip this test entirely on 32-bit platforms; a buffer large enough ++ * to guarantee malloc failures is so large that valgrind considers ++ * it likely to be an error. + */ + void test_buf_oom__grow(void) + { ++#ifdef GIT_ARCH_64 + git_buf buf = GIT_BUF_INIT; + + git_buf_clear(&buf); +@@ -40,6 +41,9 @@ void test_buf_oom__grow(void) + cl_assert(git_buf_oom(&buf)); + + git_buf_free(&buf); ++#else ++ cl_skip(); ++#endif + } + + void test_buf_oom__grow_by(void) +-- +2.19.1 + diff --git a/libgit2.spec b/libgit2.spec index 2a3c935..6bc05d8 100644 --- a/libgit2.spec +++ b/libgit2.spec @@ -5,6 +5,8 @@ Summary: C implementation of the Git core methods as a library with a sol License: GPLv2 with exceptions URL: http://libgit2.github.com/ Source0: https://github.com/libgit2/libgit2/archive/v%{version}/%{name}-%{version}.tar.gz +# https://github.com/libgit2/libgit2/commit/415a8ae9c9b6ac18f0524b6af8e58408b426457d +Patch0001: 0001-tests-don-t-run-buf-oom-on-32-bit-systems.patch BuildRequires: gcc BuildRequires: cmake >= 2.8.11 @@ -37,8 +39,8 @@ developing applications that use %{name}. # Remove VCS files from examples find examples -name ".gitignore" -delete -print -# Don't test network -sed -i 's/ionline/xonline/' tests/CMakeLists.txt +# Don't run "online" tests +sed -i '/ADD_TEST(online/s/^/#/' tests/CMakeLists.txt # Remove bundled libraries rm -frv deps