--- /dev/null
+.. _how_to_build_on_arm:\r
+\r
+===================================================================\r
+How To Build On ARM\r
+===================================================================\r
+\r
+.. sectionauthor:: Wei-Ren Chen (陳韋任) <chenwj@iis.sinica.edu.tw>\r
+\r
+Introduction\r
+============\r
+\r
+This document contains information about building/testing LLVM and\r
+Clang on ARM.\r
+\r
+Notes On Building LLVM/Clang on ARM\r
+=====================================\r
+Here are some notes on building/testing LLVM/Clang on ARM. Note that\r
+ARM encompasses a wide variety of CPUs; this advice is primarily based\r
+on the ARMv6 and ARMv7 architectures and may be inapplicable to older chips.\r
+\r
+#. If you are building LLVM/Clang on an ARM board with 1G of memory or less,\r
+ please use ``gold`` rather then GNU ``ld``.\r
+ Building LLVM/Clang with ``--enable-optimized``\r
+ is prefered since it consumes less memory. Otherwise, the building\r
+ process will very likely fail due to insufficient memory. In any\r
+ case it is probably a good idea to set up a swap partition.\r
+\r
+#. If you want to run ``make\r
+ check-all`` after building LLVM/Clang, to avoid false alarms (eg, ARCMT\r
+ failure) please use the following configuration:\r
+\r
+ .. code-block:: bash\r
+\r
+ $ ../$LLVM_SRC_DIR/configure --with-abi=aapcs\r
-.. _userguides:
-
-User Guides
-===========
-
-.. toctree::
- :hidden:
-
- CMake
- CommandGuide/index
- DeveloperPolicy
- GettingStartedVS
- FAQ
- Lexicon
- Packaging
- HowToAddABuilder
- yaml2obj
+.. _userguides:\r
+\r
+User Guides\r
+===========\r
+\r
+.. toctree::\r
+ :hidden:\r
+\r
+ CMake\r
+ HowToBuildOnARM\r
+ CommandGuide/index\r
+ DeveloperPolicy\r
+ GettingStartedVS\r
+ FAQ\r
+ Lexicon\r
+ Packaging\r
+ HowToAddABuilder\r
+ yaml2obj\r
HowToSubmitABug
-
-* `The LLVM Getting Started Guide <GettingStarted.html>`_
-
- Discusses how to get up and running quickly with the LLVM infrastructure.
- Everything from unpacking and compilation of the distribution to execution
- of some tools.
-
-* :ref:`building-with-cmake`
-
- An addendum to the main Getting Started guide for those using the `CMake
- build system <http://www.cmake.org>`_.
-
-* `Getting Started with the LLVM System using Microsoft Visual Studio
- <GettingStartedVS.html>`_
-
- An addendum to the main Getting Started guide for those using Visual Studio
- on Windows.
-
-* `LLVM Tutorial <tutorial/>`_
-
- A walk through the process of using LLVM for a custom language, and the
- facilities LLVM offers in tutorial form.
-
-* :ref:`developer_policy`
-
- The LLVM project's policy towards developers and their contributions.
-
-* :ref:`LLVM Command Guide <commands>`
-
- A reference manual for the LLVM command line utilities ("man" pages for LLVM
- tools).
-
-* `LLVM's Analysis and Transform Passes <Passes.html>`_
-
- A list of optimizations and analyses implemented in LLVM.
-
-* :ref:`faq`
-
- A list of common questions and problems and their solutions.
-
-* `Release notes for the current release <ReleaseNotes.html>`_
-
- This describes new features, known bugs, and other limitations.
-
+\r
+* `The LLVM Getting Started Guide <GettingStarted.html>`_\r
+ \r
+ Discusses how to get up and running quickly with the LLVM infrastructure.\r
+ Everything from unpacking and compilation of the distribution to execution\r
+ of some tools.\r
+ \r
+* :ref:`building-with-cmake`\r
+\r
+ An addendum to the main Getting Started guide for those using the `CMake\r
+ build system <http://www.cmake.org>`_.\r
+\r
+* :ref:`how_to_build_on_arm`\r
+\r
+ Notes on building and testing LLVM/Clang on ARM.\r
+\r
+* `Getting Started with the LLVM System using Microsoft Visual Studio\r
+ <GettingStartedVS.html>`_\r
+\r
+ An addendum to the main Getting Started guide for those using Visual Studio\r
+ on Windows.\r
+ \r
+* `LLVM Tutorial <tutorial/>`_\r
+\r
+ A walk through the process of using LLVM for a custom language, and the\r
+ facilities LLVM offers in tutorial form.\r
+\r
+* :ref:`developer_policy`\r
+\r
+ The LLVM project's policy towards developers and their contributions.\r
+\r
+* :ref:`LLVM Command Guide <commands>`\r
+\r
+ A reference manual for the LLVM command line utilities ("man" pages for LLVM\r
+ tools).\r
+ \r
+* `LLVM's Analysis and Transform Passes <Passes.html>`_\r
+\r
+ A list of optimizations and analyses implemented in LLVM.\r
+ \r
+* :ref:`faq`\r
+\r
+ A list of common questions and problems and their solutions.\r
+ \r
+* `Release notes for the current release <ReleaseNotes.html>`_\r
+\r
+ This describes new features, known bugs, and other limitations.\r
+\r
* :ref:`how-to-submit-a-bug-report`
-
- Instructions for properly submitting information about any bugs you run into
- in the LLVM system.
-
-* `LLVM Testing Infrastructure Guide <TestingGuide.html>`_
-
- A reference manual for using the LLVM testing infrastructure.
-
-* `How to build the C, C++, ObjC, and ObjC++ front end <http://clang.llvm.org/get_started.html>`_
-
- Instructions for building the clang front-end from source.
-
-* :ref:`packaging`
-
- Advice on packaging LLVM into a distribution.
-
-* :ref:`lexicon`
-
- Definition of acronyms, terms and concepts used in LLVM.
-
-* :ref:`how_to_add_a_builder`
-
- Instructions for adding new builder to LLVM buildbot master.
-
-* **IRC** -- You can probably find help on the unofficial LLVM IRC.
-
- We often are on irc.oftc.net in the #llvm channel. If you are using the
- mozilla browser, and have chatzilla installed, you can `join #llvm on
- irc.oftc.net <irc://irc.oftc.net/llvm>`_.
+ \r
+ Instructions for properly submitting information about any bugs you run into\r
+ in the LLVM system.\r
+ \r
+* `LLVM Testing Infrastructure Guide <TestingGuide.html>`_\r
+\r
+ A reference manual for using the LLVM testing infrastructure.\r
+ \r
+* `How to build the C, C++, ObjC, and ObjC++ front end <http://clang.llvm.org/get_started.html>`_\r
+\r
+ Instructions for building the clang front-end from source.\r
+ \r
+* :ref:`packaging`\r
+\r
+ Advice on packaging LLVM into a distribution.\r
+ \r
+* :ref:`lexicon`\r
+\r
+ Definition of acronyms, terms and concepts used in LLVM.\r
+\r
+* :ref:`how_to_add_a_builder`\r
+\r
+ Instructions for adding new builder to LLVM buildbot master.\r
+ \r
+* **IRC** -- You can probably find help on the unofficial LLVM IRC.\r
+\r
+ We often are on irc.oftc.net in the #llvm channel. If you are using the\r
+ mozilla browser, and have chatzilla installed, you can `join #llvm on\r
+ irc.oftc.net <irc://irc.oftc.net/llvm>`_.\r