From a3585c5432e11d2518ae84c4a9871256d2619330 Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Sun, 9 Feb 2020 09:15:36 +0200
Subject: [PATCH 1/3] WIP add powerpc support
---
gnu/packages/bootstrap.scm | 59 +++++++++++++++++++++++++++++++-------
guix/packages.scm | 4 +--
2 files changed, 51 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index d6995f104c..6c6150397c 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès
;;; Copyright © 2014, 2015, 2018, 2019 Mark H Weaver
;;; Copyright © 2017 Efraim Flashner
+;;; Copyright © 2017, 2019 Efraim Flashner
;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen
;;; Copyright © 2019 Carl Dong
;;;
@@ -86,6 +87,15 @@
,(base32 "1j51gv08sfg277yxj73xd564wjq3f8xwd6s9rbcg8v9gms47m4cx"))
("xz"
,(base32 "1d779rwsrasphg5g3r37qppcqy3p7ay1jb1y83w7x4i3qsc7zjy2")))
+ ("powerpc-linux"
+ ("bash"
+ ,(base32 "00g9mp51jk4gy1hszx6dz5dqhnhxzn7hh31hakyxhyv6xqiw74fx"))
+ ("mkdir"
+ ,(base32 "1s6p31sq5k5fqv5x548vq7l7z481qh93k0fyhqmkzjf2vvkgd1xm"))
+ ("tar"
+ ,(base32 "1ci1lj5zpq2fj1h1r1svyi4qw45h6qc93rq715ps9b2ikm7d9nhd"))
+ ("xz"
+ ,(base32 "17jfrc0kn8qgckxynjaidl9xsz6g7sms1k3hdll0lbxrjnwayha9")))
("armhf-linux"
("bash"
,(base32 "0s6f1s26g4dsrrkl39zblvwpxmbzi6n9mgqf6vxsqz42gik6bgyn"))
@@ -117,9 +127,12 @@
(define (bootstrap-executable-url program system)
"Return the URL where PROGRAM can be found for SYSTEM."
(string-append
- "https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/"
- system "/" program
- "?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))
+ ;; For powerpc and other new targets.
+ "http://flashner.co.il/guix/bootstrap/powerpc-linux/20191103/powerpc-linux/"
+ program))
+ ;"https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/"
+ ;system "/" program
+ ;"?id=44f07d1dc6806e97c4e9ee3e6be883cc59dc666e"))
(define bootstrap-executable
(mlambda (program system)
@@ -309,6 +322,8 @@ or false to signal an error."
(match system
("aarch64-linux"
"/20170217/guile-2.0.14.tar.xz")
+ ("powerpc-linux"
+ "/20191103/guile-2.2.6.tar.xz")
("armhf-linux"
"/20150101/guile-2.0.11.tar.xz")
(_
@@ -326,7 +341,9 @@ or false to signal an error."
("armhf-linux"
(base32 "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5"))
("aarch64-linux"
- (base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))))
+ (base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r"))
+ ("powerpc-linux"
+ (base32 "1y7ymjhd7g0w27198xxia1sskjp07r4bxfq261i0lj4ff4amkif6"))))
(define (bootstrap-guile-origin system)
"Return an object for the Guile tarball of SYSTEM."
@@ -379,10 +396,11 @@ or false to signal an error."
(lambda (p)
(format p "\
#!~a
-export GUILE_SYSTEM_PATH=~a/share/guile/2.0
-export GUILE_SYSTEM_COMPILED_PATH=~a/lib/guile/2.0/ccache
+export GUILE_SYSTEM_PATH=~a/share/guile/2.2
+export GUILE_SYSTEM_COMPILED_PATH=\"\"
+export GUILE_AUTO_COMPILE=0
exec -a \"~a0\" ~a \"~a@\"\n"
- bash out out dollar guile-real dollar)))
+ bash out dollar guile-real dollar)))
(chmod guile #o555)
(chmod bin-dir #o555))))))
(builder
@@ -395,8 +413,9 @@ cd $out
~a -dc < $GUILE_TARBALL | ~a xv
# Use the bootstrap guile to create its own wrapper to set the load path.
-GUILE_SYSTEM_PATH=$out/share/guile/2.0 \
-GUILE_SYSTEM_COMPILED_PATH=$out/lib/guile/2.0/ccache \
+GUILE_SYSTEM_PATH=$out/share/guile/2.2 \
+GUILE_SYSTEM_COMPILED_PATH=\"\" \
+GUILE_AUTO_COMPILE=0 \
$out/bin/guile -c ~s $out ~a
# Sanity check.
@@ -437,7 +456,7 @@ $out/bin/guile --version~%"
(lower make-raw-bag))))
(package
(name "guile-bootstrap")
- (version "2.0")
+ (version "2.2")
(source #f)
(build-system raw)
(synopsis "Bootstrap Guile")
@@ -456,6 +475,8 @@ $out/bin/guile --version~%"
"/20150101/static-binaries.tar.xz")
("aarch64-linux"
"/20170217/static-binaries.tar.xz")
+ ("powerpc-linux"
+ "/20191103/static-binaries.tar.xz")
(_
"/20131110/static-binaries.tar.xz")))
%bootstrap-base-urls))
@@ -473,6 +494,9 @@ $out/bin/guile --version~%"
("aarch64-linux"
(base32
"18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh"))
+ ("powerpc-linux"
+ (base32
+ "1nmfc0dchsng03zzbkpp1w8zwrw6mdrjw08nj87k8b0cr9arvl73"))
("mips64el-linux"
(base32
"072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
@@ -519,6 +543,8 @@ $out/bin/guile --version~%"
"/20150101/binutils-2.25.tar.xz")
("aarch64-linux"
"/20170217/binutils-2.27.tar.xz")
+ ("powerpc-linux"
+ "/20191103/binutils-2.32.tar.xz")
(_
"/20131110/binutils-2.23.2.tar.xz")))
%bootstrap-base-urls))
@@ -536,6 +562,9 @@ $out/bin/guile --version~%"
("aarch64-linux"
(base32
"111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n"))
+ ("powerpc-linux"
+ (base32
+ "16q4b03z6cn17fw8sy97xrcqjqlpmq943n7lz1dy7y97f8apxrcq"))
("mips64el-linux"
(base32
"1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
@@ -589,6 +618,8 @@ $out/bin/guile --version~%"
"/20150101/glibc-2.20.tar.xz")
("aarch64-linux"
"/20170217/glibc-2.25.tar.xz")
+ ("powerpc-linux"
+ "/20191103/glibc-2.29.tar.xz")
(_
"/20131110/glibc-2.18.tar.xz")))
%bootstrap-base-urls))
@@ -606,6 +637,9 @@ $out/bin/guile --version~%"
("aarch64-linux"
(base32
"07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c"))
+ ("powerpc-linux"
+ (base32
+ "0xl1ygqzvqf6xan63qv3ksz32h436b2mfp1x6s2lq96vvh28m2ar"))
("mips64el-linux"
(base32
"0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
@@ -675,6 +709,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
"/20150101/gcc-4.8.4.tar.xz")
("aarch64-linux"
"/20170217/gcc-5.4.0.tar.xz")
+ ("powerpc-linux"
+ "/20191103/gcc-7.4.0.tar.xz")
(_
"/20131110/gcc-4.8.2.tar.xz")))
%bootstrap-base-urls))
@@ -692,6 +728,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
("aarch64-linux"
(base32
"1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
+ ("powerpc-linux"
+ (base32
+ "02fkgfx098wi9lr7x0lpjvzmxnmlksl7ibzrzhrd1vdi0if5hcyc"))
("mips64el-linux"
(base32
"1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
diff --git a/guix/packages.scm b/guix/packages.scm
index d925e754a3..c0ed500617 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -232,7 +232,7 @@ name of its URI."
(define %supported-systems
;; This is the list of system types that are supported. By default, we
;; expect all packages to build successfully here.
- '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "mips64el-linux"))
+ '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "mips64el-linux" "powerpc-linux"))
(define %hurd-systems
;; The GNU/Hurd systems for which support is being developed.
@@ -243,7 +243,7 @@ name of its URI."
;;
;; XXX: MIPS is unavailable in CI:
;; .
- (fold delete %supported-systems '("mips64el-linux")))
+ (fold delete %supported-systems '("mips64el-linux" "powerpc-linux")))
;; A package.
--
2.25.0