guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/02: website: Add post on aarch64.


From: Ludovic Courtès
Subject: 01/02: website: Add post on aarch64.
Date: Mon, 24 Jul 2017 09:34:46 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix-artwork.

commit 74f5bc3cc168cf283f47e87eace4630edd44a360
Author: Efraim Flashner <address@hidden>
Date:   Mon Jul 24 15:31:54 2017 +0200

    website: Add post on aarch64.
    
    * website/posts/state-of-aarch64-on-guix.md: New file.
    
    Co-authored-by: Ludovic Courtès <address@hidden>
---
 website/posts/state-of-aarch64-on-guix.md | 88 +++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)

diff --git a/website/posts/state-of-aarch64-on-guix.md 
b/website/posts/state-of-aarch64-on-guix.md
new file mode 100644
index 0000000..d034ffc
--- /dev/null
+++ b/website/posts/state-of-aarch64-on-guix.md
@@ -0,0 +1,88 @@
+title: State of aarch64 on Guix
+date: 2017-07-24 15:30
+author: Efraim Flashner
+tags: architectures
+---
+Since the recent 0.13.0 release, Guix supports building software for
+aarch64 (64-bit ARM architecture).  Here’s the current status.
+
+Currently aarch64 support in Guix is pretty good, as long as you don't
+mind compiling for yourself :). Potential downfalls are too little RAM
+(I limited my boards to 2GB minimum) and using an SD card. For building
+packages I made sure that between RAM and swap I have at least 6 GB,
+which I don't recall giving me any issues.
+
+There were problems with actually building the Guix binary in time for
+the 0.13 release. It has since been fixed and I have an unoffical
+aarch64 binary install tarball at http://flashner.co.il/~efraim/. Also there is
+the signing key for my odroid running 
+[`guix 
publish`](https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-publish.html).
+The URL of my `guix publish` server is `http://git.flashner.co.il:8181`.
+
+General problem points/packages:
+
+  - Java is currently out, `sablevm-classpath` doesn't compile, so currently
+there is no path for Java.  A quick check showed about 140 packages
+depend on `sablevm-classpath`.
+  - Go: go-1.4.x doesn't support aarch64 (or mips). I have a patch against
+our GCC to build gccgo, and it produces a `go` binary, but it fails to
+actually build anything.  When I checked Debian I saw they cross-compile
+their arm64 `go` binary from amd64.  I believe there may be an issue with
+using gccgo and linking against glibc.
+  - OCaml 4.01.0: Doesn't build on aarch64, haven't investigated.
+  - Julia: aarch64 is officially supported, but it has only been tested on
+superpowerful boards, like the ThunderX. I haven't gotten it to build
+yet. The issue is related to `__fp16`.
+  - clisp: our current version doesn't build on aarch64, there isn't
+support yet. There are newer builds but no offical release yet, and I
+haven't tested those yet.
+  - gprolog: No upstream support and AFAICT no one is working on it.
+  - LDC: 1.x is supposed to support aarch64, 0.17.x, aka ldc-bootstrap,
+doesn't, it fails while compiling phobos, which has no aarch64 support
+in that version.
+  - Rust: Has upstream support, our package uses the i686 version as a
+bootstrap, so only i686 and x86_64 have support in guix ATM.
+  - Haskell: There is no upstream aarch64 binary to use for bootstrapping.
+I'm thinking of trying to use qemu-system-x86_64 as the shell and
+emulate x86_64 on my aarch64 board to cross-compile it to aarch64. `guix
+package -A ghc | wc -l` shows 293 packages.
+  - Qt 4: does not build, I've hardly put any time into it.
+  - Gnucash: The ancient WebKit version they use didn't build on aarch64,
+I haven't tried to fix it.
+  - Linux-libre: While many boards do require specific patches and
+       versions of the kernel, there have been great increases in recent
+       kernel versions for many ARM boards. It remains to be seen how much
+       support these boards have after the kernel has been deblobbed.
+
+It sounds like its all doom and gloom, but its not too bad. `guix
+package -A | wc -l` shows me 5,341 (5,208 without `sablevm-classpath`),
+compared with ~5,600 on x86_64. Most of the difference is Haskell. In
+addition, I personally believe that aarch64 actually has fewer 
+packages that fail to build than armhf.
+
+Currently the project’s build farm lacks aarch64 build machines.  If you
+would like to help,
+please [get in touch with us](https://gnu.org/software/guix/donate/)!
+
+
+#### About GNU Guix
+
+[GNU Guix](https://www.gnu.org/software/guix) is a transactional package
+manager for the GNU system.  The Guix System Distribution or GuixSD is
+an advanced distribution of the GNU system that relies on GNU Guix and
+[respects the user's
+freedom](https://www.gnu.org/distros/free-system-distribution-guidelines.html).
+
+In addition to standard package management features, Guix supports
+transactional upgrades and roll-backs, unprivileged package management,
+per-user profiles, and garbage collection.  Guix uses low-level
+mechanisms from the Nix package manager, except that packages are
+defined as native [Guile](https://www.gnu.org/software/guile) modules,
+using extensions to the [Scheme](http://schemers.org) language.  GuixSD
+offers a declarative approach to operating system configuration
+management, and is highly customizable and hackable.
+
+GuixSD can be used on an i686 or x86_64 machine.  It is also possible to
+use Guix on top of an already installed GNU/Linux system, including on
+mips64el, armv7, and aarch64.
+



reply via email to

[Prev in Thread] Current Thread [Next in Thread]