You copied the Doc URL to your clipboard.

evisions for armlink User Guide

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

Table A-1 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. 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. --max_er_extension=size
Added option --xo_base for placing execute-only (XO) code. --xo_base=address
--cpu and --fpu options are fully documented
Added chapter on via file syntax.
Removed the topics --project, --reinitialize_workdir, and --workdir. Linker Command-line Options

Table A-2 Differences between issue H and issue I

Change Topics affected
Removed the topic About link time code generation. 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. Platforms supported by the BPABI
Clarifications to preprocessor invocation in scatter files. Preprocessing of a scatter file
Removed the See also Tasks reference from --runpath. --runpath=pathlist

Table A-3 Differences between Issue G and Issue H

Change Topics affected
Improved the scatter file example for stack and heap. 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. --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. --autoat, --no_autoat
Enhanced the description of --entry. --entry=location

Table A-4 Differences between Issue F and Issue G

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

Table A-5 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.
Modified the version number reported by --version_number and --vsn.

Table A-6 Differences between Issue D and Issue E

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

Table A-7 Differences between Issue C and Issue D

Change Topics affected
Removed the items about LTCG and profiling from the list of linker features. 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-8 Differences between Issue B and Issue C

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

Table A-9 Differences between Issue A and Issue B

Change Topics affected
Added a note about the 64-bit linker support. About the linker
Added links to new command-line options in the Linker Reference. Linker commands listed in groups. Removed in Issue J.
Added a note about program segment size limit.
Added a table to compare scatter file with equivalent command-line options. Methods of specifying an image memory map with the linker
Added information on handling unassigned sections. Section placement with the linker
The PROTECTED keyword also prevents overlapping of load regions. Reuse of veneers when scatter-loading
Added an overview topic for mapping symbols. About mapping symbols
Added Load$$ ZI output section symbols. Load$$ execution region symbols
Added a topic to show how to import linker-defined symbols in ARM assembler. Methods of importing linker-defined symbols in ARM assembly language
Added examples to show how to place code and data at specific addresses. 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"))). Placement of code and data with __attribute__((section("name")))
Added information about +offset execution region and overlay execution regions. 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. 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. Default GNU ld scripts used by armlink
Added the default ld script that is used for --ldpartial. 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. --any_contingency
Added the --any_placement command-line option. --any_placement=algorithm
Added the --any_sort_order command-line option. --any_sort_order=order
Added the --[no_]crosser_veneershare command-line option. --crosser_veneershare, --no_crosser_veneershare
Added the --emit_non_debug_relocs command-line option. --emit_non_debug_relocs
Added the --[no_]load_addr_map_info command-line option. --load_addr_map_info, --no_load_addr_map_info
Added the --[no_]strict_flags command-line option. --strict_flags, --no_strict_flags
Added the --[no_]strict_symbols command-line option. --strict_symbols, --no_strict_symbols
Added the --[no_]strict_visibility command-line option. --strict_visibility, --no_strict_visibility
Added the --sysroot command-line option. --sysroot=path
Added the --tiebreaker command-line option. --tiebreaker=option
Added the --veneer_inject_type command-line option. --veneer_inject_type=type
Added the --veneer_pool_size command-line option. --veneer_pool_size=size
Added restriction details to --[no_]autoat. --autoat, --no_autoat
Added any and veneerpools topics to the --info command-line option. --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. --list_mapping_symbols, --no_list_mapping_symbols
Clarified the description of the --[no_]locals command-line option. --locals, --no_locals
Clarified the description of the --privacy command-line option. --privacy
Expanded the Usage section of the --scatter command-line option to list the new command-line options that are related. --scatter=filename
Added the cmdline type to the --section_index_display command-line option. --section_index_display=type
Added the Alignment, BreadthFirstCallTree and LexicalState algorithms to the --sort command-line option. --sort=algorithm
Expanded the description of the --[no_]strict_relocations command-line option. --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. Expression rules in scatter files
Added a topic to describe how ZI execution regions are handled when using +offset in a scatter file. Scatter files containing relative base address load regions and a ZI execution region
The PROTECTED keyword also prevents overlapping of load regions. Load region attributes
Expanded the description of the ZEROPAD execution region attribute because of the new Load$$ ZI output section symbols. Execution region attributes
Expanded the introduction to Inheritance rules for load region address attributes. Inheritance rules for load region address attributes
Expanded the introduction to Inheritance rules for execution region address attributes. 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. 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. 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. Behavior when .ANY sections overflow because of linker-generated content
Added details of using +offset in a conditional operator, with an example. Expression rules in scatter files
The execution address built-in functions can now be used for the max_size of a region. 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. Execution address built-in functions for use in scatter files
Was this page helpful? Yes No