Julia: ARM binaries missing for Julia 1.1.0

Created on 28 Jan 2019  路  36Comments  路  Source: JuliaLang/julia

I notice that the downloads page does not have binaries for ARM. Could you add a brief statement there describing the status, as in e g.:

  • please wait a few days for the binaries to show up
  • don't have the infrastructure for binaries, please use 1.0 instead
  • ...
arm build

Most helpful comment

I have new ARM buildbots, but I haven't switched the new buildog configuration over to build yet, so they're languishing in a testing zone. Alex, when you next have some free time, let's plan to upgrade the buildbot infrastructure to my new testing setup, and make sure that we can build these ARM binaries. I think things should mostly work. :)

All 36 comments

Maybe we should discuss the tiers on the downloads page (or point to the relevant section in the README.md), so that it sets these expectations.

Or just have a note "We are waiting for the ARM buildbots to do whatever it is they do" where the link would otherwise be.

Just wanted to check if these binaries have been built yet.

IIRC, there is a build regression on ARM for 1.1.

Roger, thanks for the update.

Co-assigning Elliot as he has a better idea of the state of the build on any given platform.

I have new ARM buildbots, but I haven't switched the new buildog configuration over to build yet, so they're languishing in a testing zone. Alex, when you next have some free time, let's plan to upgrade the buildbot infrastructure to my new testing setup, and make sure that we can build these ARM binaries. I think things should mostly work. :)

For anyone curious, the current nightly seems to be building without any issues. I just downloaded a snapshot and ran make on my Android tablet with an Arch Arm chroot (Snapdragon 820 / 3GB RAM).

julia> versioninfo(verbose=true)
Julia Version 1.2.0-DEV.0
Platform Info:
  OS: Linux (aarch64-unknown-linux-gnu)
  uname: Linux 3.18.71-gbf3ecfa #1 SMP PREEMPT Thu Jul 19 15:46:30 +03 2018 aarch64 unknown
  CPU: unknown:
              speed         user         nice          sys         idle          irq
       #1   307 MHz    5236143 s      38420 s    5145766 s   94852781 s    2587504 s
       #2   307 MHz    5943345 s      46989 s    4961981 s   97681823 s     429277 s
       #3  2150 MHz    5576008 s     125489 s    4161811 s   99490676 s     264564 s
       #4  2150 MHz    4953546 s     119577 s    3781152 s  100657166 s     232575 s

  Memory: 3.3130035400390625 GB (529.21484375 MB free)
  Uptime: 1.11535e6 sec
  Load Avg:  6.208984375  6.18701171875  6.13330078125
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, kryo)
Environment:
  MOZ_PLUGIN_PATH = /usr/lib/mozilla/plugins
  HOME = /home/me
  TERM = screen-256color
  PATH = /home/me/.cargo/bin:/home/me/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl

Do we have arm binaries? If so, we should link on downloads.

Hi, For those who see this issue, I wrote a belief instruction how to build Julia binary for Raspberry Pi series (including even Zero) by cross-compiling via Docker.

Hope it helps. AFIK many packages e.g. PyCall, UnicodePlots, PackageCompiler, QuadGK, Plots works fine.

I'm so sorry to hear that arm32bit Move to Tier3.

Had this been reliably working on 1.1? I wonder why it buildbots are unable to produce binaries then.

Should link those instructions in the arm section of the build docs.

The buildbots do create binaries, but the binaries do not pass the full test suite.

Ok, but they never did, I thought. We should upload them for download and move arm to tier 2.

Cc @ararslan

The buildbots do create binaries

Oh, I didn't realize the buildbots were even getting through the build these days. I'm cool with moving ARM back to tier 2, but I think we should perhaps reformat the download table on the website to better reflect support tiers.

Yes, we should also note the support tiers onthe downloads page. My suggestion - let's get the binaries up right away, and revert the PR for the Tier downgrade.

Separately, let's work on better communication of the Tiers.

Would be good to know if julia 1.2 is likely to build on arm.

I updated my gist above to add google drive link to try Julia (v1.1.0) binaries for Raspberry Pi Series. These are generated using cross-compiling. (If there is a problem, Please let me know and I will delete the link).

Thanks @terasakisatoshi. First, I would like to check if our buildbots have these binaries, because if we do have arm binaries, then there is a streamlined process to get them uploaded to the julialang downloads page.

@terasakisatoshi can you test out http://julialangnightlies.s3.amazonaws.com/pretesting/linux/armv7l/1.1/julia-80516ca202-linuxarmv7l.tar.gz please? It doesn't pass the full test suite, but for your purposes it may be sufficient.

Hi, @staticfloat Thank you very much.

I tested your Julia 1.1.0 on my Raspberry Pi 3 model B+ with CUI environment i.e. Raspbian Lite.
There is no issue for my purpose (e.g. add some packages and use them). That is nice to me.

You can check out my gist what I did.
I also run buffon.jl. It works fine.

Here's a Julia v1.2: https://julialangnightlies.s3.amazonaws.com/pretesting/linux/armv7l/1.2/julia-8a84ba5018-linuxarmv7l.tar.gz

If that works for you on the same workload, I say let's add these to the official downloads.

My experience even when tests were not 100% passing was that you could still work with a lot of packages.

I've been using a Linux AArch64 1.2 nightly on a daily basis for over a month without any problems. I just built a 1.3 nightly yesterday, and it's passed my own package's tests as well.

@staticfloat

Your Julia 1.2.0 works O.K. (updated what I did) except buffon.jl that checks parallel computation got worse performance (output result is O.K.).
However, it is worth adding download link for Arm 32-bit.

Just curious, if you are you able to produce a plot and use jupyter? I should fire up my Pi 3 as well this weekend.

@ViralBShah

if you are you able to produce a plot and use jupyter?

Technically, Yes. Plots.jl package depnds on GR.jl. Note that GR.jl does not prepare shared library for 32 bit system, so you should install GR runtime (, or you will fail pkg> build Plots) by reading/following the document here.

You can refer my Dockerfile to reproduce environment that runs Plots.jl on your Raspberry Pi3. I've already created Docker image based on this Dockerfile see my docker hub.

I believe ,it is not tested, replacing julia 1.0.3 which lives in Docker container environment with julia-1.1.0 or julia-1.2.0-pre0 will work.

Enjoy your weekend with pi :D

Perhaps we can file an issue in GR.jl. @jheinen will certainly help if possible.

For now, it seems we should put the 1.1 arm binaries on the downloads page from the buildbots and we can close this issue.

I could probably provide GR binaries if I had the 1.1 arm binaries for Julia. I'm currently on 0.6.2 on my pi ... Will try the above 1.2 binaries.

@jheinen That would be cool!

@jheinen

I confirmed Plots.jl worked for the above 1.2.0-pre0 binary on my Raspberry Pi3.

Here is what I did:

  1. install dependency and build GR from source on Raspberry Pi3
  2. julia -e 'using Pkg; Pkg.add("Plots")'
  3. julia> using Plots; plot([1,2,3]); savefig("sample.png")

Thanks everyone for the quick work here.

May I request some of the folks who chimed in here to test the status of the various open arm issues. Many are old, and may be fixed.

Was this page helpful?
0 / 5 - 0 ratings