commit: 7dfc6696249c7d992801d1352ed36c6c0c48ae9a Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Wed Nov 13 03:10:36 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Wed Nov 13 03:10:36 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7dfc6696
dev-scheme/guile: fix 32-bit patch As Stefan reports on the forums [0], regular Make conditions don't work as expected in Automake. We'd end up having GUILE_OPTIMIZATIONS set but Automake not realising it, so it'd use the default -O2 below, which made stage0 far slower than it needed to be. Fix that so that -O1 is always used when it should be, and the special -O1 ... options are needed for 32-bit BE, as originally intended. -O2 is now never used for stage0. This fixes slow guile build times on platforms with prebuilt/. (I will note, however, that ultimately, we may end up with slow build times again if we either delete the prebuilt/ stuff entirely or make it optional - which is indeed how I didn't notice it myself at least.) [0] https://forums.gentoo.org/viewtopic-p-8845997.html#8845997 Bug: https://bugs.gentoo.org/940650 Signed-off-by: Sam James <sam <AT> gentoo.org> .../guile/files/guile-3.0-fix-32bit-BE.patch | 27 ++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/dev-scheme/guile/files/guile-3.0-fix-32bit-BE.patch b/dev-scheme/guile/files/guile-3.0-fix-32bit-BE.patch index 6417f639b5df..a4e575691293 100644 --- a/dev-scheme/guile/files/guile-3.0-fix-32bit-BE.patch +++ b/dev-scheme/guile/files/guile-3.0-fix-32bit-BE.patch @@ -1,8 +1,17 @@ https://bugs.gentoo.org/940650#c4 -https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=977223;filename=guile-3.0-fix-32bit-BE.patch;msg=66 - -diff --git a/stage0/Makefile.am b/stage0/Makefile.am -index 12029fb45..b00611df0 100644 +https://bugs.debian.org/977223 +https://sources.debian.org/patches/guile-3.0/3.0.8-2/0009-Fix-32-bit-big-endian-builds-via-Oresolve-primitives.patch/ +--- a/configure.ac ++++ b/configure.ac +@@ -374,6 +374,8 @@ esac + AC_MSG_RESULT($SCM_PREBUILT_BINARIES) + AC_SUBST([SCM_PREBUILT_BINARIES]) + ++AM_CONDITIONAL([GUILE_32_BIT_BIG_ENDIAN], [test "$SCM_PREBUILT_BINARIES" = 32-bit-big-endian]) ++ + AC_HEADER_SYS_WAIT + AC_HEADER_DIRENT + --- a/stage0/Makefile.am +++ b/stage0/Makefile.am @@ -22,7 +22,12 @@ @@ -10,11 +19,11 @@ index 12029fb45..b00611df0 100644 GUILE_WARNINGS = -W0 -GUILE_OPTIMIZATIONS = -O1 -+$(ifeq($SCM_PREBUILT_BINARIES,"32-bit-little-endian") \ -+ GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps \ -+else \ -+ GUILE_OPTIMIZATIONS = -O1 \ -+endif) ++if GUILE_32_BIT_BIG_ENDIAN ++GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps ++else ++GUILE_OPTIMIZATIONS = -O1 ++endif + GUILE_BOOTSTRAP_STAGE = stage0
