summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2014-12-31 04:23:12 -0500
committerMark H Weaver <mhw@netris.org>2015-01-07 21:47:51 -0500
commitaa1e19477b2d78884fc500fef497cd6677604d9b (patch)
tree635d061c2a0ff061d241266c9a364ee579826192
parentb58b7dbb75208f92c5eda7834fb42a196d66ca12 (diff)
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.
-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 bcb82aa26da..3ec36366e3f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -67,6 +67,7 @@ config.cache
67/doc/version.texi 67/doc/version.texi
68/gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz 68/gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz
69/gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz 69/gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz
70/gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz
70/gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz 71/gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz
71/guix/config.scm 72/guix/config.scm
72/nix/nix-daemon/nix-daemon.cc 73/nix/nix-daemon/nix-daemon.cc
diff --git a/build-aux/download.scm b/build-aux/download.scm
index 50123f59d2a..a107a887dc3 100644
--- a/build-aux/download.scm
+++ b/build-aux/download.scm
@@ -1,5 +1,6 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
3;;; 4;;;
4;;; This file is part of GNU Guix. 5;;; This file is part of GNU Guix.
5;;; 6;;;
@@ -45,7 +46,12 @@
45 (match (string-tokenize file (char-set-complement (char-set #\/))) 46 (match (string-tokenize file (char-set-complement (char-set #\/)))
46 ((_ ... system basename) 47 ((_ ... system basename)
47 (string->uri (string-append %url-base "/" system 48 (string->uri (string-append %url-base "/" system
48 "/20131110/" basename))))) 49 (match system
50 ("armhf-linux"
51 "/20150101/")
52 (_
53 "/20131110/"))
54 basename)))))
49 55
50(match (command-line) 56(match (command-line)
51 ((_ file expected-hash) 57 ((_ file expected-hash)
diff --git a/doc/guix.texi b/doc/guix.texi
index 12a18081375..65d5eaea0ed 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3246,6 +3246,10 @@ Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;
3246@item i686-linux 3246@item i686-linux
3247Intel 32-bit architecture (IA32), Linux-Libre kernel; 3247Intel 32-bit architecture (IA32), Linux-Libre kernel;
3248 3248
3249@item armhf-linux
3250ARMv7-A architecture with hard float, Thumb-2 and VFP3D16 coprocessor,
3251using the EABI hard-float ABI, and Linux-Libre kernel.
3252
3249@item mips64el-linux 3253@item mips64el-linux
3250little-endian 64-bit MIPS processors, specifically the Loongson series, 3254little-endian 64-bit MIPS processors, specifically the Loongson series,
3251n32 application binary interface (ABI), and Linux-Libre kernel. 3255n32 application binary interface (ABI), and Linux-Libre kernel.
diff --git a/gnu-system.am b/gnu-system.am
index 06e96fb784c..a00b83dbf4b 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -495,6 +495,7 @@ dist_patch_DATA = \
495bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap 495bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap
496bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux 496bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
497bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux 497bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux
498bootstrap_armhf_linuxdir = $(bootstrapdir)/armhf-linux
498bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux 499bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux
499 500
500dist_bootstrap_x86_64_linux_DATA = \ 501dist_bootstrap_x86_64_linux_DATA = \
@@ -509,6 +510,12 @@ dist_bootstrap_i686_linux_DATA = \
509 gnu/packages/bootstrap/i686-linux/tar \ 510 gnu/packages/bootstrap/i686-linux/tar \
510 gnu/packages/bootstrap/i686-linux/xz 511 gnu/packages/bootstrap/i686-linux/xz
511 512
513dist_bootstrap_armhf_linux_DATA = \
514 gnu/packages/bootstrap/armhf-linux/bash \
515 gnu/packages/bootstrap/armhf-linux/mkdir \
516 gnu/packages/bootstrap/armhf-linux/tar \
517 gnu/packages/bootstrap/armhf-linux/xz
518
512dist_bootstrap_mips64el_linux_DATA = \ 519dist_bootstrap_mips64el_linux_DATA = \
513 gnu/packages/bootstrap/mips64el-linux/bash \ 520 gnu/packages/bootstrap/mips64el-linux/bash \
514 gnu/packages/bootstrap/mips64el-linux/mkdir \ 521 gnu/packages/bootstrap/mips64el-linux/mkdir \
@@ -521,6 +528,8 @@ nodist_bootstrap_x86_64_linux_DATA = \
521 gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz 528 gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz
522nodist_bootstrap_i686_linux_DATA = \ 529nodist_bootstrap_i686_linux_DATA = \
523 gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz 530 gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz
531nodist_bootstrap_armhf_linux_DATA = \
532 gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz
524nodist_bootstrap_mips64el_linux_DATA = \ 533nodist_bootstrap_mips64el_linux_DATA = \
525 gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz 534 gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz
526 535
@@ -532,6 +541,7 @@ set-bootstrap-executable-permissions:
532DISTCLEANFILES = \ 541DISTCLEANFILES = \
533 $(nodist_bootstrap_x86_64_linux_DATA) \ 542 $(nodist_bootstrap_x86_64_linux_DATA) \
534 $(nodist_bootstrap_i686_linux_DATA) \ 543 $(nodist_bootstrap_i686_linux_DATA) \
544 $(nodist_bootstrap_armhf_linux_DATA) \
535 $(nodist_bootstrap_mips64el_linux_DATA) 545 $(nodist_bootstrap_mips64el_linux_DATA)
536 546
537# Method to download a file from an external source. 547# 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:
546gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz: 556gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz:
547 $(MKDIR_P) `dirname "$@"` 557 $(MKDIR_P) `dirname "$@"`
548 $(DOWNLOAD_FILE) "$@" "b757cd46bf13ecac83fb8e955fb50096ac2d17bb610ca8eb816f29302a00a846" 558 $(DOWNLOAD_FILE) "$@" "b757cd46bf13ecac83fb8e955fb50096ac2d17bb610ca8eb816f29302a00a846"
559gnu/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz:
560 $(MKDIR_P) `dirname "$@"`
561 $(DOWNLOAD_FILE) "$@" "e551d05d4d385d6706ab8d574856a087758294dc90ab4c06e70a157a685e23d6"
549gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz: 562gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz:
550 $(MKDIR_P) `dirname "$@"` 563 $(MKDIR_P) `dirname "$@"`
551 $(DOWNLOAD_FILE) "$@" "994680f0001346864aa2c2cc5110f380ee7518dcd701c614291682b8e948f73b" 564 $(DOWNLOAD_FILE) "$@" "994680f0001346864aa2c2cc5110f380ee7518dcd701c614291682b8e948f73b"
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index e1b50a1e4f5..8373c4b5c82 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -192,7 +192,11 @@ successful, or false to signal an error."
192 (xz (->store "xz")) 192 (xz (->store "xz"))
193 (mkdir (->store "mkdir")) 193 (mkdir (->store "mkdir"))
194 (bash (->store "bash")) 194 (bash (->store "bash"))
195 (guile (->store "guile-2.0.9.tar.xz")) 195 (guile (->store (match system
196 ("armhf-linux"
197 "guile-2.0.11.tar.xz")
198 (_
199 "guile-2.0.9.tar.xz"))))
196 (builder 200 (builder
197 (add-text-to-store store 201 (add-text-to-store store
198 "build-bootstrap-guile.sh" 202 "build-bootstrap-guile.sh"
@@ -252,7 +256,11 @@ $out/bin/guile --version~%"
252 (origin 256 (origin
253 (method url-fetch) 257 (method url-fetch)
254 (uri (map (cut string-append <> "/" system 258 (uri (map (cut string-append <> "/" system
255 "/20131110/static-binaries.tar.xz") 259 (match system
260 ("armhf-linux"
261 "/20150101/static-binaries.tar.xz")
262 (_
263 "/20131110/static-binaries.tar.xz")))
256 %bootstrap-base-urls)) 264 %bootstrap-base-urls))
257 (sha256 265 (sha256
258 (match system 266 (match system
@@ -262,6 +270,9 @@ $out/bin/guile --version~%"
262 ("i686-linux" 270 ("i686-linux"
263 (base32 271 (base32
264 "0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak")) 272 "0s5b3jb315n13m1k8095l0a5hfrsz8g0fv1b6riyc5hnxqyphlak"))
273 ("armhf-linux"
274 (base32
275 "0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5"))
265 ("mips64el-linux" 276 ("mips64el-linux"
266 (base32 277 (base32
267 "072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753")))))) 278 "072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))
@@ -281,7 +292,11 @@ $out/bin/guile --version~%"
281 (origin 292 (origin
282 (method url-fetch) 293 (method url-fetch)
283 (uri (map (cut string-append <> "/" system 294 (uri (map (cut string-append <> "/" system
284 "/20131110/binutils-2.23.2.tar.xz") 295 (match system
296 ("armhf-linux"
297 "/20150101/binutils-2.25.tar.xz")
298 (_
299 "/20131110/binutils-2.23.2.tar.xz")))
285 %bootstrap-base-urls)) 300 %bootstrap-base-urls))
286 (sha256 301 (sha256
287 (match system 302 (match system
@@ -291,6 +306,9 @@ $out/bin/guile --version~%"
291 ("i686-linux" 306 ("i686-linux"
292 (base32 307 (base32
293 "14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9")) 308 "14jgwf9gscd7l2pnz610b1zia06dvcm2qyzvni31b8zpgmcai2v9"))
309 ("armhf-linux"
310 (base32
311 "1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q"))
294 ("mips64el-linux" 312 ("mips64el-linux"
295 (base32 313 (base32
296 "1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7")))))) 314 "1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))
@@ -335,7 +353,11 @@ $out/bin/guile --version~%"
335 (origin 353 (origin
336 (method url-fetch) 354 (method url-fetch)
337 (uri (map (cut string-append <> "/" (%current-system) 355 (uri (map (cut string-append <> "/" (%current-system)
338 "/20131110/glibc-2.18.tar.xz") 356 (match (%current-system)
357 ("armhf-linux"
358 "/20150101/glibc-2.20.tar.xz")
359 (_
360 "/20131110/glibc-2.18.tar.xz")))
339 %bootstrap-base-urls)) 361 %bootstrap-base-urls))
340 (sha256 362 (sha256
341 (match (%current-system) 363 (match (%current-system)
@@ -345,6 +367,9 @@ $out/bin/guile --version~%"
345 ("i686-linux" 367 ("i686-linux"
346 (base32 368 (base32
347 "1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w")) 369 "1hgrccw1zqdc7lvgivwa54d9l3zsim5pqm0dykxg0z522h6gr05w"))
370 ("armhf-linux"
371 (base32
372 "18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn"))
348 ("mips64el-linux" 373 ("mips64el-linux"
349 (base32 374 (base32
350 "0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg"))))))))) 375 "0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))
@@ -406,7 +431,11 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
406 (origin 431 (origin
407 (method url-fetch) 432 (method url-fetch)
408 (uri (map (cut string-append <> "/" (%current-system) 433 (uri (map (cut string-append <> "/" (%current-system)
409 "/20131110/gcc-4.8.2.tar.xz") 434 (match (%current-system)
435 ("armhf-linux"
436 "/20150101/gcc-4.8.4.tar.xz")
437 (_
438 "/20131110/gcc-4.8.2.tar.xz")))
410 %bootstrap-base-urls)) 439 %bootstrap-base-urls))
411 (sha256 440 (sha256
412 (match (%current-system) 441 (match (%current-system)
@@ -416,6 +445,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
416 ("i686-linux" 445 ("i686-linux"
417 (base32 446 (base32
418 "150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw")) 447 "150c1arrf2k8vfy6dpxh59vcgs4p1bgiz2av5m19dynpks7rjnyw"))
448 ("armhf-linux"
449 (base32
450 "0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v"))
419 ("mips64el-linux" 451 ("mips64el-linux"
420 (base32 452 (base32
421 "1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks"))))))))) 453 "1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))
diff --git a/gnu/packages/bootstrap/armhf-linux/bash b/gnu/packages/bootstrap/armhf-linux/bash
new file mode 100755
index 00000000000..212a22c8ce2
--- /dev/null
+++ b/gnu/packages/bootstrap/armhf-linux/bash
Binary files differ
diff --git a/gnu/packages/bootstrap/armhf-linux/mkdir b/gnu/packages/bootstrap/armhf-linux/mkdir
new file mode 100755
index 00000000000..c3e5246e92c
--- /dev/null
+++ b/gnu/packages/bootstrap/armhf-linux/mkdir
Binary files differ
diff --git a/gnu/packages/bootstrap/armhf-linux/tar b/gnu/packages/bootstrap/armhf-linux/tar
new file mode 100755
index 00000000000..5a6aac8a585
--- /dev/null
+++ b/gnu/packages/bootstrap/armhf-linux/tar
Binary files differ
diff --git a/gnu/packages/bootstrap/armhf-linux/xz b/gnu/packages/bootstrap/armhf-linux/xz
new file mode 100755
index 00000000000..a77aebc2680
--- /dev/null
+++ b/gnu/packages/bootstrap/armhf-linux/xz
Binary files differ
diff --git a/m4/guix.m4 b/m4/guix.m4
index 19e041a72c6..d4415598b04 100644
--- a/m4/guix.m4
+++ b/m4/guix.m4
@@ -1,5 +1,6 @@
1dnl GNU Guix --- Functional package management for GNU 1dnl GNU Guix --- Functional package management for GNU
2dnl Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> 2dnl Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
3dnl Copyright © 2014 Mark H Weaver <mhw@netris.org>
3dnl 4dnl
4dnl This file is part of GNU Guix. 5dnl This file is part of GNU Guix.
5dnl 6dnl
@@ -50,6 +51,16 @@ AC_DEFUN([GUIX_SYSTEM_TYPE], [
50 machine_name="i686";; 51 machine_name="i686";;
51 amd64) 52 amd64)
52 machine_name="x86_64";; 53 machine_name="x86_64";;
54 arm*)
55 # TODO: If not cross-compiling, add a sanity check to make
56 # sure this build machine has the needed features to
57 # support executables compiled using our armhf gcc,
58 # configured with:
59 # --with-arch=armv7-a
60 # --with-float=hard
61 # --with-mode=thumb
62 # --with-fpu=vfpv3-d16
63 machine_name="armhf";;
53 *) 64 *)
54 machine_name="$host_cpu";; 65 machine_name="$host_cpu";;
55 esac 66 esac
@@ -86,7 +97,7 @@ courageous and port the GNU System distribution to it (see
86 # Currently only Linux-based systems are supported, and only on some 97 # Currently only Linux-based systems are supported, and only on some
87 # platforms. 98 # platforms.
88 case "$guix_system" in 99 case "$guix_system" in
89 x86_64-linux|i686-linux|mips64el-linux) 100 x86_64-linux|i686-linux|armhf-linux|mips64el-linux)
90 ;; 101 ;;
91 *) 102 *)
92 if test "x$guix_courageous" = "xyes"; then 103 if test "x$guix_courageous" = "xyes"; then