From a0560aff676b0fe8d7d50b365a75ed158347eb3a Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Wed, 7 Oct 2020 13:55:06 +0200 Subject: [PATCH] configure: Use GUILD_OPTIMIZE=-O1 for Guile-3. * configure (main): Set guild_optimize to "-O1" for Guile-3. * build-aux/config.make.in (GUILD_OPTIMIZE): New variable. * build-aux/export.make (GUILD_OPTIMIZE): Export if set. * build-aux/config.sh.in (GUILD_OPTIMIZE): New variable. * build-aux/build-guile.sh: Use it. --- build-aux/build-guile.sh | 2 +- build-aux/config.make.in | 1 + build-aux/config.sh.in | 1 + build-aux/export.make | 4 ++++ configure | 5 +++++ 5 files changed, 12 insertions(+), 1 deletion(-) diff --git a/build-aux/build-guile.sh b/build-aux/build-guile.sh index 4cee61e5..dfbef410 100755 --- a/build-aux/build-guile.sh +++ b/build-aux/build-guile.sh @@ -62,6 +62,6 @@ for i in $SCM_FILES $SCRIPTS; do go=${i%%.scm}.go f=${srcdest}$i if test $f -nt $go; then - trace "GUILEC $f" $GUILD compile -L ${srcdest}module -L ${srcdest}build-aux -L ${srcdest}scripts -o $go $f + trace "GUILEC $f" $GUILD compile $GUILD_OPTIMIZE -L ${srcdest}module -L ${srcdest}build-aux -L ${srcdest}scripts -o $go $f fi done diff --git a/build-aux/config.make.in b/build-aux/config.make.in index 1e250e5e..82c62e1e 100644 --- a/build-aux/config.make.in +++ b/build-aux/config.make.in @@ -26,6 +26,7 @@ DIFF:=@DIFF@ DOT:=@DOT@ GIT:=@GIT@ GUILD:=@GUILD@ +GUILD_OPTIMIZE:=@GUILD_OPTIMIZE@ GUILE:=@GUILE@ GUILE_EFFECTIVE_VERSION:=@GUILE_EFFECTIVE_VERSION@ GUILE_LOAD_PATH:=@GUILE_LOAD_PATH@ diff --git a/build-aux/config.sh.in b/build-aux/config.sh.in index f2cc63d9..2e821903 100644 --- a/build-aux/config.sh.in +++ b/build-aux/config.sh.in @@ -27,6 +27,7 @@ DIFF=${DIFF-@DIFF@} DOT="@DOT@" GIT="@GIT@" GUILD="@GUILD@" +GUILD_OPTIMIZE="${GUILD_OPTIMIZE-@GUILD_OPTIMIZE@}" GUILE="@GUILE@" GUILE_EFFECTIVE_VERSION="@GUILE_EFFECTIVE_VERSION@" GUILE_LOAD_PATH="@GUILE_LOAD_PATH@" diff --git a/build-aux/export.make b/build-aux/export.make index 7cab1339..505d5a6e 100644 --- a/build-aux/export.make +++ b/build-aux/export.make @@ -119,6 +119,10 @@ ifdef SHELL export SHELL endif +ifdef GUILD_OPTIMIZE +export GUILD_OPTIMIZE +endif + ifdef GUILE_LOAD_PATH export GUILE_LOAD_PATH endif diff --git a/configure b/configure index 00c926ef..8c1db2ac 100755 --- a/configure +++ b/configure @@ -388,6 +388,7 @@ Some influential environment variables: LDFLAGS C linker flags GUILE guile command GUILD guild command + GUILD_OPTIMIZE guild compile optimization GUILE_LOAD_PATH guile load path; where to find Nyacc MES_FOR_BUILD build system MES [can be mes or guile] " PACKAGE VERSION (getenv "prefix"))) @@ -476,6 +477,9 @@ Some influential environment variables: (make-dep "help2man" #:version '(1 47) #:optional? #t) (make-dep "perl" #:version '(5) #:optional? #t)))) (guile (file-name "guile" deps)) + ;; See https://bugs.gnu.org/43831; use -O1 with Guile-3 + (guild-optimize (let ((guile-version (and=> (find-dep "guile" deps) dependency-version-found))) + (and guile-version (tuple< '(2) guile-version) "-O1"))) (deps (if guile (cons (check-program-version (make-dep "nyacc" #:version '(0 99 0) #:commands (list (string-append guile " -c '(use-modules (nyacc lalr)) (display *nyacc-version*)'")) #:file-name #t #:version-option #f)) deps) deps)) @@ -626,6 +630,7 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system) ("@DIFF@" . ,(or (file-name "diff" deps) (string-append abs-top-builddir "/pre-inst-env diff.scm"))) ("@DOT@" . ,(or (file-name "dot" deps) "")) ("@GIT@" . ,(or (file-name "git" deps) "")) + ("@GUILD_OPTIMIZE@" . ,(or (getenv "GUILD_OPTIMIZE") guild-optimize "")) ("@GUILE@" . ,guile) ("@GUILE_EFFECTIVE_VERSION@" . ,(effective-version)) ("@GUILE_LOAD_PATH@" . ,(string-join guile-load-path ":"))