$ git show --format=fuller --patch-with-stat --summary 2e7b104ee41bfaa24adc07dbe1b654f647383847
commit 2e7b104ee41bfaa24adc07dbe1b654f647383847
Author: tpgxyz <tpgxyz@gmail.com>
AuthorDate: Tue Oct 15 23:55:28 2019 +0200
Commit: tpgxyz <tpgxyz@gmail.com>
CommitDate: Tue Oct 15 23:55:28 2019 +0200
add patch to fix build
---
...-2.2.6-check-for-__builtin_mul_overflow_p.patch | 62 ++++++++++++++++++++++
guile.spec | 3 +-
2 files changed, 63 insertions(+), 2 deletions(-)
create mode 100644 guile-2.2.6-check-for-__builtin_mul_overflow_p.patch
diff --git a/guile-2.2.6-check-for-__builtin_mul_overflow_p.patch b/guile-2.2.6-check-for-__builtin_mul_overflow_p.patch
new file mode 100644
index 0000000..3ab6798
--- /dev/null
+++ b/guile-2.2.6-check-for-__builtin_mul_overflow_p.patch
@@ -0,0 +1,62 @@
+diff -Naur guile-2.2.6/configure.ac guile-2.2.6.tpg/configure.ac
+--- guile-2.2.6/configure.ac 2019-10-15 21:36:03.055279609 +0000
++++ guile-2.2.6.tpg/configure.ac 2019-10-15 21:37:34.156116881 +0000
+@@ -105,6 +105,18 @@
+ AC_LIBTOOL_DLOPEN
+ AC_PROG_LIBTOOL
+
++AC_CACHE_CHECK([for gcc 7-compatible __builtin_mul_overflow_p],
++ [utils_cv_builtin_mul_overflow_p],
++ [AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM(
++ [[]],
++ [[return __builtin_mul_overflow_p(1, 2, 3);]])],
++ [utils_cv_builtin_mul_overflow_p=yes],
++ [utils_cv_builtin_mul_overflow_p=no])])
++if test $utils_cv_builtin_mul_overflow_p = yes; then
++ AC_DEFINE([HAVE_BUILTIN_MUL_OVERFLOW_P], [1], [Define if your compiler supports __builtin_mul_overflow_p])
++fi
++
+ AM_CONDITIONAL([HAVE_SHARED_LIBRARIES], [test "x$enable_shared" = "xyes"])
+
+ dnl Check for libltdl.
+diff -Naur guile-2.2.6/lib/intprops.h guile-2.2.6.tpg/lib/intprops.h
+--- guile-2.2.6/lib/intprops.h 2017-03-07 13:51:20.000000000 +0000
++++ guile-2.2.6.tpg/lib/intprops.h 2019-10-15 21:38:20.204044757 +0000
+@@ -239,14 +239,11 @@
+ /* True if __builtin_add_overflow (A, B, P) works when P is non-null. */
+ #define _GL_HAS_BUILTIN_OVERFLOW (5 <= __GNUC__)
+
+-/* True if __builtin_add_overflow_p (A, B, C) works. */
+-#define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__)
+-
+ /* The _GL*_OVERFLOW macros have the same restrictions as the
+ *_RANGE_OVERFLOW macros, except that they do not assume that operands
+ (e.g., A and B) have the same type as MIN and MAX. Instead, they assume
+ that the result (e.g., A + B) has that type. */
+-#if _GL_HAS_BUILTIN_OVERFLOW_P
++#ifdef HAVE_BUILTIN_MUL_OVERFLOW_P
+ # define _GL_ADD_OVERFLOW(a, b, min, max) \
+ __builtin_add_overflow_p (a, b, (__typeof__ ((a) + (b))) 0)
+ # define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \
+@@ -332,7 +329,7 @@
+ _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW)
+ #define INT_SUBTRACT_OVERFLOW(a, b) \
+ _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW)
+-#if _GL_HAS_BUILTIN_OVERFLOW_P
++#ifdef HAVE_BUILTIN_MUL_OVERFLOW_P
+ # define INT_NEGATE_OVERFLOW(a) INT_SUBTRACT_OVERFLOW (0, a)
+ #else
+ # define INT_NEGATE_OVERFLOW(a) \
+diff -Naur guile-2.2.6/lib/xalloc-oversized.h guile-2.2.6.tpg/lib/xalloc-oversized.h
+--- guile-2.2.6/lib/xalloc-oversized.h 2017-03-07 13:51:20.000000000 +0000
++++ guile-2.2.6.tpg/lib/xalloc-oversized.h 2019-10-15 21:39:05.485971687 +0000
+@@ -41,7 +41,7 @@
+ positive and N must be nonnegative. This is a macro, not a
+ function, so that it works correctly even when SIZE_MAX < N. */
+
+-#if 7 <= __GNUC__
++#ifdef HAVE_BUILTIN_MUL_OVERFLOW_P
+ # define xalloc_oversized(n, s) \
+ __builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1)
+ #elif 5 <= __GNUC__ && !__STRICT_ANSI__
diff --git a/guile.spec b/guile.spec
index 1a528e0..bfbf605 100644
--- a/guile.spec
+++ b/guile.spec
@@ -11,6 +11,7 @@ License: LGPLv2+
Group: Development/Other
Url: http://www.gnu.org/software/guile/guile.html
Source0: ftp://ftp.gnu.org/pub/gnu/guile/%{name}-%{version}.tar.xz
+Patch0: guile-2.2.6-check-for-__builtin_mul_overflow_p.patch
Patch1: guile-2.0.7-drop-ldflags-from-pkgconfig.patch
Patch3: guile-2.0.7-turn-off-gc-test.patch
Patch4: guile-2.0.3-mktemp.patch
@@ -152,8 +153,6 @@ Scheme module.
# remove broken prebuilt objects
rm -r prebuilt/32-bit-big-endian
-#autoreconf -vfi
-
#fix encodings
for i in libguile/ChangeLog*; do
mv $i $i.old