[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#57050] [RFC PATCH v2] gnu: racket: Backport fix for powerpc64le.
From: |
Philip McGrath |
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@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@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@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
- [bug#57050] [PATCH v2 11/13] gnu: racket: Use Racket CS on all systems., (continued)
- [bug#57050] [PATCH v2 09/13] gnu: chez-scheme-for-racket: Suport all systems., Philip McGrath, 2022/08/11
- [bug#57050] [PATCH v2 09/13] gnu: chez-scheme-for-racket: Suport all systems., Liliana Marie Prikler, 2022/08/11
- [bug#57050] [PATCH v2 09/13] gnu: chez-scheme-for-racket: Suport all systems., Philip McGrath, 2022/08/11
- [bug#57050] [PATCH v2 10/13] gnu: racket-vm-bc: Add workaround for ppc64le., Philip McGrath, 2022/08/11
- [bug#57050] [PATCH v2 13/13] etc: teams: Add entry for Philip McGrath., Philip McGrath, 2022/08/11
- [bug#57050] [PATCH v2 00/13] gnu: Update Racket to 8.6. Add Zuo., Thiago Jung Bauermann, 2022/08/13
- [bug#57050] [RFC PATCH] gnu: racket-vm-cs: Avoid 'configure' bug with '--enable-racket'., Philip McGrath, 2022/08/15
- [bug#57050] [RFC PATCH] gnu: racket-vm-cs: Avoid 'configure' bug with '--enable-racket'., Philip McGrath, 2022/08/15
- [bug#57050] [RFC PATCH v2] gnu: racket: Backport fix for powerpc64le.,
Philip McGrath <=
- [bug#57050] [RFC PATCH v2] gnu: racket: Backport fix for powerpc64le., Thiago Jung Bauermann, 2022/08/18
- [bug#57050] [RFC PATCH v2] gnu: racket: Backport fix for powerpc64le., Maxime Devos, 2022/08/19