unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* The current state of Aarch64 on Guix
@ 2017-06-29 18:37 Efraim Flashner
  2017-06-30 19:26 ` Ricardo Wurmus
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Efraim Flashner @ 2017-06-29 18:37 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 2685 bytes --]

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 flashner.co.il/~efraim/. Also there is
the signing key for my odroid running guix-publish. The url for the
guix-publish server is 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 crosscompile
their arm64 go binary from amd64.
* 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.
* 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.*, 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.
* 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.
* kernel: I don't know if there's a generic armv8 kernel config

It sounds like its all doom and gloom, but its not too bad. `guix
package -A | wc -l' shows me 5341 (5208 without sablevm-classpath),
compared with ~5600 on x86_64.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: The current state of Aarch64 on Guix
  2017-06-29 18:37 The current state of Aarch64 on Guix Efraim Flashner
@ 2017-06-30 19:26 ` Ricardo Wurmus
  2017-07-01 15:44 ` Ludovic Courtès
  2017-07-02 14:27 ` Leo Famulari
  2 siblings, 0 replies; 6+ messages in thread
From: Ricardo Wurmus @ 2017-06-30 19:26 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: guix-devel


Efraim Flashner <efraim@flashner.co.il> writes:

> Currently Aarch64 support in guix is pretty good, as long as you don't
> mind compiling for yourself :).
[…]
> It sounds like its all doom and gloom, but its not too bad. `guix
> package -A | wc -l' shows me 5341 (5208 without sablevm-classpath),
> compared with ~5600 on x86_64.

Thank you for your excellent work on making Guix ready for aarch64!
Impressive!

-- 
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: The current state of Aarch64 on Guix
  2017-06-29 18:37 The current state of Aarch64 on Guix Efraim Flashner
  2017-06-30 19:26 ` Ricardo Wurmus
@ 2017-07-01 15:44 ` Ludovic Courtès
  2017-07-21 15:05   ` Efraim Flashner
  2017-07-02 14:27 ` Leo Famulari
  2 siblings, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2017-07-01 15:44 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: guix-devel

Hi Efraim,

Efraim Flashner <efraim@flashner.co.il> skribis:

> It sounds like its all doom and gloom, but its not too bad. `guix
> package -A | wc -l' shows me 5341 (5208 without sablevm-classpath),
> compared with ~5600 on x86_64.

Excellent work!  It looks like you’ve done your best without becoming
yourself “upstream” for several packages.  Very nice.

I hope we can soon get an Aarch64 box into our build farm.

BTW, would you like to turn your message into a post for the web site
(see posts/*.md in guix-artwork.git)?  It would seem useful to me to
publicize your work more widely.

Thank you!

Ludo’.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: The current state of Aarch64 on Guix
  2017-06-29 18:37 The current state of Aarch64 on Guix Efraim Flashner
  2017-06-30 19:26 ` Ricardo Wurmus
  2017-07-01 15:44 ` Ludovic Courtès
@ 2017-07-02 14:27 ` Leo Famulari
  2 siblings, 0 replies; 6+ messages in thread
From: Leo Famulari @ 2017-07-02 14:27 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1263 bytes --]

On Thu, Jun 29, 2017 at 09:37:58PM +0300, Efraim Flashner wrote:
> 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 flashner.co.il/~efraim/. Also there is
> the signing key for my odroid running guix-publish. The url for the
> guix-publish server is git.flashner.co.il:8181.

Awesome! I'm looking forward to getting some aarch64 hardware for Guix.

> General problem points/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,

Qt 4 and that old version of webkit are unmaintained, full of bugs, and
we will probably have to remove them soon, regardless of whether or not
something depends on them. So I don't think you should worry about
trying to build them for aarch64.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: The current state of Aarch64 on Guix
  2017-07-01 15:44 ` Ludovic Courtès
@ 2017-07-21 15:05   ` Efraim Flashner
  2017-07-24 13:39     ` Ludovic Courtès
  0 siblings, 1 reply; 6+ messages in thread
From: Efraim Flashner @ 2017-07-21 15:05 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 1059 bytes --]

On Sat, Jul 01, 2017 at 05:44:12PM +0200, Ludovic Courtès wrote:
> Hi Efraim,
> 
> Efraim Flashner <efraim@flashner.co.il> skribis:
> 
> > It sounds like its all doom and gloom, but its not too bad. `guix
> > package -A | wc -l' shows me 5341 (5208 without sablevm-classpath),
> > compared with ~5600 on x86_64.
> 
> Excellent work!  It looks like you’ve done your best without becoming
> yourself “upstream” for several packages.  Very nice.
> 
> I hope we can soon get an Aarch64 box into our build farm.
> 
> BTW, would you like to turn your message into a post for the web site
> (see posts/*.md in guix-artwork.git)?  It would seem useful to me to
> publicize your work more widely.
> 
> Thank you!
> 
> Ludo’.

I couldn't get haunt to find commonmark, so I'm just attaching what I've
written and formatted.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #1.2: state-of-aarch64-on-guix.md --]
[-- Type: text/plain, Size: 4314 bytes --]

title: The Current State of Aarch64 on Guix
date: 2017-07-21 16:30
author: Efraim Flashner
slug: state-of-aarch64-on-guix
tags: architectures
---
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 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#Invoking-guix-publish).
The url for the guix-publish server is 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 crosscompile
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.
  - kernel: 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 5341 (5208 without sablevm-classpath),
compared with ~5600 on x86_64. Most of the difference is haskell. In
addition, I personally believe that aarch64 actually has fewer FTBFS
packages than armhf.

#### 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.


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: The current state of Aarch64 on Guix
  2017-07-21 15:05   ` Efraim Flashner
@ 2017-07-24 13:39     ` Ludovic Courtès
  0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2017-07-24 13:39 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: guix-devel

Hello Efraim,

Efraim Flashner <efraim@flashner.co.il> skribis:

> I couldn't get haunt to find commonmark, so I'm just attaching what I've
> written and formatted.

Not sure why that happened.  At worst, you can always run “guix build -f
guix.scm” from the website/ directory of a guix-artwork.git checkout.

Anyway, I’ve put the post on-line with a couple of sentences of
additional context at the top and bottom, thank you!

  https://gnu.org/software/guix/news/state-of-aarch64-on-guix.html

Ludo’.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-07-24 13:39 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-29 18:37 The current state of Aarch64 on Guix Efraim Flashner
2017-06-30 19:26 ` Ricardo Wurmus
2017-07-01 15:44 ` Ludovic Courtès
2017-07-21 15:05   ` Efraim Flashner
2017-07-24 13:39     ` Ludovic Courtès
2017-07-02 14:27 ` Leo Famulari

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).