A.1 Revisions for armlink User Guide

The following technical changes have been made to the armlink User Guide.

Table A-1 Differences between issue L and issue M

Change Topics affected
Removed the topic Linker command-line options listed by group. -
Removed the not about XO memory 2.1 Overview of linking models
Clarified the description or Region 3.1.2 Input sections, output sections, regions, and program segments
Corrected the search order. 3.10 How the linker searches for the ARM standard libraries
Clarified the description of how user and system libraries are scanned. 3.12 How the linker resolves references
Fixed the example. 4.6 Example of using linker feedback
Moved the note to 6.4.2 Image symbols 6.3.5 Region name values when not scatter-loading
Corrected examples to use region-related symbols.
Fixed some symbol names. 7.1.4 Specifying stack and heap using the scatter file
Fixed the examples.
Clarified the description 7.4.4 Specify the maximum region size permitted for placing unassigned sections
Added an example about using the --info any option. 7.4.8 Behavior when .ANY sections overflow because of linker-generated content
Corrected the description. 7.14 How the linker resolves multiple matches when processing scatter files
Removed the topics Methods of specifying numeric constants for expression evaluation and Available operators for expression evaluation, because they duplicate information in the remaining topics. 8.6 Expression evaluation in scatter files
Fixed the version output format. 6.5.4 Symdefs file format
Removed the Restriction section. 12.11 --base_platform
Added information specific to armlink. 12.32 --cpu=name
Removed the SoftVFP+... options because they have no effect with armlink. 12.67 --fpu=name
Removed references to --licretry as the option no longer has an effect. --licretry
Clarified the Usage section.
Added a description for the new option --output_float_abi. 12.101 --output_float_abi=option
Added nocrosslr and reworded the Default section. 12.109 --pltgot_opts=mode
Added Default section. 12.140 --strict_ph, --no_strict_ph
Added description of --no_unaligned_access. 12.155 --unaligned_access, --no_unaligned_access

Table A-2 Differences between issue K and issue L

Change Topics affected

Added ARM Compiler product name to pages where it was missing.

Updated the description for image entry points. 3.1.5 Image entry points
Removed the description of --device. Chapter 12 Linker Command-line Options

Table A-3 Differences between issue J and issue K

Change Topics affected
Added generic notes about supported features in ARM Compiler and code generation between releases. 1.1 About the linker
Added details about the effect of RW compression when using +offset for a load region 8.3.6 Considerations when using a relative address +offset for a load region
Added --cpp_compat option. 12.29 --cpp_compat linker option
Removed the description of --device=list. Chapter 12 Linker Command-line Options
Removed the description of --keep_protected_symbols. Chapter 12 Linker Command-line Options
Added topic. Linker command-line options listed by group
Added note about ECC memory to the UNINIT execution region attribute description. 8.4.3 Execution region attributes
Reordered topics and grouped related topics together.

Table A-4 Differences between issue I and issue J

Change Topics affected
Added the chapters from the Linker Reference into the armlink User Guide. The Linker Reference is no longer being provided as a separate document.
Added information about creating images that contain execute-only (XO) sections. Various topics
Added the topic on avoiding the BLX (immediate) instruction issue on ARM 1176 processors. 3.14 Avoiding the BLX (immediate) instruction issue on an ARM1176JZ-S or ARM1176JZF-S processor
Added topic on linking with partially-linked objects and scatter-loading
Added option --inline_type to provide more control over function inlining, and updated related topics.
Added option --max_er_extension. 12.95 --max_er_extension=size
Added option --xo_base for placing execute-only (XO) code. 12.171 --xo_base=address
--cpu and --fpu options are fully documented
Added chapter on via file syntax.
Removed the topics --project, --reinitialize_workdir, and --workdir. Chapter 12 Linker Command-line Options

Table A-5 Differences between issue H and issue I

Change Topics affected
Removed the topic About link time code generation. Chapter 4 Linker Optimization Features
Removed the topic --ltcg.
Where appropriate, changed the terminology that implied that 16-bit Thumb and 32-bit Thumb are separate instruction sets. Various topics
Where appropriate, changed the term processor state to instruction set state. Various topics
Removed the See also Tasks reference from the topic Platforms supported by the BPABI. 10.2 Platforms supported by the BPABI
Clarifications to preprocessor invocation in scatter files. 7.11 Preprocessing of a scatter file
Removed the See also Tasks reference from --runpath. 12.121 --runpath=pathlist

Table A-6 Differences between Issue G and Issue H

Change Topics affected
Improved the scatter file example for stack and heap. 7.1.4 Specifying stack and heap using the scatter file
Corrections and enhancements to various topics related to placing __at sections.
Corrected the description of --info stack. 12.71 --info=topic[,topic,…]
Enhanced the syntax descriptions for load region, execution region, and input section description to specify that quoted names can be used.
Enhanced the description of --[no_]autoat. 12.10 --autoat, --no_autoat
Enhanced the description of --entry. 12.50 --entry=location

Table A-7 Differences between Issue F and Issue G

Change Topics affected
Corrected the scatter file example. 7.8.3 Example of placing ARM C library code
Clarified the description of the OVERLAY keyword. 3.6.5 Reuse of veneers when scatter-loading
Added details about the effect of overriding some but not all the symbols in a library member. 3.12 How the linker resolves references
Clarified the description of --[no]thumb2_library. 12.153 --thumb2_library, --no_thumb2_library

Table A-8 Differences between Issue E and Issue F

Change Topics affected

Where appropriate:

  • Prefixed Thumb with 16-bit.

  • Changed Thumb-2 to 32-bit Thumb.

Updated the list of environment variables to the new version numbering scheme, for example ARMCC5INC.
Added a note stating that --device option is deprecated.
  • --device=list

  • --device=name

Modified the version number reported by --version_number and --vsn.

Table A-9 Differences between Issue D and Issue E

Change Topics affected
Added links to --api, --no_api, --veneerinject, and --no_veneerinject option descriptions. Linker command-line options listed by group
Added links to the options that work around the ARM 1176 erratum. Linker command-line options listed by group
Enhanced the topic title. 7.2.5 Placement of code and data with __attribute__((section("name")))
Added example C/C++ code.
Added a description of the --api, --no_api option. 12.6 --api, --no_api
Added options that work around the BLX (immediate) instruction issue on ARM 1176 processors.
Enhanced the description of --largeregions, --no_largeregions. 12.79 --largeregions, --no_largeregions
Added AlignmentLexical and LexicalAlignment algorithms to --sort. 12.134 --sort=algorithm
Added a description of the --veneerinject, --no_veneerinject option. 12.162 --veneerinject, --no_veneerinject

Table A-10 Differences between Issue C and Issue D

Change Topics affected
Removed the items about LTCG and profiling from the list of linker features. 1.1 About the linker

Removed the note about profiling.

About link-time code generation

Added a note about the LTCG feature being deprecated.

Added a note about --ltcg being deprecated.

--ltcg

Removed the --profile option.
Added notes to the descriptions of the --project, --reinitialize_workdir, and --workdir options.
  • --project=filename, --no_project.

  • --reinitialize_workdir.

  • --workdir=directory.

Table A-11 Differences between Issue B and Issue C

Change Topics affected
New topic about the strict family of options. 3.13 The strict family of linker options
Added details on specifying the maximum size that is permitted for placing unassigned sections with the ANY_SIZE keyword for an execution region. 7.4 Placement of unassigned sections with the .ANY module selector
Added a topic about placing ARM library helper functions with scatter files. 7.8.5 Example of placing ARM library helper functions
Added details about the additional information that is displayed when the ANY_SIZE keyword is used for an execution region. 12.71 --info=topic[,topic,…]
Added details for the ANY_SIZE keyword that can be used on an execution region. 8.4.3 Execution region attributes
Added the [-]length option to the EMPTY keyword description. 8.4.3 Execution region attributes
Mentioned the use of the ANY_SIZE keyword in an execution region. 7.4.8 Behavior when .ANY sections overflow because of linker-generated content
Added an introduction to the example. 8.6.3 Execution address built-in functions for use in scatter files

Table A-12 Differences between Issue A and Issue B

Change Topics affected
Added a note about the 64-bit linker support. 1.1 About the linker
Added links to new command-line options in the Linker Reference. Linker command-line options listed by group
Added a note about program segment size limit.
Added a table to compare scatter file with equivalent command-line options. 3.1.4 Methods of specifying an image memory map with the linker
Added information on handling unassigned sections. 3.3 Section placement with the linker
The PROTECTED keyword also prevents overlapping of load regions. 3.6.5 Reuse of veneers when scatter-loading
Added an overview topic for mapping symbols. 6.1 About mapping symbols
Added Load$$ ZI output section symbols. 6.3.3 Load$$ execution region symbols
Added a topic to show how to import linker-defined symbols in ARM assembler. 6.3.8 Methods of importing linker-defined symbols in ARM® assembly language
Added examples to show how to place code and data at specific addresses. 7.2.4 Methods of placing functions and data at specific addresses
Added topics that describe the use of the .ANY module selector.
Added information about the affect various linker features have when using __attribute__((section("name"))). 7.2.5 Placement of code and data with __attribute__((section("name")))
Added information about +offset execution region and overlay execution regions. 7.6 Placement of sections with overlays
Removed the GNU ld script keywords ABSOLUTE, ADDR, ALIGNOF, DEFINED, EXTERN, LOADADDR, and SIZEOF from the list of unsupported keywords, because they are now supported. 9.4 Specific restrictions for using ld scripts with armlink
Modified the default ld scripts for executable and shared objects to align to 4 bytes after .bss region. 9.6 Default GNU ld scripts used by armlink
Added the default ld script that is used for --ldpartial. 9.6 Default GNU ld scripts used by armlink
Moved the Base Platform linking model topics to Features of the Base Platform linking model.
Added the --any_contingency command-line option. 12.3 --any_contingency
Added the --any_placement command-line option. 12.4 --any_placement=algorithm
Added the --any_sort_order command-line option. 12.5 --any_sort_order=order
Added the --[no_]crosser_veneershare command-line option. 12.33 --crosser_veneershare, --no_crosser_veneershare
Added the --emit_non_debug_relocs command-line option. 12.48 --emit_non_debug_relocs
Added the --[no_]load_addr_map_info command-line option. 12.90 --load_addr_map_info, --no_load_addr_map_info
Added the --[no_]strict_flags command-line option. 12.139 --strict_flags, --no_strict_flags
Added the --[no_]strict_symbols command-line option. 12.142 --strict_symbols, --no_strict_symbols
Added the --[no_]strict_visibility command-line option. 12.143 --strict_visibility, --no_strict_visibility
Added the --sysroot command-line option. 12.150 --sysroot=path
Added the --tiebreaker command-line option. 12.154 --tiebreaker=option
Added the --veneer_inject_type command-line option. 12.163 --veneer_inject_type=type
Added the --veneer_pool_size command-line option. 12.164 --veneer_pool_size=size
Added restriction details to --[no_]autoat. 12.10 --autoat, --no_autoat
Added any and veneerpools topics to the --info command-line option. 12.71 --info=topic[,topic,…]
Removed the explanations of the mapping symbols from --[no_]list_mapping_symbols. These are now in the About mapping symbols topic in Using the Linker. 12.89 --list_mapping_symbols, --no_list_mapping_symbols
Clarified the description of the --[no_]locals command-line option. 12.91 --locals, --no_locals
Clarified the description of the --privacy command-line option. 12.112 --privacy
Expanded the Usage section of the --scatter command-line option to list the new command-line options that are related. 12.125 --scatter=filename
Added the cmdline type to the --section_index_display command-line option. 12.127 --section_index_display=type
Added the Alignment, BreadthFirstCallTree, and LexicalState algorithms to the --sort command-line option. 12.134 --sort=algorithm
Expanded the description of the --[no_]strict_relocations command-line option. 12.141 --strict_relocations, --no_strict_relocations
Clarified the notes in the EXPORT and IMPORT steering file command descriptions.
Added topics to describe considerations when using +offset for load and executions regions.
Added a note about using +offset in a conditional operator. 8.6.2 Expression rules in scatter files
Added a topic to describe how ZI execution regions are handled when using +offset in a scatter file. 8.6.10 Scatter files containing relative base address load regions and a ZI execution region
The PROTECTED keyword also prevents overlapping of load regions. 8.3.3 Load region attributes
Expanded the description of the ZEROPAD execution region attribute because of the new Load$$ ZI output section symbols. 8.4.3 Execution region attributes
Expanded the introduction to Inheritance rules for load region address attributes. 8.3.4 Inheritance rules for load region address attributes
Expanded the introduction to Inheritance rules for execution region address attributes. 8.4.4 Inheritance rules for execution region address attributes
Clarified the description of the input section syntax. Detailed information about the .ANY module selector is now in Placing unassigned sections with the .ANY module selector in Using the Linker. 8.5.2 Syntax of an input section description
Added information about the .ANY module selector to the description of how the linker resolves multiple matches when processing scatter files. 7.15 How the linker resolves path names when processing scatter files
Added a topic to describe the behavior when .ANY sections overflow because of linker-generated content. 7.4.8 Behavior when .ANY sections overflow because of linker-generated content
Added details of using +offset in a conditional operator, with an example. 8.6.2 Expression rules in scatter files
The execution address built-in functions can now be used for the max_size of a region. 8.6.3 Execution address built-in functions for use in scatter files
Added a note to state that the execution address built-in functions cannot be used when using the .ANY module selector. 8.6.3 Execution address built-in functions for use in scatter files
Non-ConfidentialPDF file icon PDF versionARM DUI0474M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.