From 719089656dedfefa4be1925c00a3f2c323f8d2bd Mon Sep 17 00:00:00 2001 From: Seth Bromberger Date: Fri, 24 Apr 2015 06:38:27 -0700 Subject: [PATCH] Provide RPi2 build instructions per request Per https://github.com/JuliaLang/julia/issues/10235#issuecomment-95810770, provide build instructions for Raspberry Pi 2. Update README.arm.md --- README.arm.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/README.arm.md b/README.arm.md index 015a4f95eb4d5..c17645f4db225 100644 --- a/README.arm.md +++ b/README.arm.md @@ -42,3 +42,38 @@ Crouton, you can do so by following these tutorials. # Building LLVM on ARM - If you run in to issues building LLVM, see these notes: [http://llvm.org/docs/HowToBuildOnARM.html](http://llvm.org/docs/HowToBuildOnARM.html) + +# For the Raspberry Pi version 2 (RPi2) + +Success in building Julia has been reported using the following procedure: + +1. Follow the steps above to install the `build-essentals` and other packages required for ARM +2. Install FFTW and libedit using `sudo apt-get install libfftw3-3 libedit-dev` +3. Download the [LLVM 3.6.0 binaries for ARMv7a] (http://llvm.org/releases/3.6.0/clang+llvm-3.6.0-armv7a-linux-gnueabihf.tar.xz) and extract them in a local directory. +4. For each file in the extracted `bin`, `include`, and `lib` subdirectories, create symlinks from the corresponding directory under `/usr/local`. +5. Using the `Make.arm` configuration below, build Julia using `make -j 2`. (Limiting `make` to 2 simultaneous jobs will reduce the possibility of running out of memory/swap space during the build process.) + +Note that the resulting Julia binary may fail various tests but will run code and provide the REPL. + +`Make.arm` for RPi2: + +``` +override LLVM_ASSERTIONS=1 +LLVM_FLAGS+="--with-cpu=cortex-a9 --with-float=hard --with-abi=aapcs-vfp --with-fpu=neon --enable-targets=arm --enable-optimized --enable-assertions" + +override OPENBLAS_DYNAMIC_ARCH=0 +override OPENBLAS_TARGET_ARCH=ARMV7 +override USE_BLAS64=0 + +override USE_SYSTEM_LIBM=1 +override USE_SYSTEM_FFTW=1 +override USE_SYSTEM_GMP=1 +override USE_SYSTEM_MPFR=1 +override USE_SYSTEM_LAPACK=1 + +JCFLAGS += -fsigned-char + +override USE_SYSTEM_LLVM=1 +override USE_SYSTEM_BLAS=1 +``` +