| |||
| Home > Migrating from ARM Compiler v4.1 to v4.1 SP1 > Linker changes between ARM Compiler v4.1 and v4.1 SP1 | |||
The following changes to armlink have been made:
The linker now supports
the GNU ld script keywords ABSOLUTE, ADDR, ALIGNOF, DEFINED, EXTERN, LOADADDR,
and SIZEOF.
The default ld scripts for executable and shared objects align
to 4 bytes after .bss region.
The --sysroot command-line option is supported.
The linker can merge strings where the address is
generated by MOVT and MOVW instructions.
A 64-bit version of armlink is provided that can utilize the greater amount of memory available to processes on 64-bit operating systems. It supports all the features that are supported by the 32-bit version of armlink in this release.
The 32-bit version of armlink is the default even on 64-bit operating systems. You must manually set up your installation environment if you want to use the 64-bit version.
Additional command-line options are available to
control the placement and the sort order of input sections when
using the .ANY module selector:
--any_contingency
--any_placement=algorithm
--any_sort_order=.order
The --info=any option is provided to show
details of the sorting and placement of .ANY sections.
In ARM Compiler v4.1 and earlier, the sorting algorithm used by the linker is based on the order that the linker creates sections in its section data structure.
In ARM Compiler v4.1 SP1 and later, an additional sorting algorithm is available based on the order that sections appear on the linker command-line.
You select the algorithm using the --tiebreaker command-line
option. For backwards compatibility, the section create order is
the default.
The --section_index_display=cmdline option
is provided to show the sections in the memory map output in the
same order they appear on the command-line.
The --[no_]crosser_veneershare command-line
option is available to enable and disable veneer sharing across
execution regions.
The linker now supports the following linker-defined symbols:
Load$$region_name$$ZI$$BaseLoad$$region_name$$ZI$$LimitLoad$$region_name$$ZI$$Length
The following command-line options have been added:
--emit_non_debug_relocs
--[no_]load_addr_map_info
--[no_]strict_flags
--[no_]strict_symbols
--[no_]strict_visibility
--veneer_inject_type
--veneer_pool_size.
The following changes have been made to existing command-line options:
the any and veneerpools topics
have been added to --info
the cmdline type has been added
to --section_index_display
the Alignment, BreadthFirstCallTree and LexicalState algorithms
have been added to --sort
The following changes have been made to scatter files:
+ can
be used in a conditional operatoroffset
execution address built-in functions can now be
used for the of
a region.max_size
Introducing the ARM Compiler toolchain:
Introducing the ARM Compiler toolchain:
Using the Linker:
Linker Reference:
Using the Linker:
Linker Reference: