Package: guix-patches;
Reported by: Philip McGrath <philip <at> philipmcgrath.com>
Date: Mon, 8 Aug 2022 06:07:02 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Philip McGrath <philip <at> philipmcgrath.com> To: Thiago Jung Bauermann <bauermann <at> kolabnow.com> Cc: 57050 <at> debbugs.gnu.org, Liliana Marie Prikler <liliana.prikler <at> ist.tugraz.at>, Philip McGrath <philip <at> philipmcgrath.com>, Liliana Marie Prikler <liliana.prikler <at> gmail.com> Subject: [bug#57050] [RFC PATCH v2] gnu: racket: Backport fix for powerpc64le. Date: Mon, 15 Aug 2022 15:54:21 -0400
Hi Thiago, > > Nice! thanks for the quick fix. I tested guix-issue-57050-v2 and now > > chez-scheme-for-racket-bootstrap-bootfiles builds successfully! > > > Unfortunately there's still a holdup: the install phase of > > racket-vm-cs-8.6 > fails: > > > > [...] > > > > Apparently some part of the racket-vm-cs build system thinks that it's > > cross-compiling when it's not. I'm still trying to figure out where this > > > “--cross-compiler” argument is being added but thought I'd provide an > > early > report. > > > Thanks for trying this! I think I've found what's going wrong in the > 'configure' script is going wrong, but I'm not sure yet what's the right way > to fix it. > Matthew Flatt fixed our use-case in 'configure' upstream, and I've cherry-picked it for Guix in the patch below. Can you try this instead? I've updated the 'zuo' branch at https://gitlab.com/philip1/guix-patches to point to this (commit ddc94a778b196e9425f0057cbd21404e7ecf6605) and tagged it as guix-issue-57050-v2-rfc2; I also tagged the previous attempt as guix-issue-57050-v2-rfc1. I will send a clean v3 of this series once this and other remaining questions are resolved. I tried bootstrapping the 'regexp', 'io', and 'thread' layers, but it's not so simple as just deleting the generated files in a snippet. I'll look into that further once this series is merged and either send patches or deal with it during the 8.7 update. Thanks! -Philip -- >8 -- From: Philip McGrath <philip <at> philipmcgrath.com> Date: Mon, 15 Aug 2022 12:32:57 -0400 Subject: [RFC PATCH v2] gnu: racket: Backport fix for powerpc64le. Racket's configure script had incorrectly assumed that the combination of '--enable-racket' and '--enable-pb' implied cross-compilation. On systems like powerpc64le-linux which always require '--enable-pb' (since they lack native Chez Scheme backends), this was a particular problem, breaking `make install`: see <https://issues.guix.gnu.org/57050#54>. This patch cherry-picks an upstream repair for the problem affecting Guix, though other configurations may need further work: see <https://racket.discourse.group/t/950/29>. * gnu/packages/patches/racket-backport-8.6-cross-install.patch: Add additional backport. --- .../racket-backport-8.6-cross-install.patch | 98 ++++++++++++++++++- 1 file changed, 96 insertions(+), 2 deletions(-) diff --git a/gnu/packages/patches/racket-backport-8.6-cross-install.patch b/gnu/packages/patches/racket-backport-8.6-cross-install.patch index 4f7849ecc6..2c4d8924ed 100644 --- a/gnu/packages/patches/racket-backport-8.6-cross-install.patch +++ b/gnu/packages/patches/racket-backport-8.6-cross-install.patch @@ -1,7 +1,8 @@ -From 585215c5c42f7ee0fee05e6a637ab1bc17f5e8e0 Mon Sep 17 00:00:00 2001 +From fbe2094f56fb81c888076c781e90fb0abbc0cc07 Mon Sep 17 00:00:00 2001 From: Matthew Flatt <mflatt <at> racket-lang.org> Date: Sat, 30 Jul 2022 07:06:55 -0600 -Subject: [PATCH] CS makefiles: fix Unix-style install for cross compilation +Subject: [PATCH 1/2] CS makefiles: fix Unix-style install for cross + compilation Closes #4377 @@ -30,3 +31,96 @@ index 8d3950bb27..d8b74c509d 100644 -- 2.32.0 + +From 85802f4d515e310e657928707800ad709a676e2a Mon Sep 17 00:00:00 2001 +From: Matthew Flatt <mflatt <at> racket-lang.org> +Date: Mon, 15 Aug 2022 10:37:01 +0800 +Subject: [PATCH 2/2] configure: adjust cross-build assumption for a pb build + +Don't assume a cross build for a pb target on a platform that's only +supported via pb. + +(cherry picked from commit 70e484e885637c495be5481983dae2207fdd67bb) + +(Edited to remove unrelated tweak to comments in +"racket/src/expander/expand/require+provide.rkt".) +--- + racket/src/cs/c/configure | 15 +++++++++++---- + racket/src/cs/c/configure.ac | 15 +++++++++++---- + 2 files changed, 22 insertions(+), 8 deletions(-) + +diff --git a/racket/src/cs/c/configure b/racket/src/cs/c/configure +index 454d79e11a..7e0fa5600d 100755 +--- a/racket/src/cs/c/configure ++++ b/racket/src/cs/c/configure +@@ -4679,6 +4679,11 @@ case "$MACH_HOST_CPU" in + ;; + esac + ++if test "${MACH}" = "" ; then ++ default_mach_was_empty=yes ++else ++ default_mach_was_empty=no ++fi + + if test "${enable_mach}" != "" ; then + MACH="${enable_mach}" +@@ -4701,13 +4706,15 @@ elif test "$MACH" = "" -o "$MACH_OS" = "" ; then + exit 1 + fi + +-# For a pb build where Racket is supplied, force cross-build +-# mode on the assumption that the host is not a pb build +-# (because it should be created with default configure options) ++# For a pb build where Racket is supplied and MACH was not originally ++# empty, force cross-build mode on the assumption that the host is not ++# a pb build (because it should be created with default configure options) + if test "${enable_pb}" = "yes" ; then + if test "${enable_racket}" != "" ; then + if test "${enable_target}" = "" ; then +- enable_target="${MACH}" ++ if test "${default_mach_was_empty}" = "no" ; then ++ enable_target="${MACH}" ++ fi + fi + fi + fi +diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac +index 5bce979c92..734c1e8feb 100644 +--- a/racket/src/cs/c/configure.ac ++++ b/racket/src/cs/c/configure.ac +@@ -415,6 +415,11 @@ case "$MACH_HOST_CPU" in + ;; + esac + ++if test "${MACH}" = "" ; then ++ default_mach_was_empty=yes ++else ++ default_mach_was_empty=no ++fi + + if test "${enable_mach}" != "" ; then + MACH="${enable_mach}" +@@ -437,13 +442,15 @@ elif test "$MACH" = "" -o "$MACH_OS" = "" ; then + exit 1 + fi + +-# For a pb build where Racket is supplied, force cross-build +-# mode on the assumption that the host is not a pb build +-# (because it should be created with default configure options) ++# For a pb build where Racket is supplied and MACH was not originally ++# empty, force cross-build mode on the assumption that the host is not ++# a pb build (because it should be created with default configure options) + if test "${enable_pb}" = "yes" ; then + if test "${enable_racket}" != "" ; then + if test "${enable_target}" = "" ; then +- enable_target="${MACH}" ++ if test "${default_mach_was_empty}" = "no" ; then ++ enable_target="${MACH}" ++ fi + fi + fi + fi +-- +2.32.0 + base-commit: aaa95de8c6cff1ba749a9dd0365dedb822ffa625 -- 2.32.0
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.