diff mbox series

[bug#47615,2/9] gnu: guile-3.0: Fix building on powerpc-linux.

Message ID c11ad7faa3690b2dfef924a31137f6ced5aab23f.1617711307.git.efraim@flashner.co.il
State New
Headers show
Series Add 32-bit powerpc support | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Efraim Flashner April 6, 2021, 12:32 p.m. UTC
* gnu/packages/guile.scm (guile-3.0)[arguments]: On powerpc add two
phases to adjust for 32-bit big-endian systems.
---
 gnu/packages/guile.scm | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

Comments

Chris Marusich April 14, 2021, 4 a.m. UTC | #1
Efraim Flashner <efraim@flashner.co.il> writes:

> * gnu/packages/guile.scm (guile-3.0)[arguments]: On powerpc add two
> phases to adjust for 32-bit big-endian systems.
> ---
>  gnu/packages/guile.scm | 21 ++++++++++++++++++++-
>  1 file changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
> index f63322794d..dca1b1c16f 100644
> --- a/gnu/packages/guile.scm
> +++ b/gnu/packages/guile.scm
> @@ -305,7 +305,26 @@ without requiring the source code to be rewritten.")
>           (substitute-keyword-arguments (package-arguments guile-2.2)
>             ((#:configure-flags flags ''())
>              `(cons "--disable-jit" ,flags)))
> -         (package-arguments guile-2.2)))
> +         (if (string-prefix? "powerpc-" (%current-system))
> +           (substitute-keyword-arguments (package-arguments guile-2.2)
> +             ((#:phases phases)
> +              `(modify-phases ,phases
> +                 (add-after 'unpack 'adjust-bootstrap-flags
> +                   (lambda _
> +                     ;; Upstream not yet notified about suggested solution.
> +                     ;; See existing bug reports:
> +                     ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214
> +                     ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=977223
> +                     (substitute* "bootstrap/Makefile.in"
> +                       (("^GUILE_OPTIMIZATIONS.*")
> +                        "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n"))
> +                     #t))
> +                 (add-after 'unpack 'remove-failing-tests
> +                   (lambda _
> +                     ;; TODO: Discover why this test fails on powerpc-linux
> +                     (delete-file "test-suite/standalone/test-out-of-memory")
> +                     #t)))))
> +           (package-arguments guile-2.2))))
>      (native-search-paths
>       (list (search-path-specification
>              (variable "GUILE_LOAD_PATH")

Generally this looks reasonable.  I understand 3 weeks is a long
iteration time!  I think it's OK to proceed if it works for
bootstrapping other software on this platform.  Especially since the
change is isolated to just powerpc-linux.

Has the Guile test failure been reported upstream?
Efraim Flashner April 14, 2021, 2 p.m. UTC | #2
On Tue, Apr 13, 2021 at 09:00:43PM -0700, Chris Marusich wrote:
> Efraim Flashner <efraim@flashner.co.il> writes:
> 
> > * gnu/packages/guile.scm (guile-3.0)[arguments]: On powerpc add two
> > phases to adjust for 32-bit big-endian systems.
> > ---
> >  gnu/packages/guile.scm | 21 ++++++++++++++++++++-
> >  1 file changed, 20 insertions(+), 1 deletion(-)
> >
> > diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
> > index f63322794d..dca1b1c16f 100644
> > --- a/gnu/packages/guile.scm
> > +++ b/gnu/packages/guile.scm
> > @@ -305,7 +305,26 @@ without requiring the source code to be rewritten.")
> >           (substitute-keyword-arguments (package-arguments guile-2.2)
> >             ((#:configure-flags flags ''())
> >              `(cons "--disable-jit" ,flags)))
> > -         (package-arguments guile-2.2)))
> > +         (if (string-prefix? "powerpc-" (%current-system))
> > +           (substitute-keyword-arguments (package-arguments guile-2.2)
> > +             ((#:phases phases)
> > +              `(modify-phases ,phases
> > +                 (add-after 'unpack 'adjust-bootstrap-flags
> > +                   (lambda _
> > +                     ;; Upstream not yet notified about suggested solution.
> > +                     ;; See existing bug reports:
> > +                     ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214
> > +                     ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=977223
> > +                     (substitute* "bootstrap/Makefile.in"
> > +                       (("^GUILE_OPTIMIZATIONS.*")
> > +                        "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n"))
> > +                     #t))
> > +                 (add-after 'unpack 'remove-failing-tests
> > +                   (lambda _
> > +                     ;; TODO: Discover why this test fails on powerpc-linux

Needs a period at the end of the sentence.

> > +                     (delete-file "test-suite/standalone/test-out-of-memory")
> > +                     #t)))))
> > +           (package-arguments guile-2.2))))
> >      (native-search-paths
> >       (list (search-path-specification
> >              (variable "GUILE_LOAD_PATH")
> 
> Generally this looks reasonable.  I understand 3 weeks is a long
> iteration time!  I think it's OK to proceed if it works for
> bootstrapping other software on this platform.  Especially since the
> change is isolated to just powerpc-linux.
> 
> Has the Guile test failure been reported upstream?
> 

The two bugs mentioned are known to upstream and there are some other
reports of failures on other niche architectures like hppa.
Unfortunately I haven't gotten around to writing the email letting them
know what works for me but I'll do that soon. I haven't signed the CLA
for GNU projects so I want to make sure I don't send them a poisoned
patch.
diff mbox series

Patch

diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index f63322794d..dca1b1c16f 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -305,7 +305,26 @@  without requiring the source code to be rewritten.")
          (substitute-keyword-arguments (package-arguments guile-2.2)
            ((#:configure-flags flags ''())
             `(cons "--disable-jit" ,flags)))
-         (package-arguments guile-2.2)))
+         (if (string-prefix? "powerpc-" (%current-system))
+           (substitute-keyword-arguments (package-arguments guile-2.2)
+             ((#:phases phases)
+              `(modify-phases ,phases
+                 (add-after 'unpack 'adjust-bootstrap-flags
+                   (lambda _
+                     ;; Upstream not yet notified about suggested solution.
+                     ;; See existing bug reports:
+                     ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45214
+                     ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=977223
+                     (substitute* "bootstrap/Makefile.in"
+                       (("^GUILE_OPTIMIZATIONS.*")
+                        "GUILE_OPTIMIZATIONS = -O1 -Oresolve-primitives -Ocps\n"))
+                     #t))
+                 (add-after 'unpack 'remove-failing-tests
+                   (lambda _
+                     ;; TODO: Discover why this test fails on powerpc-linux
+                     (delete-file "test-suite/standalone/test-out-of-memory")
+                     #t)))))
+           (package-arguments guile-2.2))))
     (native-search-paths
      (list (search-path-specification
             (variable "GUILE_LOAD_PATH")