Abstract
This chapter contains information about using ARM Sourcery G++ Lite on your target system. This chapter also contains information about changes in this release of ARM Sourcery G++ Lite. You should read this chapter to learn how to best use ARM Sourcery G++ Lite on your target system.
Table of Contents
The GNU C library supplied with ARM Sourcery G++ Lite uses the new EABI based kernel syscall interface. This means applications compiled with ARM Sourcery G++ Lite require at least a 2.6.16 kernel with EABI syscalls enabled.
By default ARM Sourcery G++ Lite will generate Linux binaries that require
an ARMv5 or later CPU. To build applications or libraries capable
of running on ARMv4t CPUs use the -march=armv4t
commandline option.
Runtime libraries suitable for ARMv4t systems are supplied in the
armv4t
subdirectory.
Code compiled for ARMv4t is ABI compatible with ARMv5 code. Code and binaries compiled for different architectures may be mixed freely.
There are several other ways to tell the compiler to generate
ARMv4t code. However -march=armv4t
must be used
when linking to ensure the correct libraries and startup code is
selected.
ARM Sourcery G++ Lite contains preliminary support for automatic generation of NEON SIMD vector code. Autovectorization is a compiler optimization where loops involving normal integer or floating point code are transformed into loops that use NEON SIMD instruction to process several data elements at once.
To enable generation of NEON vector code specify
-ftree-vectorize -mfpu=neon -mfloat-abi=softfp
.
-mfpu=neon
also enables generations of VFPv3 scalar
floating point code.
ARM Sourcery G++ Lite also contains preliminary support for manual generation
of NEON SIMD code using C intrinsic functions. These intrinsics,
the same as those supported by the ARM RVCT compiler, are defined
in the arm_neon.h
header
and are documented in the 'ARM NEON Intrinsics' section of the GCC
manual. The options -mfpu=neon
-mfloat-abi=softfp
must be specified to use these
intrinsics; -ftree-vectorize
is not required.
NEON support is still under active development. It has not been subject to extensive testing, and may not yet take full advantage of all the features provided by the NEON architecture.