Here's my current aarch64 patch set. As attached I don't know if the patches will apply, I stripped bootstrap bash/mkdir/tar/xz out of the set so the email won't be too big.
grep without custom phase: The main purpose of this patch is so that it can be reapplied in the next patch. Without the patch, fgrep is: #! /gnu/store/eee...-bootstrap-binaries/bin/sh exec /gnu/store/eee...-grep-2.28/bin/grep -F ... and there's no simple way to fix that This patch should work against master. patch egrep/fgrep: I don't believe this actually patches egrep/fgrep, just the version in /tmp so that it passes the test. Regardless, it passes the test at unpack time, and it works later on. This patch breaks all the current architectures, since egrep/fgrep are binaries pre grep-2.25. daemon patch: The if statement should be easy to write, but I'm having a really hard time with it. Interestingly, when I used the armhf binary install tarball the daemon there worked. add bootstrap-binaries: This one (still) isn't final, the ones currently hosted at the time of this email were built without the first patch, so building failed. Even with the patch to the test, not all the tests passed at last check. gcc patch: I don't know if this is necessary, but we try not to use lib64. There was supposed to be another aarch64 gcc patch, to add aarch64 specific flags, but all of the flags caused the bootstrapping GCCs to fail, so I had to take them out. We'll have to figure something out, at the very least to make sure we're targeting ARMv8-a and not 8.1 or 8.2 as more devices come out. aarch64-linux-gnu target: This one I tossed in. Efraim Flashner (6): gnu: %static-inputs: Use 'grep' without custom phase. gnu: %bootstrap-coreutils&co: Patch egrep/fgrep to work regardless of $PATH. daemon: On aarch64, use increments of 16 on the stack. gnu: Add bootstrap-binaries for 'aarch64-linux'. gnu: gcc: Force Aarch64 to use /lib. hydra: Add "aarch64-linux-gnu" as a cross-compilation target. build-aux/download.scm | 20 ++++++++++++------- build-aux/hydra/gnu-system.scm | 1 + doc/guix.texi | 3 +++ gnu/local.mk | 15 +++++++++++++++ gnu/packages/bootstrap.scm | 30 ++++++++++++++++++++++++++++- gnu/packages/bootstrap/aarch64-linux/bash | Bin 0 -> 1162056 bytes gnu/packages/bootstrap/aarch64-linux/mkdir | Bin 0 -> 558216 bytes gnu/packages/bootstrap/aarch64-linux/tar | Bin 0 -> 1085128 bytes gnu/packages/bootstrap/aarch64-linux/xz | Bin 0 -> 738576 bytes gnu/packages/gcc.scm | 4 ++++ gnu/packages/make-bootstrap.scm | 12 +++++++++++- m4/guix.m4 | 3 ++- nix/libstore/build.cc | 7 ++++++- tests/packages.scm | 2 ++ 14 files changed, 86 insertions(+), 11 deletions(-) create mode 100755 gnu/packages/bootstrap/aarch64-linux/bash create mode 100755 gnu/packages/bootstrap/aarch64-linux/mkdir create mode 100755 gnu/packages/bootstrap/aarch64-linux/tar create mode 100755 gnu/packages/bootstrap/aarch64-linux/xz -- 2.11.1