Subject: [PATCH] platform: Introduce powerpc64-linux
From: Michael Ford <[email-masked]>
To: [email-masked]
Date: Tue, 8 Aug 2023 16:57:39 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

I'm currently involved in a project which uses Guix to build a number of
cross-compiling toolchains, with Guix time-machine. On a recent update of
the time-machine, one cross-toolchain (powerpc64-linux-gnu) was no-longer
building, failing with:

Backtrace:
In srfi/srfi-1.scm:
   586:29 19 (map1 (#<<manifest-entry> name: "git-minimal" versio?> ?))
   586:29 18 (map1 (#<<manifest-entry> name: "python-lief" versio?> ?))
   586:17 17 (map1 (#<<manifest-entry> name: "powerpc64-linux-gnu-t?>))
In guix/profiles.scm:
  1936:19 16 (_ _)
In guix/packages.scm:
  1371:17 15 (supported-package? #<package powerpc64-linux-gnu-tool?> ?)
In guix/memoization.scm:
    101:0 14 (_ #<hash-table 7fe13d50ec20 289/443> #<package powerp?> ?)
In guix/packages.scm:
  1341:14 13 (_)
In srfi/srfi-1.scm:
   460:18 12 (fold #<procedure 7fe13bea3fc0 at guix/packages.scm:13?> ?)
In guix/packages.scm:
  1345:44 11 (_ _ ("x86_64-linux" "i686-linux"))
In guix/memoization.scm:
    101:0 10 (_ #<hash-table 7fe13d50ec20 289/443> #<package glibc-?> ?)
In guix/packages.scm:
  1341:14  9 (_)
In srfi/srfi-1.scm:
   460:18  8 (fold #<procedure 7fe13beaafa0 at guix/packages.scm:13?> ?)
In guix/packages.scm:
  1345:44  7 (_ _ ("x86_64-linux" "i686-linux"))
In guix/memoization.scm:
    101:0  6 (_ #<hash-table 7fe13d50ec20 289/443> #<package linux-?> ?)
In guix/packages.scm:
  1349:39  5 (_)
  1611:16  4 (package->bag _ _ _ #:graft? _)
  1716:43  3 (thunk)
In gnu/packages/cross-base.scm:
   455:34  2 (loop (#:phases (modify-phases %standard-phases # ?) ?) #)
In ice-9/boot-9.scm:
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
ERROR:
  1. &platform-not-found-error: "powerpc64-linux-gnu"

Adding powerpc64-linux as a platform resolves this issue.
I'm wondering if there's any reason this cannot, or wouldn't be added as a
platform definition?

From 8c3029c1a15b42c98e67e1db790cedcf1cb8a45e Mon Sep 17 00:00:00 2001
From: fanquake <[email-masked]>
Date: Tue, 8 Aug 2023 16:39:47 +0200
Subject: [PATCH] platform: Introduce powerpc64-linux

* gnu/platforms/powerpc.scm: Introduce powerpc64-linux.
---
 guix/platforms/powerpc.scm | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/guix/platforms/powerpc.scm b/guix/platforms/powerpc.scm
index 9d0b343bc3..b45a216983 100644
--- a/guix/platforms/powerpc.scm
+++ b/guix/platforms/powerpc.scm
@@ -20,6 +20,7 @@ (define-module (guix platforms powerpc)
   #:use-module (guix platform)
   #:use-module (guix records)
   #:export (powerpc-linux
+           powerpc64-linux
             powerpc64le-linux))

 (define powerpc-linux
@@ -29,6 +30,13 @@ (define powerpc-linux
    (linux-architecture "powerpc")
    (glibc-dynamic-linker "/lib/ld.so.1")))

+(define powerpc64-linux
+  (platform
+   (target "powerpc64-linux-gnu")
+   (system "powerpc64-linux")
+   (linux-architecture "powerpc")
+   (glibc-dynamic-linker "/lib/ld64.so.1")))
+
 (define powerpc64le-linux
   (platform
    (target "powerpc64le-linux-gnu")
-- 
2.41.0