guix-devel
[Top][All Lists]
Advanced

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

[PATCH 0/6] WIP aarch64 support


From: Efraim Flashner
Subject: [PATCH 0/6] WIP aarch64 support
Date: Thu, 9 Feb 2017 20:45:04 +0200

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




reply via email to

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