===================================================================
How To Build On ARM
===================================================================

Introduction
============

This document contains information about building/testing LLVM and
Clang on ARM.

Notes On Building LLVM/Clang on ARM
=====================================
Here are some notes on building/testing LLVM/Clang on ARM. Note that
ARM encompasses a wide variety of CPUs; this advice is primarily based
on the ARMv6 and ARMv7 architectures and may be inapplicable to older chips.

#. If you are building LLVM/Clang on an ARM board with 1G of memory or less,
   please use ``gold`` rather then GNU ``ld``.
   Building LLVM/Clang with ``--enable-optimized``
   is prefered since it consumes less memory. Otherwise, the building
   process will very likely fail due to insufficient memory. In any
   case it is probably a good idea to set up a swap partition.

#. If you want to run ``make
   check-all`` after building LLVM/Clang, to avoid false alarms (eg, ARCMT
   failure) please use at least the following configuration:

   .. code-block:: bash

     $ ../$LLVM_SRC_DIR/configure --with-abi=aapcs-vfp

#. The most popular linaro/ubuntu OS's for ARM boards, eg, the
   Pandaboard, have become hard-float platforms. The following set
   of configuration options appears to be a good choice for this
   platform:

   .. code-block:: bash

     ./configure --build=armv7l-unknown-linux-gnueabihf \
     --host=armv7l-unknown-linux-gnueabihf \
     --target=armv7l-unknown-linux-gnueabihf --with-cpu=cortex-a9 \
     --with-float=hard --with-abi=aapcs-vfp --with-fpu=neon \
     --enable-targets=arm --enable-optimized --enable-assertions
