~ruther/guix-local

aa1e19477b2d78884fc500fef497cd6677604d9b — Mark H Weaver 11 years ago b58b7db
gnu: Add bootstrap binaries for 'armhf-linux'.

* gnu/packages/bootstrap/armhf-linux/bash,
  gnu/packages/bootstrap/armhf-linux/mkdir,
  gnu/packages/bootstrap/armhf-linux/tar,
  gnu/packages/bootstrap/armhf-linux/xz: New files.

* gnu-system.am (bootstrap_armhf_linuxdir, dist_bootstrap_armhf_linux_DATA)
  (nodist_bootstrap_armhf_linux_DATA): New variables.
  (DISTCLEANFILES): Add $(nodist_bootstrap_armhf_linux_DATA).
  (gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz): New target.
* build-aux/download.scm (file-name->uri): Use newer date in URI for
  armhf-linux.
* gnu/packages/bootstrap.scm (raw-build): Use "guile-2.0.11.tar.xz" on
  armhf-linux.
  (glibc-dynamic-linker, %bootstrap-coreutils&co, %bootstrap-binutils)
  (%bootstrap-glibc, %bootstrap-gcc): Add armhf-linux cases.

* m4/guix.m4 (GUIX_SYSTEM_TYPE): Add armhf case.
  (GUIX_ASSERT_SUPPORTED_SYSTEM): Add armhf-linux to list of
  supported systems.
* doc/guix.texi (GNU Distribution): Add armhf-linux to the list of
  supported systems.
M .gitignore => .gitignore +1 -0
@@ 67,6 67,7 @@ config.cache
/doc/version.texi
/gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz
/gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz
/gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz
/gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz
/guix/config.scm
/nix/nix-daemon/nix-daemon.cc

M build-aux/download.scm => build-aux/download.scm +7 -1
@@ 1,5 1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 45,7 46,12 @@
  (match (string-tokenize file (char-set-complement (char-set #\/)))
    ((_ ... system basename)
     (string->uri (string-append %url-base "/" system
                                 "/20131110/" basename)))))
                                 (match system
                                   ("armhf-linux"
                                    "/20150101/")
                                   (_
                                    "/20131110/"))
                                 basename)))))

(match (command-line)
  ((_ file expected-hash)

M doc/guix.texi => doc/guix.texi +4 -0
@@ 3246,6 3246,10 @@ Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;
@item i686-linux
Intel 32-bit architecture (IA32), Linux-Libre kernel;

@item armhf-linux
ARMv7-A architecture with hard float, Thumb-2 and VFP3D16 coprocessor,
using the EABI hard-float ABI, and Linux-Libre kernel.

@item mips64el-linux
little-endian 64-bit MIPS processors, specifically the Loongson series,
n32 application binary interface (ABI), and Linux-Libre kernel.

M gnu-system.am => gnu-system.am +13 -0
@@ 495,6 495,7 @@ dist_patch_DATA =						\
bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap
bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux
bootstrap_armhf_linuxdir = $(bootstrapdir)/armhf-linux
bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux

dist_bootstrap_x86_64_linux_DATA =		\


@@ 509,6 510,12 @@ dist_bootstrap_i686_linux_DATA =		\
  gnu/packages/bootstrap/i686-linux/tar		\
  gnu/packages/bootstrap/i686-linux/xz

dist_bootstrap_armhf_linux_DATA =		\
  gnu/packages/bootstrap/armhf-linux/bash	\
  gnu/packages/bootstrap/armhf-linux/mkdir	\
  gnu/packages/bootstrap/armhf-linux/tar	\
  gnu/packages/bootstrap/armhf-linux/xz

dist_bootstrap_mips64el_linux_DATA =		\
  gnu/packages/bootstrap/mips64el-linux/bash	\
  gnu/packages/bootstrap/mips64el-linux/mkdir	\


@@ 521,6 528,8 @@ nodist_bootstrap_x86_64_linux_DATA =					\
  gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz
nodist_bootstrap_i686_linux_DATA =					\
  gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz
nodist_bootstrap_armhf_linux_DATA =					\
  gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz
nodist_bootstrap_mips64el_linux_DATA =					\
  gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz



@@ 532,6 541,7 @@ set-bootstrap-executable-permissions:
DISTCLEANFILES =				\
  $(nodist_bootstrap_x86_64_linux_DATA)		\
  $(nodist_bootstrap_i686_linux_DATA)		\
  $(nodist_bootstrap_armhf_linux_DATA)		\
  $(nodist_bootstrap_mips64el_linux_DATA)

# Method to download a file from an external source.


@@ 546,6 556,9 @@ gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz:
gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz:
	$(MKDIR_P) `dirname "$@"`
	$(DOWNLOAD_FILE) "$@" "b757cd46bf13ecac83fb8e955fb50096ac2d17bb610ca8eb816f29302a00a846"
gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz:
	$(MKDIR_P) `dirname "$@"`
	$(DOWNLOAD_FILE) "$@" "e551d05d4d385d6706ab8d574856a087758294dc90ab4c06e70a157a685e23d6"
gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz:
	$(MKDIR_P) `dirname "$@"`
	$(DOWNLOAD_FILE) "$@" "994680f0001346864aa2c2cc5110f380ee7518dcd701c614291682b8e948f73b"

M gnu/packages/bootstrap.scm => gnu/packages/bootstrap.scm +37 -5
@@ 192,7 192,11 @@ successful, or false to signal an error."
         (xz    (->store "xz"))
         (mkdir (->store "mkdir"))
         (bash  (->store "bash"))
         (guile (->store "guile-2.0.9.tar.xz"))
         (guile (->store (match system
                           ("armhf-linux"
                            "guile-2.0.11.tar.xz")
                           (_
                            "guile-2.0.9.tar.xz"))))
         (builder
          (add-text-to-store store
                             "build-bootstrap-guile.sh"


@@ 252,7 256,11 @@ $out/bin/guile --version~%"
                          (origin
                           (method url-fetch)
                           (uri (map (cut string-append <> "/" system
                                          "/20131110/static-binaries.tar.xz")
                                          (match system
                                            ("armhf-linux"
                                             "/20150101/static-binaries.tar.xz")
                                            (_
                                             "/20131110/static-binaries.tar.xz")))
                                     %bootstrap-base-urls))
                           (sha256
                            (match system


@@ 262,6 270,9 @@ $out/bin/guile --version~%"
                              ("i686-linux"
                               (base32
                                "0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak"))
                              ("armhf-linux"
                               (base32
                                "0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5"))
                              ("mips64el-linux"
                               (base32
                                "072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))


@@ 281,7 292,11 @@ $out/bin/guile --version~%"
                          (origin
                           (method url-fetch)
                           (uri (map (cut string-append <> "/" system
                                          "/20131110/binutils-2.23.2.tar.xz")
                                          (match system
                                            ("armhf-linux"
                                             "/20150101/binutils-2.25.tar.xz")
                                            (_
                                             "/20131110/binutils-2.23.2.tar.xz")))
                                     %bootstrap-base-urls))
                           (sha256
                            (match system


@@ 291,6 306,9 @@ $out/bin/guile --version~%"
                              ("i686-linux"
                               (base32
                                "14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9"))
                              ("armhf-linux"
                               (base32
                                "1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q"))
                              ("mips64el-linux"
                               (base32
                                "1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))


@@ 335,7 353,11 @@ $out/bin/guile --version~%"
                    (origin
                     (method url-fetch)
                     (uri (map (cut string-append <> "/" (%current-system)
                                    "/20131110/glibc-2.18.tar.xz")
                                    (match (%current-system)
                                      ("armhf-linux"
                                       "/20150101/glibc-2.20.tar.xz")
                                      (_
                                       "/20131110/glibc-2.18.tar.xz")))
                               %bootstrap-base-urls))
                     (sha256
                      (match (%current-system)


@@ 345,6 367,9 @@ $out/bin/guile --version~%"
                        ("i686-linux"
                         (base32
                          "1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w"))
                        ("armhf-linux"
                         (base32
                          "18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn"))
                        ("mips64el-linux"
                         (base32
                          "0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))


@@ 406,7 431,11 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
                    (origin
                     (method url-fetch)
                     (uri (map (cut string-append <> "/" (%current-system)
                                    "/20131110/gcc-4.8.2.tar.xz")
                                    (match (%current-system)
                                      ("armhf-linux"
                                       "/20150101/gcc-4.8.4.tar.xz")
                                      (_
                                       "/20131110/gcc-4.8.2.tar.xz")))
                               %bootstrap-base-urls))
                     (sha256
                      (match (%current-system)


@@ 416,6 445,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
                        ("i686-linux"
                         (base32
                          "150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw"))
                        ("armhf-linux"
                         (base32
                          "0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v"))
                        ("mips64el-linux"
                         (base32
                          "1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))

A gnu/packages/bootstrap/armhf-linux/bash => gnu/packages/bootstrap/armhf-linux/bash +0 -0
A gnu/packages/bootstrap/armhf-linux/mkdir => gnu/packages/bootstrap/armhf-linux/mkdir +0 -0
A gnu/packages/bootstrap/armhf-linux/tar => gnu/packages/bootstrap/armhf-linux/tar +0 -0
A gnu/packages/bootstrap/armhf-linux/xz => gnu/packages/bootstrap/armhf-linux/xz +0 -0
M m4/guix.m4 => m4/guix.m4 +12 -1
@@ 1,5 1,6 @@
dnl GNU Guix --- Functional package management for GNU
dnl Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
dnl Copyright © 2014 Mark H Weaver <mhw@netris.org>
dnl
dnl This file is part of GNU Guix.
dnl


@@ 50,6 51,16 @@ AC_DEFUN([GUIX_SYSTEM_TYPE], [
	  machine_name="i686";;
       amd64)
	  machine_name="x86_64";;
       arm*)
          # TODO: If not cross-compiling, add a sanity check to make
          #       sure this build machine has the needed features to
          #       support executables compiled using our armhf gcc,
          #       configured with:
          #         --with-arch=armv7-a
          #         --with-float=hard
          #         --with-mode=thumb
          #         --with-fpu=vfpv3-d16
	  machine_name="armhf";;
       *)
	  machine_name="$host_cpu";;
     esac


@@ 86,7 97,7 @@ courageous and port the GNU System distribution to it (see
  # Currently only Linux-based systems are supported, and only on some
  # platforms.
  case "$guix_system" in
    x86_64-linux|i686-linux|mips64el-linux)
    x86_64-linux|i686-linux|armhf-linux|mips64el-linux)
      ;;
    *)
      if test "x$guix_courageous" = "xyes"; then