Skip to content

Commit

Permalink
Update the ARM README.
Browse files Browse the repository at this point in the history
  • Loading branch information
Viral B. Shah committed Nov 25, 2015
1 parent 3ab2489 commit cc5cf46
Showing 1 changed file with 33 additions and 13 deletions.
46 changes: 33 additions & 13 deletions README.arm.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@ This is the list of known issues on ARM:
We recommend using at least Ubuntu 14.04 and gcc 4.8, which is part of the
standard `build-essentials`.

One can install other system libraries instead of building them,
should the build be troublesome, by adding the following lines in `Make.user`:
In case the build is failing on one of the dependent libraries, one
can install various system libraries instead of building them, by
adding the following lines in `Make.user`:

````
override USE_SYSTEM_BLAS=1
Expand All @@ -36,9 +37,9 @@ override USE_SYSTEM_ARPACK=1
The following command will install all the necessary libraries on Ubuntu.

````
sudo apt-get install libblas3gf liblapack3gf libfftw3-dev libgmp3-dev \
sudo apt-get install libblas3gf liblapack3gf libarpack2 libfftw3-dev libgmp3-dev \
libmpfr-dev libblas-dev liblapack-dev cmake gcc-4.8 \
g++-4.8 gfortran libgfortran3 m4 libedit-dev libarpack2
g++-4.8 gfortran libgfortran3 m4 libedit-dev
````

Note that OpenBLAS only supports ARMv7. For older ARM variants, using the reference BLAS
Expand All @@ -49,24 +50,38 @@ may be the simplest thing to do.
If you run into issues building LLVM, see these notes:
[http:https://llvm.org/docs/HowToBuildOnARM.html](http:https://llvm.org/docs/HowToBuildOnARM.html)

# Raspberry Pi
## Raspberry Pi

The Raspberry Pi ARM CPU type is not detected by LLVM.
Before starting the build, it is recommended to do `export JULIA_CPU_TARGET=arm1176jzf-s`
at the shell to tune the generated code for your CPU architecture.
Note: Raspberry Pi is ARMv6, which is not well supported at the moment. However it is
possible to get a working Julia build.

# Raspberry Pi 2
The Raspberry Pi ARM CPU type is not detected by LLVM. Before
starting the build, it is recommended to explicitly set the CPU target
at the shell with the following, which should produce a working build.

In the case of Raspberry Pi 2, in case the default build fails, download LLVM binaries from the LLVM website.
````
export JULIA_CPU_TARGET=arm1176jzf-s
````

It is also preferable to use various system provided dependencies on
ARMv6 as described in the Build Dependencies section above.

## Raspberry Pi 2

1. Download the [LLVM 3.6.1 binaries for ARMv7a] (http:https://llvm.org/releases/3.6.1/clang+llvm-3.6.1-armv7a-linux-gnueabihf.tar.xz) and extract them in a local directory.
For Raspberry Pi 2, which is ARMv7, the default build should work. In
the case of Raspberry Pi 2, in case the default build fails, download
LLVM binaries from the LLVM website.

1. Download the [LLVM 3.7.0 binaries for ARMv7a] (http:https://llvm.org/releases/3.7.0/clang+llvm-3.7.0-armv7a-linux-gnueabihf.tar.xz) and extract them in a local directory.
2. For each file in the extracted `bin`, `include`, and `lib` subdirectories, create symlinks from the corresponding directory under `/usr/local`.
3. Add the following to `Make.user`:
3. Add the following to `Make.user` and then build:
```
override USE_SYSTEM_LLVM=1
```

# Chromebook
Please do let us know if you had to download a pre-built LLVM in [#10235](https://github.com/JuliaLang/julia/issues/10235).

## Chromebook

On Chromebooks, you have to first install Crouton. If you do not have
an Ubuntu chroot running on your Chromebook using Crouton, you can do
Expand All @@ -78,3 +93,8 @@ so by following these tutorials.
These tutorials will end up installing Ubuntu 12.04, and you have to
upgrade to Ubuntu 14.04, or install Ubuntu 14.04 from scratch by
finding appropriate `crouton` help.

## Scaleway cloud hosted ARM servers

On the current [Scaleway](http:https://scaleway.com) ARM servers, the Julia
build works out of the box.

0 comments on commit cc5cf46

Please sign in to comment.