9.4 Specific restrictions for using ld scripts with armlink

There are specific restrictions that apply when using ld scripts with armlink.

The following restrictions apply:

PHDRS
This command is not implemented. When using an ld script the linker always generates program headers automatically.
MEMORY
This command is not implemented. The linker assumes that it has a uniform memory space from 0 to 0XFFFFFFFF.
OVERLAY
This command is not implemented. Overlays are not permitted.
Other commands and built-in functions

The following commands and built-in functions are not supported:

  • ASSERT.
  • FORCE_COMMON_ALLOCATION.
  • INHIBIT_COMMON_ALLOCATION.
  • INSERT AFTER.
  • INSERT BEFORE.
  • LENGTH.
  • NOCROSSREFS.
  • ORIGIN.
  • REGION_ALIAS.
  • TARGET.

Note:

This list is derived from the CodeSourcery 2010q1 release. Anything added after that release is not supported.
armlink linker-defined symbols

Each output section is defined internally as an execution region. The existing armlink execution region symbols can be used, for example:

    .text : { *(.text) }

The output section .text is represented by an execution region called .text. You can use the symbol Image$$.text$$Base as if the execution region had been defined by a scatter file.

Other restrictions

Other restrictions are:

  • __AT sections are not supported when using ld scripts.
  • RW compression is not supported when using ld scripts.
Non-ConfidentialPDF file icon PDF versionARM DUI0474M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.