ARM Technical Support Knowledge Articles

Linker error "Invalid relocation ... Type nn is reserved for ARM LINUX"

Applies to: RealView Development Suite (RVDS)

Answer

You may see an error such as the following when linking your application:

Fatal error: L6044U: Invalid relocation #0 in foo.o(.text).
Type 29 is reserved for ARM LINUX.

This indicates that the object file was generated by a compiler that is newer than the version of the linker you are using. The tools are not forwards-compatible; that is, you cannot link objects from a newer compiler using an older version of armlink.

The preferred solution is to use the version of armlink from the newest version of RVCT used to build any of your object files and libraries. Otherwise, recompile the code with the older compiler.

If the error relates to an object file from the RVCT libraries (e.g. rt_div.o) this may be because the appropriate environment variable RVCTxxLIB (e.g., RVCT22LIB, RVCT30LIBRVCT31LIB or RVCT40LIB) points to a different version of the libraries than the linker you are using.

Article last edited on: 2009-06-29 16:57:32

Rate this article

[Bad]
|
|
[Good]
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