development/guile1.8: Fix build on 32 bit.

A segfault would be generated when building the docs on i586
at ../scripts/snarf-check-and-output-texi. Apply patch from
gentoo which allows the build to complete.

Signed-off-by: Andrew Clemons <andrew.clemons@gmail.com>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Andrew Clemons 2022-03-21 21:50:57 +13:00 committed by Willy Sudiarto Raharjo
parent 96fedf3357
commit 47e55bfe72
No known key found for this signature in database
GPG key ID: 3F617144D7238786
2 changed files with 42 additions and 1 deletions

View file

@ -0,0 +1,39 @@
Backported upstream patch to fix SIGSEGV with gcc-4.6
http://git.savannah.gnu.org/cgit/guile.git/commit/?h=branch_release-1-8&id=62bc1072c19e81bb0f9e42a5034e7ab8c27d3b94
https://bugs.gentoo.org/show_bug.cgi?id=424475
--- a/configure.in
+++ b/configure.in
@@ -1199,23 +1199,20 @@
AC_RUN_IFELSE([AC_LANG_SOURCE(
[AC_INCLUDES_DEFAULT
int
-find_stack_direction ()
+find_stack_direction (int *addr, int depth)
{
- static char *addr = 0;
- auto char dummy;
- if (addr == 0)
- {
- addr = &dummy;
- return find_stack_direction ();
- }
- else
- return (&dummy > addr) ? 1 : -1;
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
}
int
-main ()
+main (int argc, char **argv)
{
- return find_stack_direction () < 0;
+ return find_stack_direction (0, argc + !argv + 20) < 0;
}])],
[SCM_I_GSC_STACK_GROWS_UP=1],
[],

View file

@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=guile1.8
SRCNAM=guile
VERSION=${VERSION:-1.8.8}
BUILD=${BUILD:-3}
BUILD=${BUILD:-4}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@ -71,6 +71,8 @@ cd $TMP
rm -rf $SRCNAM-$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
cd $SRCNAM-$VERSION
# fix segfault - thanks gentoo maintainers.
patch -p1 -i $CWD/guile-1.8.8-gcc46.patch
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \