You copied the Doc URL to your clipboard.

Revisions for Using the Linker

The following technical changes have been made to Using the Linker:

Table 20. Differences between issue H and issue I
ChangeTopics affected
Removed the topic About link time code generation. 
Removed the link to the --ltcg option.Linker command-line options listed in groups
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.Using preprocessing commands in a scatter file

Table 21. Differences between Issue G and Issue H
ChangeTopics 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.

Table 22. Differences between Issue F and Issue G
ChangeTopics 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

Table 23. Differences between Issue E and Issue F
ChangeTopics 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.

Table 24. Differences between Issue D and Issue E
ChangeTopics affected
Added links to --api, --no_api and --veneerinject, --no_veneerinject option descriptions.Linker command-line options listed in groups
Added links to the options that work around the ARM 1176 erratum.Linker command-line options listed in groups
Enhanced the topic title.Using __attribute__((section("name"))) to place code and data
Added example C/C++ code.

Table 25. Differences between Issue C and Issue D
ChangeTopics affected
Removed the items about LTCG and profiling from the list of linker features.About the linker

Removed the note about profiling.

Added a note about the LTCG feature being deprecated.

About link-time code generation

(This topic is removed from Issue I.)

Table 26. Differences between Issue B and Issue C
ChangeTopics affected
New topic about the strict family of options.About the strict family of options in the linker
Added details on specifying the maximum size permitted for placing unassigned sections with the ANY_SIZE keyword for an execution region.Placing 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

Table 27. Differences between Issue A and Issue B
ChangeTopics 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 command-line options listed in groups
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.Importing linker-defined symbols in ARM assembly language
Added examples to show how to place code and data at specific addresses.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"))).Using __attribute__((section("name"))) to place code and data
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.

Was this page helpful? Yes No