The IAR ILINK Linker
The ILINK parser has been rewritten and the linker configuration system has changed. When you upgrade to the new version of IAR Embedded Workbench, you should be aware of the issues described in this section.
Ordering of statements in linker configuration files
In version 9.x, the ordering of statements in linker configuration files (.icf) was very strict.
In version 10.x, the ordering of statements in linker configuration files is less strict. For example, using a construct before it has been defined is no longer an error. The new linker parser also has new error messages and other minor improvements.
define memory and naming memory spaces in linker configuration files
The user documentation for version 9.x suggested using the syntax [ memory-name: ] to indicate the name of the memory space in which a region literal will be located.
However, ILINK does not and has never supported multiple memories, so using the define memory directive or the optional [ memory-name: ] syntax is deprecated in version 10.x, except when the same architecture has multiple address sizes—in that case you can use the define memory directive but not the [ memory-name: ] syntax.
The ILINK parser in version 10.x does not check that the memory-name actually matches a name specified in a define memory directive higher up in the file.
Support for both the define memory directive and the [ memory-name: ] syntax might be removed in a future version.
Supported encodings in linker configuration files
In version 10.x, the linker configuration file supports the UTF-8 encoding, but no other encodings.
The linker configuration file editor
The dedicated linker configuration file editor, available from the Linker>Config page in the Project Options dialog box has been removed in version 10.x.