summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--build-aux/download.scm8
-rw-r--r--doc/guix.texi4
-rw-r--r--gnu-system.am13
-rw-r--r--gnu/packages/bootstrap.scm42
-rwxr-xr-xgnu/packages/bootstrap/armhf-linux/bashbin0 -> 802224 bytes
-rwxr-xr-xgnu/packages/bootstrap/armhf-linux/mkdirbin0 -> 401544 bytes
-rwxr-xr-xgnu/packages/bootstrap/armhf-linux/tarbin0 -> 755356 bytes
-rwxr-xr-xgnu/packages/bootstrap/armhf-linux/xzbin0 -> 502884 bytes
-rw-r--r--m4/guix.m413
10 files changed, 74 insertions, 7 deletions
diff --git a/.gitignore b/.gitignore
index bcb82aa26d..3ec36366e3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/build-aux/download.scm b/build-aux/download.scm
index 50123f59d2..a107a887dc 100644
--- a/build-aux/download.scm
+++ b/build-aux/download.scm
@@ -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)
diff --git a/doc/guix.texi b/doc/guix.texi
index 12a1808137..65d5eaea0e 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -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.
diff --git a/gnu-system.am b/gnu-system.am
index 06e96fb784..a00b83dbf4 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -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"
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index e1b50a1e4f..8373c4b5c8 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -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")))))))))
diff --git a/gnu/packages/bootstrap/armhf-linux/bash b/gnu/packages/bootstrap/armhf-linux/bash
new file mode 100755
index 0000000000..212a22c8ce
--- /dev/null
+++ b/gnu/packages/bootstrap/armhf-linux/bash
Binary files differdiff --git a/gnu/packages/bootstrap/armhf-linux/mkdir b/gnu/packages/bootstrap/armhf-linux/mkdir
new file mode 100755
index 0000000000..c3e5246e92
--- /dev/null
+++ b/gnu/packages/bootstrap/armhf-linux/mkdir
Binary files differdiff --git a/gnu/packages/bootstrap/armhf-linux/tar b/gnu/packages/bootstrap/armhf-linux/tar
new file mode 100755
index 0000000000..5a6aac8a58
--- /dev/null
+++ b/gnu/packages/bootstrap/armhf-linux/tar
Binary files differdiff --git a/gnu/packages/bootstrap/armhf-linux/xz b/gnu/packages/bootstrap/armhf-linux/xz
new file mode 100755
index 0000000000..a77aebc268
--- /dev/null
+++ b/gnu/packages/bootstrap/armhf-linux/xz
Binary files differdiff --git a/m4/guix.m4 b/m4/guix.m4
index 19e041a72c..d4415598b0 100644
--- a/m4/guix.m4
+++ b/m4/guix.m4
@@ -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