Difference between revisions of "ARMCompilers"
m (→ARM RVDS compiler: grammar) |
(→Recommendations: Updated link) |
||
Line 8: | Line 8: | ||
[http://www.codesourcery.com/ CodeSourcery] [http://www.codesourcery.com/gnu_toolchains/arm/download.html '''ARM GNU/Linux''' tool chain] is the version with the support for the latest ARM architecture. Mainline [http://gcc.gnu.org/ gcc] also has stable ARM support. Enhancements are made in the Codesourcery version first, and are then pushed back to mainline. | [http://www.codesourcery.com/ CodeSourcery] [http://www.codesourcery.com/gnu_toolchains/arm/download.html '''ARM GNU/Linux''' tool chain] is the version with the support for the latest ARM architecture. Mainline [http://gcc.gnu.org/ gcc] also has stable ARM support. Enhancements are made in the Codesourcery version first, and are then pushed back to mainline. | ||
− | [http://www.codesourcery.com/sgpp/lite/arm/portal/release858 2009q1-203 version] is recommended. If you look for native tool chain, you can also install a native tool-chain from Angstrom. | + | As of August 2009, [http://www.codesourcery.com/sgpp/lite/arm/portal/release858 2009q1-203 version] is recommended. If you look for native tool chain, you can also install a native tool-chain from Angstrom. More recent versions from 2011 (such as [http://www.codesourcery.com/sgpp/lite/arm/portal/release1803 2011.03-41 version]) should work just fine as well. |
Note: If you will use only [[BeagleBoardAndOpenEmbeddedGit|OpenEmbedded (OE)]] to build code for your Beagle, you don't need to download the CodeSourcery compiler. OE builds a cross-compiler from source as part of the bitbake process. | Note: If you will use only [[BeagleBoardAndOpenEmbeddedGit|OpenEmbedded (OE)]] to build code for your Beagle, you don't need to download the CodeSourcery compiler. OE builds a cross-compiler from source as part of the bitbake process. |
Revision as of 15:50, 3 August 2011
This page is about compilers (toolchains) for ARM (Linux) based boards, mainly focussed to ARM Cortex A8 on BeagleBoard.
GCC compiler
Recommendations
CodeSourcery ARM GNU/Linux tool chain is the version with the support for the latest ARM architecture. Mainline gcc also has stable ARM support. Enhancements are made in the Codesourcery version first, and are then pushed back to mainline.
As of August 2009, 2009q1-203 version is recommended. If you look for native tool chain, you can also install a native tool-chain from Angstrom. More recent versions from 2011 (such as 2011.03-41 version) should work just fine as well.
Note: If you will use only OpenEmbedded (OE) to build code for your Beagle, you don't need to download the CodeSourcery compiler. OE builds a cross-compiler from source as part of the bitbake process.
The Free Electrons Beagle training material uses Crosstool-ng.
Limitations
Note: Some users report problems using Linux installer version. If installer doesn't work for you, download tar version (section Advanced Packages), copy extracted arm-2007q3 directory to /opt/codesourcery/arm-none-linux-gnueabi/ and add /opt/codesourcery/arm-none-linux-gnueabi/arm-2007q3/bin to your path.
- Note: CodeSourcery 2007q3 has the following issues:
- Broken -Os option. There is a fix (needs recompilation)
- Started to miscompile Linux kernel with >= ~2.6.29 (analysis by Richard Woodruff) (disabling ARM_UNWIND solves it).
- Note: CodeSourcery 2008q1 has the following issues:
- Vectorization + NEON is broken
- building static binaries with cortex-a8 flag (or any ARMv7a core) is broken
- some armv6 compilations end in ICE.
- Note: CodeSourcery 2008q3 (now replaced by 2008q3-72) has the following issues:
- Broken NEON support using -fmpu=neon -mfloat-abi=softfp -mcpu=cortex-a8 -O3
- It was told to miscompile U-Boot, but this seems to be fixed with recent U-Boot and 2008q3-72 below.
- Note: CodeSourcery 2008q3-72 has the following issues:
- Note: CodeSourcery 2009q1 has the following issues:
- Floating-point code can be slower than with 2007q3, see FFmpeg benchmarks.
GDB debugger
gdb supports native debug or 'gdbserver' remote debug. For debug support for VFPv3 and NEON, you must use the 'gdbserver' approach - see How to enable VFPv3/NEON debug.
ARM RVDS compiler
ARM has the Realview Developer Suite, with arguably better code generation than gcc. A DVD evaluation version is available (or download via internet by registering followed by download).
ARM RVDS tools can be used to generate Linux applications and shared-libraries, by following the Apps Note 212 Building Linux applications using RVCT v4.0 and the GNU Tools and Libraries
ARM RVDS can also work in Scratchbox, by following Apps Note 221 RealView Development Suite 4.0 ARM Compiler for Scratchbox