ARM Technical Support Knowledge Articles

How and when should I use the 64-bit version of the ARM linker?

Applies to: RealView Development Suite (RVDS)


From RVDS 4.1 Service Pack 1, and RVCT 4.1 patch 2, the ARM Compilation tools include a version of the linker designed to take advantage of 64-bit host operating systems.

The RVDS installer will configure your machine to use the standard 32-bit linker, regardless of whether the host operating system is 32-bit or 64-bit.  It will create a directory for the 64-bit linker, but not add this to the PATH or other environment variables.  On 64-bit Windows hosts this directory will be called win-x86_64, on Linux hosts it will be linux-x86_64. This directory will also contain the executable files for the other tools (for example the compiler and assembler).  These are not 64-bit executables, but are included in this directory because some features of the tools require that the executables are all in the same directory.  These features include the compiler automatically invoking the linker, the use of embedded assembler, and link-time code generation.

For most users, there is no advantage in using the 64-bit version of the linker.  However in some cases, usually when building large C++ projects with full debug information, the 32-bit linker can exceed the limit of the virtual address space provided by the operating system (normally 2GB on Windows and 3GB on Linux).  In these cases the 32-bit linker may report Error L6000U: out of memory, using the 64-bit linker is one way to avoid this problem.  For further ways to avoid this issue, please see this Knowledge Base Article.

In order to use the 64-bit linker, you should modify the environment variable ARMCC41BIN to point to the 64-bit executables directory, and also place this directory on the path (either before or instead of the 32-bit executables directory).

Article last edited on: 2010-10-05 08:47:28

Rate this article

Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential