ARM® Compiler toolchain Building Linux Applications with the ARM Compiler toolchain and GNU Libraries

Version 5.01

List of Topics

Conventions and feedback
About building Linux applications with the ARM Compiler toolchain and GNU libraries
About the ARM Compiler toolchain and GNU libraries
Expected use cases for developing Linux applications
Limitations when building Linux applications
Target processor requirements for building Linux applications
Build requirements for Linux applications
About the ARM Application Binary Interface
Interactions between mixed-ABI components
Using the ARM Compiler toolchain to build a Linux application or library
About using the ARM Compiler toolchain to build a Linux application or library
Configuration of the ARM Compiler toolchain for Linux applications
Configuring the ARM Compiler toolchain automatically
Configuring the ARM Compiler toolchain manually
Building for ARM Linux using normal ARM Compiler toolchain options
Using the ARM Compiler toolchain as a drop-in replacement for GCC and GNU Id
GCC emulation mode in armcc
Passing normal armcc options in GNU emulation mode
Differences in behavior and limitations between GCC and armcc emulation mode
Migrating a build from an earlier version of the ARM tools
Minimal migration path without using a configuration file
Migration using a configuration
Typical assembler command-line options
Additional headers from the ARM Compiler toolchain
Building a shared library with the ARM Compiler toolchain
Using shared libraries in your application
Frequently-asked questions and troubleshooting
Where can I find more information on building Linux applications?
How do I build an EABI-compliant Linux kernel?
Can I build the Linux kernel using the ARM Compiler toolchain?
Which kernel version must I use?
Can I use EABI-compliant and non EABI-compliant applications together?
GNU tools report EABI version differences between source object and target
GNU linker or armlink report conflicts between wchar_t types
Using hardware VFP instructions
Can I use the ARM libraries in a Linux application?
How can I see what libraries are being used?
How can I have greater control over which libraries are linked into my application?
Common problems with running an application
What to do about segmentation faults
Image sizes and stripping debug data
Undefined symbol errors for pthread symbols
Revisions for Building Linux Applications with the ARM Compiler toolchain and GNU Libraries

Proprietary Notice

Words and logos marked with ® or ™ are registered trademarks or trademarks of ARM in the EU and other countries, except as otherwise stated below in this proprietary notice. Other brands and names mentioned herein may be the trademarks of their respective owners.

Neither the whole nor any part of the information contained in, or the product described in, this document may be adapted or reproduced in any material form except with the prior written permission of the copyright holder.

The product described in this document is subject to continuous developments and improvements. All particulars of the product and its use contained in this document are given by ARM in good faith. However, all warranties implied or expressed, including but not limited to implied warranties of merchantability, or fitness for purpose, are excluded.

This document is intended only to assist the reader in the use of the product. ARM shall not be liable for any loss or damage arising from the use of any information in this document, or any error or omission in such information, or any incorrect use of the product.

Where the term ARM is used it means “ARM or any of its subsidiaries as appropriate”.

Confidentiality Status

This document is Non-Confidential. The right to use, copy and disclose this document may be subject to license restrictions in accordance with the terms of the agreement entered into by ARM and the party that ARM delivered this document to.

Product Status

The information in this document is final, that is for a developed product.

Revision History
Revision A28 May 2010ARM Compiler toolchain v4.1 Release
Revision B30 September 2010Update 1 for ARM Compiler toolchain v4.1
Revision C28 January 2011Update 2 for ARM Compiler toolchain v4.1 Patch 3
Revision D30 April 2011ARM Compiler toolchain v5.0 Release
Revision E29 July 2011Update 1 for ARM Compiler toolchain v5.0
Revision F30 September 2011ARM Compiler toolchain v5.01 Release
Revision G29 February 2012Document update 1 for ARM Compiler toolchain v5.01 Release
Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0483G