RELEASE NOTES SmartLinker

RELEASE NOTES SmartLinker V5.0.30

List of new Features
- Floating license lingering time has been reduced from 10 minutes to 5 minutes to make floating licenses faster available for another user.
  Note that the floating license server administrator can extend the lingering time using a configuration file (see Macrovision FLEXlm documentation for details).
- Added MMU support for HCS08: new memory space allowed in the linker parameter file (linear or flash space, designated by 'F, e.g. 0x10000'F).
  All addresses that are not marked with this designator are considered by default logical (paged) addresses. The executable file that results
  from the linkage process contains only logical addresses, hence all linear addresses are translated to their logical equivalent at link time.
  Objects that cross page boundaries (for HCS08 derivatives as HCS08QE128 for instance the paging window size is 16 kilobytes) will show up 
  fragmented at page boundaries in the ELF file.
- New linker option: -CheckAcrossAddrSpace. This option will instruct the linker to check if objects overlap, taking into account their address space. 
   

List of fixed Bugs
- MTWX23197: HC12: for debug information sections larger than 2^24, the linker did silently incorrectly issue the ELF address. For the HCS12, addresses in ELF are using the
                   24'th bit as indication of a global address and therefore this caused that the address was later mistaken as global address and incorrect debug information was generated.
                   Now the linker issues a warning instead. The warning message can be remapped in case the linker should issue an error instead.
                   Note: This will limit the debug information to 16777216 bytes. For the setup of case MTWX23197, new compiler now also generate much denser debug information so that this limit should not be reached.

List of known Limitations
- ELF: The + syntax to disable smart linking is only supported for object files, not for complete libraries.


Demo Version Limitations
  If the linker is running in demo mode (e.g. because there is no license file), there are 
  following limitations:
  - Total code size for an application is limited to 1024 bytes for 8/16 bit CPU's and 3 
    Kbytes for 32bit CPU's.

RELEASE NOTES SmartLinker V5.0.29

List of new Features
- MTWX20544: Issue a warning for objects allocated in R/W memory with global initialization with non zero content if they are not copied down
- Addition of section level alignment. 
   The new syntax of ALIGN is:
    Alignment = ["SECTION" exp] [exp] {'['(Number | Number TO Number | CompareOp Number):exp']'}
    e.g.  
      ALIGN SECTION 4 2 [<= 1:1]
      // allocate every section start to a multiple of 4, allocate every object >= 2 bytes to a multiple of 2,
      // do not align one byte objects.
   

List of fixed Bugs
- MTWX20307: Fix of the copy down information about XGATE assembly code modules to be copied by the HCS12X core.
- MTWX19923: SmartLinker crashes in the following conditions: after running on a correct example, provide a wrong input file 
             (e.g. a text file instead of an ELF file) and explicitly specify ELF file format (-fe).
- MTWX19911: smart linking was not disabled for the first module following a INCLUDE directive (even though the name is followed by '+').

List of known Limitations
- ELF: The + syntax to disable smart linking is only supported for object files, not for complete libraries.


Demo Version Limitations
  If the linker is running in demo mode (e.g. because there is no license file), there are 
  following limitations:
  - Total code size for an application is limited to 1024 bytes for 8/16 bit CPU's and 3 
    Kbytes for 32bit CPU's.


RELEASE NOTES SmartLinker V5.0.28

List of new Features
- Licensing version number for FLExlm has been updated to 5.000 for HC08.

List of fixed Bugs
- MTWX19033: fixed internal error case which could happen for extremely many function in one single assembly section.
- MTWX19880: for prm file based CHECKSUM areas, the UNDEFINED value in the prm file was not used for memory behind the last object.

List of known Bugs
- ELF: The + syntax to disable smart linking is only supported for object files, not for complete libraries.


RELEASE NOTES SmartLinker V5.0.27

List of new Features
- Initial RS08 support (ELF only).
- RS08: VECTOR support The linker writes the code for JMP XXX for a VECTOR 0 XXX directive.

List of fixed Bugs
- MTWX18756, ELF: The last object file or library linked did define which kind of debug information the generated elf file contained.
  If the last object file or library did not contain any debug information, debug information from other 
  modules was also not linked.
- ELF: If the special _OVERLAP section was not actually mentioned in the prm file but used in the linked code,
  then variables defined in _OVERLAP were not correctly allocated.
- Opening files from the builtin Windows GUI with double clicking did cause a crash 
  if the File->Configuration->Editor Settings dialog was configured as "CodeWarrior (with COM)" and if an old IDE 4.1 was 
  configured as current CodeWarrior IDE to be used. It did work as expected with if any
  more recent CodeWarrior IDE was registered.
- MTWX18499: Checksum information in map file did only print the first 4 hex digits of addresses.
  The checksum however was properly computed, this was a map file only bug.

List of known Bugs
- ELF: The + syntax to disable smartlinking is only supported for object files, not for complete libraries.


RELEASE NOTES SmartLinker V5.0.26

List of new Features
- New message "L1931: Fixup to not allocated object". Note: this message can happen if you did explicitly disable the message 
   "L1822: Symbol <name> is undefined" with the options -WmsgSw1822, -WmsgSi1822 or -WmsgSd1822.
   If this happens intentionally, the option -WmsgSw1931 maps the message L1931 to a warning as well.
   By default, L1931 is an error.

List of fixed Bugs
- ELF/HCS12X: Addresses defined with the prm file VECTOR command of objects which were allocated 
  in with global addresses (e.g. 0x7FF000'G) were not converted to logical addresses. This caused the linker error L1108.
- ELF: When switching smart linking off for one file, unreferenced only imported objects in assembly files are no longer linked.
- ELF: RELOCATE_TO with PC relative fixups did incorrectly cause fixup overflow messages.
- ELF: MTWX16961, 1-58661086: Labels defined with imported labels did not correctly work in some cases depending on the link order.
- ELF: Module Statistics in the map file were wrong for assembly modules. They did show too large numbers for Data, Code and Constants.

List of known Bugs
- ELF: The + syntax to disable smartlinking is only supported for object files, not for complete libraries.


Demo Version Limitations
  If the linker is running in demo mode (e.g. because there is no license file), there are 
  following limitations:
  - Total code size for an application is limited to 1024 bytes for 8/16 bit CPU's and 3 
    Kbytes for 32bit CPU's.


RELEASE NOTES SmartLinker V5.0.25

List of new Features
- MTWX15419: for prm based checksum, METHOD_ADD now supports an additional operation size specification : METHOD_ADD SIZE 1.
  Using this new feature, the result size of the addition can be different than the operation size.
  E.g. the sum of the byte of a memory area can be computed now with a 16 or 32 bit result. 
- Message L2203 (for HIWARE object file format) is now disabled by default.
- Mapping unknown messages is now treated as warning and no longer as error. This change allows to maintain compatibility with old build tools when removing no longer used messages.
- Lingering time for floating licenses has been extended to 10 minutes, to allow caching of licenses (to reduce linking time)
- the linker now also issues "L4024: No information available for segment" for default empty segments.

List of fixed Bugs
- MTWX16537: Failure to allocate .copy if there was not enough space in the current segment for .copy, but another segment afterwards does contain enough space.
  Previous versions of the linker did not support to switch the segment for the .copy section. This version does now support this.
- MTWX15988: Failure to correctly handle the .copy section if other placements after the one containing .copy do fill up the same segments. This bug did cause overlapping warnings.
  Note: a side effect of this change is that the linker defined objects __SEG_START_COPY, __SEG_END_COPY and __SEG_SIZE_COPY are no longer supported. Previous
  linker versions did provide an incorrect value for the end and size objects. This version now defines all these as 0.
- the start of the copy down data structure now follows the ALIGN directive explicitly specified for a segment.
  Note: The copy down data structure was aligned depending on the processor before. However an present ALIGN directive in the segment was not honored.
- MTWX14817: Last byte not being filled when using the FILL command for an almost-full memory segment.

List of known Bugs
- ELF: The + syntax to disable smartlinking is only supported for object files, not for complete libraries.


RELEASE NOTES SmartLinker V5.0.24

List of new Features
- Mapping unknown messages is now treated as warning and no longer as error. This change allows to maintain compatibility with old build tools when removing no longer used messages.
- Lingering time for floating licenses has been extended to 10 minutes, to allow caching of licenses (to reduce linking time)
 

List of fixed Bugs
- none.

List of known Bugs
- ELF: The + syntax to disable smartlinking is only supported for object files, not for complete libraries.


RELEASE NOTES SmartLinker V5.0.23

List of new Features
- 1-54681434: New option -LicWait. If set and used with floating license configuration, if no license is available from the license server,
  it will wait until a license is available. This is useful if you want to wait until a license is free, e.g. with batch jobs.
- The about box (and option -Lic) shows now as well borrowing status (same as lmborrow.exe -status)
- New option -LicBorrow:
  -LicBorrow    Borrow license feature (-LicBorrow<feature>:<Date>, <Date> in dd-mmm-yyyy[:hh:mm] format and 
  time in 24-hour hh:mm format)
  It enables selective borrowing of features (supported by the application). Note that borrowing is only supported
  if enabled in the license file by the BORROW keyword.
- In case of an expire/evaluation license, you are now warned 10 days before the license expires.
  The warning dialog box pops up once every day.
- Support for HCS12X.
- ELF: all input files are now searched in the object file search path. Previous versions did search input files depending on their extension
  in the OBJPATH for *.lib and *.o, ABSPATH for *.abs. The extensions *.obj or *.elf were only searched in the generic path.
  The new behavior is simpler and straight forward and only needs adoptions for projects with ROM libraries with extension ABS which relied on the ABSPATH searching.
- FLEXlm support for BORROWING. Note that BORROWING is only available for floating licenses, and may be sold
  as a separate product or for an additional fee. BORROWING is used so you can work with a floating license
  even if you are disconnected from the licensing server. See FLEXlm user manuals for details on BORROWING.
  Note that this product needs a FLEXlm daemon (metrowks.exe on the licensing server) with following
  version information:
  FLEXlm v8.4a (lmgr.lib), Copyright (c) 1988-2003 by Macrovision Corporation. All rights reserved.
  The latest FLEXlm floating server software can as well be downloaded from the www.metrowerks.com
  web page, or get in touch with support to get the latest version.

List of fixed Bugs
- 1-52443280: option -COCC did not work correctly when generating ROM libraries. 
  The symbols for overlapped objects were not defined in the output ELF file.
- 1-53814465: in case of ClearCase version control plugin, and if the local settings for decimal point were not '.', license checkout
  was not working in all cases.
- Fixed bug of RELOCATE_TO handling of assembly sections.
- ELF: MTWX9228/1-50815225: Checksum calculation did not consider fixups in assembly code 
- ELF: WB1-45140: ENTRIES fibo.c.o:* END with -add c:\demo\fibo.c.o.
     Previous version did not remark that a file specified once complete with path and once found via some search path was identical, 
     so this caused a duplicate definition error.
- ELF: The linker message 1127 indicating that for the HC12 in the small memory model some placements exists in the prm file outside of the
     16 bit memory range is now disabled by default. It is possible to use explicitly specify the far calling convention with the compiler,
     and for such usages, the message was not appropriate, especially as it is issued even when nothing is allocated in this area.

List of known Bugs
- ELF: The + syntax to disable smartlinking is only supported for object files, not for complete libraries.


RELEASE NOTES SmartLinker V5.0.22
Note: this version does need a license version 3.1 or higher.

List of new Features
- None

List of fixed Bugs
- ELF: MTWX9228/1-50815225: Checksum calculation did not consider fixups in assembly code 

List of known Bugs
- ELF: The + syntax to disable smartlinking is only supported for object files, not for complete libraries.


RELEASE NOTES SmartLinker V5.0.21

List of new Features
- Checksum calculation feature.
- Support for LINK_INFO merging. See the compiler manual for details.
- Linker is now using the lingering feature of FLEXlm in a floating license environment.
  Lingering time is set to 5 minutes for faster link times

List of fixed Bugs
- M68k: linker was writing  Linker generated code (at 0x400) before calling _Start: 
  MOVE #0x2700, SR 
  into the map file. However, ORI.W #0x2700,SR is generated. The map file reports 
  now the correct code written.

List of known Bugs
- none.


RELEASE NOTES SmartLinker V5.0.20

List of new Features
- New option Ci can be used to link assembly modules case insensitively.
- HIWARE Object File Format: Stings in non default segments are optimized as well.

List of fixed Bugs
- No copy down information was generated for assembly sections consisting of DC's 
  only and explicitly allocated in a read/write area.
- HIWARE Object File Format: For labels sometimes a wrong segment name was 
  displayed in the map file. 
- HIWARE Object File Format: WB1-38348 Bug with strings in user defined section

List of known Bugs
- none


RELEASE NOTES SmartLinker V5.0.19

List of new Features
- This version uses a new FLEXlm daemon (the Metrowerks one). If you already have a 
  license for the former version, you need to upgrade your license. Additionally be 
  aware that in compliance with other Metrowerks tools the license (license.dat) file in 
  the installation root (e.g. c:\metrowerks\license.dat, the installation script has created 
  a shortcut to this file) is used. If such a license.dat exists, this file is used to check out 
  the license. Only if this file does not exist, the one in C:\FLEXlm is used.
- Wish R2907: support to ignore PRESTART directive in the ELF format.

List of fixed Bugs
- Fixed Linker V5.0.18 crash with option fh when no object file mentioned on the 
  command line or in the prm file was found. 

List of known Bugs
- none


RELEASE NOTES SmartLinker V5.0.18

List of new Features
- Support for HC08 Tiny Memory Model.

List of fixed Bugs
- In the ELF object file format, the overlapping tests did miss 1 byte large objects and 
  did incorrectly report overlapping cases for 0 byte large objects.
- R2830: diagnostic message for incompatible sections.
- ELF: _OVERLAP can now be splitted up into several segments. Old behavior was an 
  error message for this case.
- HIWARE: _OVERLAP segment is now checked that only one section is used. 
  Automatically splitting the _OVERLAP into several areas is not supported in the 
  HIWARE format (only in ELF). Old behavior was that the linker did not issue a 
  diagnostic message for this case. 

List of known Bugs
- none


RELEASE NOTES SmartLinker V5.0.17

List of new Features
- none.

List of fixed Bugs
- R2777: / in paths did not work
- In case of running in demo mode (e.g. without a license file) and linking a HC16 
  application, the linker was suspecting a invalid license checksum and has quit.

List of known Bugs
- none


RELEASE NOTES SmartLinker V5.0.16

List of new Features
- New option -asROMlib (same as AS ROM_LIB in the prm).
- Better support for the XA.

List of fixed Bugs
- R2765: In the HIWARE format, a crash for filenames (including path) longer than ca 
  90 in some cases.
- R2756: Documentation error in the manual. VECTOR command was described with 
  a value of the form "obj + 10" instead of the actually used "obj OFFSET 10". The 
  linker executable was not changed for R2756.
- R2752: wrong error message "section .copy must be the last section in the section 
  list" in the ELF format.
- With HIWARE object file format, and if the stack was defined with STACKTOP in 
  the linker prm file, then the linker defined objects like stack segment start/end (as may 
  be used in the startup code) were set to zero. Now the linker will issue a warning in 
  case of no information about a segment is present. The STACKTOP case is handled 
  now correctly too.
- Error message for ELF/DWARF for M68k and LARGE memory model: fixed. 
  Workaround was to move the message (e.g. to a warning)

List of known Bugs
- none


RELEASE NOTES SmartLinker V5.0.15

List of new Features
- Following special macros are supported now in the environment too: {Compiler}, 
  {Project} and {System}.
  Note: Those macros are newly available during environment variable substitution.
  They are not automatically supported in filenames in general.
- The main function is no longer in the dependency of the _startupData structure used 
  to initialize globals.

List of fixed Bugs
- Bug in ELF overlap treatment. In some circumstances were dependencies via 
  functions, which did not have overlap variables themselves ignore. This bug did 
  happen in the calc example.

List of known Bugs
- none


RELEASE NOTES SmartLinker V5.0.14

List of new Features
- ELF: with smart linking enabled, unreferenced absolute labels do not show up in the map file anymore.
- R2652: It is possible now to change the color for messages in the tool window. It can 
  be changed for WARNING, INFORMATION, ERROR, FATAL and for user 
  messages as well. Following options are available for this: -WmsgCW, -WmsgCI, -
  WmsgCE, -WmsgCF and -WmsgCU. See manual for details.

List of fixed Bugs
- ELF: In certain cases, input libraries were not unlocked after linking. This caused 
  rebuilds of the library to fail unless the linker  (or in case of CodeWarrior integration 
  CodeWarrior) was closed.
- ELF: When a file did only contain exported constants using the standard ELF 
  SHN_ABS section, then the whole module did not show up in the map file. The 
  generated code  however did use the constants correctly.

List of known Bugs
- none


RELEASE NOTES SmartLinker V5.0.13

List of new Features
- New option -ShowAboutDialog to show the about dialog
- All tools have now a dialog to edit the environment (File->Configuration). E.g. to 
  modify the GENPATH.  Note that this affects the project file only (and does NOT 
  support the default.env)
- The binary has now splitted into an *.exe and a *.dll part. This allows it to use as 
  CodeWarrior plug-in.
- The license file is searched in following order: 
- license.dat in the directory where the executable is (this was already the case) 
- hiware.lic in the directory where the executable is (this was already the case) 
- license.dat in one directory up from the where the executable is (this is new. E.g. if  
  the executable is in c:\metrowerks\prog, the license file in c:\metrowerks is searched too) 
- the license file using the normal FLEXlm way (usually c:\flexlm, this was already the case)

List of fixed Bugs
- none

List of known Bugs
- none


RELEASE NOTES SmartLinker V5.0.12

List of new Features
- New option StatF to produce a statistic file about linked objects to be used in a data base or spreadsheet
- There is now an 'OPTIMIZATION' group available for options dealing with optimizations.
- The vector table for the ST19X is now per default at address 0x2ffe instead 
  previously at address 0xfffe. With this, a vector set with 'VECTOR 0 MyFunc' will 
  setup the reset vector at address 0x2ffe.
- The linker uses now the environment variable RESETVECTOR for the following 
  CPUs: HC05, ST7 and ST19X.
- Improved support for PowerPC.
- Linker reports now object files compiled with different type sizes in the HIWARE format.
- Enhanced handling of ELF overlap variables (HC05/ST7/ST19X) defined with the assembler.
- Reporting of incompatible derivative (only when using the ELF format with a new 
  compiler supporting different incompatible derivatives).

List of fixed Bugs
- R2534, ELF/DWARF only: an object at address 0x0000 was not reported in the map file.

List of known Bugs
- none


RELEASE NOTES SmartLinker V5.0.11

List of new Features
- Native support for PowerPC

List of fixed Bugs
- none.

List of known Bugs
- none


RELEASE NOTES SmartLinker V5.0.10

List of new Features
- ELF, HC11: The HC11 is now supported for the ELF format.
- R2332, HIWARE: Strings in special segments are now supported.
- Color for output is now used: e.g. error messages are written in red
- New startup option NoEnv which disables the usage of the environment 
  (default.env, tips file and project.ini)
- Support for St19.

List of fixed Bugs
- For HC16 in large memory model, if the interrupt vector number was used in source 
  files, e.g. 
     void interrupt 3 MyVector(void) {... 
   Then the linker has written the upper 16bit part of the vector address instead the lower 16bit part.

List of known Bugs
- none


RELEASE NOTES SmartLinker V5.0.9

List of new Features
- for HIWARE object file format, the linker does also report in the files section of the 
  map file the programming language used (e.g. ANSI-C). Additionally, files with smart 
  linking switched off are marked with a '+' sign in front of the object file name.
- The option O for abs file name specification is now available with the ELF and 
  HIWARE format. For previous versions, it did only work for ELF. 
  When O is present, the LINK entry in the prm file is no longer necessary. If one is 
  provided, the contained name is ignored.
- The option B for SRecord file generation is now available with the ELF and 
  HIWARE format. For previous versions, it did only work for ELF. 
  Note: The generated SRecord files cannot be configured in any way. In addition, the 
  blocks are not sorted by address. For advanced generation of SRecord files, generate a 
  abs file and then use the burner (the separate executable burner.exe).
- The option M for map file generation is now available with the ELF and HIWARE 
  format. For previous versions, it did only work for ELF.
- The linker does now allow spaces in filenames in the prm file in the HIWARE object 
  file format.

List of fixed Bugs
- R2296: Linker error message L1915 for application without RAM.
- R2301: Linker error message C1818 for variables of known size declared in a C 
  header file and defined with an assembler label.
- R2306: extremely long time to write the map file in rare cases.

List of known Bugs
- none


RELEASE NOTES SmartLinker V5.0.8

List of new Features
- HIWARE Format, _OVERLAP section, only used for ST7/HC05: 
  New option CallocUnusedOverlap: When this option is specified, this linker does 
  allocate unreferenced variable in the overlap segment. Without this option, such 
  variables are not linked, even if the defining module is marked with a "+" for smart 
  linking off. The compiler generates such variables if all accesses are optimized away. 
  When they are linked, the defining function is not known, and therefore such 
  variables do not overlap. Linker version < 5.0.7 did not allocate such variables. Linker 
  V5.0.7 did always allocate them and therefore waste much memory when smart 
  linking was switched off.
- HIWARE Format, _OVERLAP Section, only used for ST7/HC05: 
  Recursive dependencies only using variables/labels are treated differently during 
  allocation. In the map file, the whole dependency path including any labels/variables 
  is now printed in the dependency tree.

List of fixed Bugs
- R2272: Endless loop for recursive label definitions. Now an error is generated.
- HIWARE Format, _OVERLAP section, only used for ST7/HC05: 
  The algorithm used to check data structure does no longer have extremely slow cases. 
  In the last version, in some special constellation, the execution time was growing 
  exponentially with the number of depending variables.
- ELF: Allocating initialized constants into a NO_INIT segment did create incorrect abs 
  files.

List of known Bugs
- The linker does not allow spaces in filenames in the prm file in the HIWARE object 
  file format. In the ELF format, the command line, in paths and in the default.env 
  spaces in filenames are allowed.


RELEASE NOTES SmartLinker V5.0.7

List of new Features
- For the analysis of the overlapped allocation of variables (HC05/ST7), a new map file 
  section shows the call tree and all overlapped variables. The critical path, recursive 
  function calls and calls to functions using overlapped variables of other roots are 
  especially marked.
- ELF: the new official processor ids for the Freescale HC05, HC08, HC11 and 
  STMicroelectronics ST7 are recognized.
- ELF M68k: For the M68k ELF format, the new linker does use the official fixup 
  types. HIWARE Compilers with version < 5.0.11 did generate ELF files, but they 
  were not using the official fixup types. Previous versions of the linker did use the 
  same fixups as old compilers. This restriction only applies to the ELF format. In the 
  HIWARE format, which is the default, no such restriction exists. The new option "-
  feo" does provide a compatibility mode to use the new linker with old versions of the 
  M68k compiler.
- HIWARE: New Linker option CRam. Starting with this linker, constant data section 
  and the section ROM_VAR is now allocated in ROM by default in the HIWARE 
  format. With the option CRam, the old behavior of allocating it in RAM can be 
  maintained. 
  Note: In ELF, constant sections were already allocated in ROM by default.
- HIWARE: In the map file, a new section shows all allocated objects sorted by 
  address.
- HIWARE: For every object it is additionally displayed in the Map file how many 
  fixups are done with this object. This value is especially useful to decide which 
  variables should be put into the zero page. In the ELF format, this information was 
  already present in the Map file.

List of fixed Bugs
- R2251: Linker crash caused by illegal object. Now the linker generates an error 
  message.
- R2245: The map file uses now "BANKED" instead "MEDIUM1" if the object file 
  was build with banked memory model.
- R2254: When SMART Linking was switched off, not referenced variables in the 
  overlap segment were not allocated. Now they are allocated. Because these variables 
  are not used, the allocation does only waste space. So, the message L2097 is issued. It 
  is recommended not to switch of smart linking for the HC05/ST7 to use as little 
  memory as possible.
- R2287, R2196: ELF: Stack as only object in READ_WRITE segment starting at 
  address 0.

List of known Bugs
- The linker does not allow spaces in filenames in the prm file in the HIWARE object 
  file format. In the ELF format, the command line, in paths and in the default.env 
  spaces in filenames are allowed.


RELEASE NOTES SmartLinker V5.0.6

List of new Features
- R2103: New option  -WmsgNu to suppress user messages (e.g. included files). See 
  manual/help file for details.
- ELF: overlapping of constant objects. Switch it on with option cocc
- Configuration of dependencies with new link parameter keyword DEPENDENCY.
- R2095: The message error L2401 is now movable (e.g. to a warning). This allows 
  that it is possible to link HC05 with ST7 files.
- R2079: more information in the map file (HIWARE object file format): 
  The object allocation section contains now information in which segment the objects 
  are allocated.  
  Example:
	    STRINGS:       
	            "abc"                     4038      4  STRINGS
	            "DEF"                     403C      4  STRINGS
  Segment Allocation Section contains now also information about overall RAM/ROM 
  usage. 
  Example: 
	      ROM size (hex):      1D9
	      RAM size (hex):        4
  Extended dependency list: entries are now on separate lines with additional 
  information. The same for segment use object allocation section.  
  Example:
	    _Startup                  USES 
	            _startupData           1004     1E  STARTUP
	            Copy                   1124     8B  FUNCS
	            Init                   10B0     74  FUNCS
- In the HIWARE format, the linker now generates a warning if the segment 
  "_OVERLAP" or the segment "_ZEROPAGE" are allocated in a READ_WRITE 
  section. The warning "L2411 Remove segment <segment> from zero out" can be 
  ignored or switched off if no user defined variables which need to be initialized are 
  allocated in these segments. The HC05 and ST7 compiler do allocate some variables 
  in the "_ZEROPAGE" which must not be initialized.
- For processors which do never need any alignment, the startup structure fields and 
  strings are no longer aligned. No alignment is generated for the HC05, ST7, HC08, 
  HC11 and HC12.

List of fixed Bugs
- R2182: crash for prm files with a size x*1024 ending with an object name with only 
  one space/CR
- R2184: crash for specifying and path to a non-existing library.
- R2190: ROM-libraries could not contain several static objects with same name.
- R2112: HIWARE, HC05, ST7, HC08 (only if HC08 uses overlap): variables in the 
  _OVERLAP were allocated in some circumstances at same area as other non 
  ovlapped variables
- R2093: HIWARE: odd stack size for the M68k
- R2102: ELF: Wrong handling for absolute sections from assembler files specified 
  with path in prm file.
- If both 'PRESTART OFF' and 'INIT' was used in a HIWARE format linker parameter 
  file, INIT was ignored. The application main/root function was used as initialization 
  function.
- The _startupData structure from the startup code is now contained in the 
  ELF/DWARF debug arrange section. With this enhancement, the startup data 
  structure name is displayed in the HI-WAVE memory window when a corresponding 
  memory location is selected in HI-WAVE 5.4 with enabled delay loading.
- In the HIWARE Object File format, interrupt functions defined and allocated with a 
  vector number (e.g. "interrupt 0 void intHandler(void) { int local; }") are now 
  considered when allocating variables overlapping. Overlapping is only used for small 
  eight bit processors, especially HC05, HC08 and ST7. The previous workaround with 
  specifying such functions in the link parameter file (*.prm) with a VECTOR entry is 
  no longer necessary. Note that the new overlapping allocation takes place after the 
  usual allocation phases. Be careful about recursion when using overlapping.
- The ELF Linker does allocate the right size for undefined global objects. 
  E.g. 
  extern int i; /* with no definition "int i;" anywhere */

List of known Bugs
- The linker does not allow spaces in filenames in the prm file in the HIWARE object 
  file format. In the ELF format, the command line, in paths and in the default.env 
  spaces in filenames are allowed.


RELEASE NOTES SmartLinker V5.0.5

List of new Features
- New option -F6 to produce V2.6 absolute files
- Linker is now able to deal with HITACHI H8/500 HIWARE Object Format Files

List of fixed Bugs
- Linker did crash for some cases where a constant/ROM object was allocated in RAM. 
  The linker does now correctly issue a warning message for such a case
- In the ELF Object File Format, for variables only declared and not defined, the linker 
  did in some cases allocate them with size 4 instead of the correct size.  
  Example:  
  a.c:  
  extern char buf[100]; 
 
  b.c: 
  extern char buf[100]; 
 
  Correction : 
  a.c: 
  char buf[100];.

List of known Bugs
- The linker does not allow spaces in filenames in the prm file in the HIWARE object 
  file format. In the ELF format, the command line, in paths and in the default.env 
  spaces in filenames are allowed.
- The linker may put absolute global not initialized variables into the zero out. 
  E.g. int i@267; 
  Is initialized with zero at startup.
- The ELF Linker does not always allocate the right size for undefined global objects. 
  E.g. 
  extern int i; /* with no definition "int i;" anywhere */


RELEASE NOTES SmartLinker V5.0.4

List of new Features
- In the startup structure, now also additional fields and alignment bytes may be 
  contained. These bytes are filled with 0 bytes.
- The ELF Linker does support overlapping for pseudo local variables. This is 
  especially useful for HC05 and HC08 processors.
- In the ELF Linker, the message L1110 'Segments <Segment1> (<Address1>) and 
  <Segment1> (<Address1>) overlap' has a different text and can now be configured.
- The Linker has now a new icon, so it is much easier now to identify the Linker if the 
  window is minimized in the task bar.
- In the ELF/DWARF Linker, the message L1110 'Segments <Segment1> (<Address1>) 
  and <Segment1> (<Address1>) overlap' has a different text and can now be 
  configured.
- If the FILL command is specified (only available for ELF/DWARF), then the linker does 
  not filling up not only the gaps between objects with this pattern, it uses this pattern to 
  fill up a segment too.
- The format for the map file has been extended: it reports the object format int the map 
  file too
- The format for the map file has been extended for ELF/DWARF: the size of objects is 
  also written as a decimal number (dSize)
- The HIWARE format linker is now able to link objects placed by the user in a 
  segment named ROM_VAR: 
      #pragma CONST_SEG ROM_VAR 
      const char i_13 = 5; 
  Note that using a predefined segment name is not recommended, and the compiler 
  will also issue a warning C3804 for that.
- In case of an error during parsing an ELF/DWARF linker parameter file, the first line of 
  the linker parameter file was assumed to be zero instead one. This had the effect using 
  the error feedback, that the line above the error was displayed in an editor.
- The linker does now support the INCLUDE directive for both the ELF and for the 
  HIWARE format. The last linker version did only support this for the HIWARE 
  format. The messages considering the INCLUDE directive have changed their number 
  to reflect the case that they are not emitted for both HIWARE and ELF object file 
  format.
- In the ELF format, the linker does now support extended file names with spaces 
  inside. Such names must be surrounded by double quotes. E.g. "NAMES "b c\b c.o" 
  for an object file "b c.o" in the directory "b c".
- The linker does now support object overlapping for both the ELF and HIWARE 
  format. The last linker version did only support this for the HIWARE format.
- In the ELF format, the new keyword OVERLAP_GROUP allows specifying groups 
  of overlapping root functions.
- In the ELF Object File Format, the identifier HAS_BANKED_DATA is now skipped 
  in prm files.
- In the 
- The linker is now able to link functions with more than 32KBytes code in HIWARE 
  format.
- The limit for constants in ROM for a single object has been increased from 32KBytes 
  to 64KBytes in HIWARE format.
- The ELF linker messages L1012 and L1013 are now warnings by default. This can 
  still be moved to an error.
- In the ELF object file format, the linker now supports global C++ destructor calls. 
  For this, the startup code must be adapted and in the startup data structure, two 
  additional fields must be added. The new fields nofFiniBodies and finiBodies have 
  the same structure as the existing fields initBodies and nofInitBodies, except that it 
  contains a list of functions to be called after main.
	  unsigned int   nofFiniBodies;
	  _Cpp           *finiBodies; 

List of fixed Bugs
- The linker did have problems with ELF files produced by NON-HIWARE tools 
  containing a SHN_COMMON section.
- Not initialized variables are no longer counted as 'blocks to be downloaded' in the 
  STATISTIC SECTION of the map file.
- In the HIWARE object file format, no fixup anymore in absolute files. Some reading 
  tools did mean the file should be relocated again.
- Allow incomplete set of ELF DWARF sections. When some object files did not 
  contain all DEBUG information sections, the linker did issue C1927 "Fixups for 
  DWARF section <SectionName> not correctly generated".
- This restriction was dropped in this release. The linker does just include all available 
  debug info for the absolute file.
- The ELF Linker did issue the error, the section .copy is too small when the section did 
  just have the right size.
- The ELF Linker did produce wrong code for one constant object in some rare 
  situations.
- In the HIWARE object file format, when smart linking was switched off, static 
  unused objects were not linked. This version does also links static unreferenced 
  objects when smart linking is switched off.
- In the ELF format the + switch in the NAMES list indicating that a certain file should 
  not be smart linked did not work when this file did contain a path. A file not found 
  error was issued.
- In the ELF format, the limitation of the symbol name length was raised from 100 to 
  1024.

List of known Bugs
- The linker does not allow spaces in filenames in the prm file in the HIWARE object 
  file format. In the ELF format, the command line, in paths and in the default.env 
  spaces in filenames are allowed.
- The linker may put absolute global not initialized variables into the zero out. 
  E.g. int i@267; 
  Is initialized with zero at startup.
- The ELF Linker does not always allocate the right size for undefined global objects. 
  E.g. 
  extern int i; /* with no definition "int i;" anywhere */


RELEASE NOTES SmartLinker V5.0.3

List of new Features
- The number of segments for ELF/DWARF has been increased (no limitation any more)
- The linker supports now the 9bit offset relocation type (e.g. used in the HC12 
  assembler) in the HIWARE format (was already supported in ELF/DWARF): 
  XDEF.B rel1 
  LDX  rel1, X   ; 9bit offset

List of fixed Bugs
- In the ELF format, function and objects larger than 32 KB are now correctly handled.
- The stack pointer for the M-CORE is now aligned to 8 bytes instead 4 bytes

List of known Bugs
- The linker does not allow spaces in filenames in the prm file. In the command line, in 
  paths and in the default.env spaces in filenames are allowed.
- The linker may put absolute global not initialized variables into the zero out. 
  E.g. int i@267; 
  Is initialized with zero at startup.
- The ELF Linker does not always allocated the right size for undefined global objects. 
  E.g. 
  extern int i; /* with no definition "int i;" anywhere */


RELEASE NOTES SmartLinker V5.0.2

List of new Features
- New option -NoBeep to disable the beep in case of an error.
- The global and local editor can now be configured also in this tool and not only with 
  the shell. 

Note:  
- The global editor is stored globally in the mcutools.ini. The same editor 
  configuration is used by all tools (decoder, compiler, assembler,....). 
  Changes to the global mcutools.ini are stored when the application is closed and not 
  when the save command is chosen from the menu. 
-The local editor is shared among all tools using the same project file (usually 
  project.ini). 
- Which editor type is used is stored in the project file. The default is the global 
  editor.
- All error messages are now written to stdout. With WinEdit, the 'Capture Output' 
  feature in the Project->Configure dialog can be used to get the error feedback. In other 
  applications as Microsoft Visual C++ Developer Studio (MSDEV) or the cmd.exe 
  command shell, it is necessary to use the new launcher application 'piper.exe' to get 
  direct error feedback. The linker is a Win32 Window application and this type of 
  application is not expected to have reasonable output. Therefore, the command shell 
  'cmd.exe' or MSDEV do not use the stdout file. 
  The 'piper.exe' tool is actually a Win32 command line application and therefore 
  MSDEV or 'cmd.exe' use the stdout. 
  The first argument of 'piper.exe' is used as application to be called with the 
  remaining options. The output of the started application is then written to standard 
  output. 
  The maker itself does not need the launcher application "piper.exe" to display the 
  output directly. Instead, the launcher functionality is directly build-in. 
  To print the list of option in a command window use :
	  piper.exe linker.exe -h

List of fixed Bugs
- The range checking for the HC05 HC08 and HC11 for signed fixups was not correct. 
  Note the tool, which generates the fixup can also specify not to check the range, so 
  still, not all overflows may be checked.

List of known Bugs
- The linker does not allow spaces in filenames in the prm file. In the command line, in 
  paths and in the default.env spaces in filenames are allowed.
- The linker may put absolute global not initialized variables into the zero out. 
  E.g. int i@267; 
  Is initialized with zero at startup.
- The ELF Linker does not always allocate the right size for undefined global objects. 
  E.g. 
  extern int i; /* with no definition "int i;" anywhere */


RELEASE NOTES SmartLinker V5.0.1
The new linker includes all the functionality of the previous HIWARE and ELF linkers.

List of new Features
- Support of filenames longer than eight characters. Filenames with spaces are not yet 
  completely supported and tested.
- New help file with description of all options.
- New User interface, supporting drag and drop, history,...... .
- New option -Lic to display license information (note: this information is also 
  displayed in the about box)
- New option -Lica to display license information of all modules in the executable 
  directory.
- This linker merges the functionality of the previous ELF/DWARF Linker V5.0.34 and 
  the HIWARE Linker V2.7.50 (see also release notes for these versions below). 
  Note: This linker can link an application consisting of only HIWARE Object File 
  Format object files or ELF Object File Format object files. It cannot link 
  applications, which consists of some ELF and some HIWARE Object File Format 
  files.
- For the HIWARE linker it means that now there is the same consistent user 
  interface as for the ELF/DWARF Linker before.
- New option -F(h|e|a): The linker is now able to link files as ELF/DWARF or as 
  HIWARE object files. The default of the -F option (-Fa) is to detect automatically 
  the object file format. Using -Fh the Linker is forced to link HIWARE object files, 
  using -Fe the Linker is forced to link only ELF/DWARF object files.
- New option -N to display a message box in case of an error
- New relocation type for 32bit relative branches implemented in HIWARE Linker 
  part. This relocation type is necessary for the CM68k compiler using the -PIC 
  (Position Independent Code) feature.

List of fixed Bugs
- Linking ELF Files with ROM libraries did sometimes give strange errors because of 
  the debug info.

List of known Bugs
- none


RELEASE NOTES ELF SmartLinker V5.0.34

List of new Features
- none

List of fixed Bugs
- Variables placed at absolute addresses in the source by the '@' operator with an 
  initial assignment, were not initialized (They did not appear in the copy down 
  section). Now this works correctly.

List of known Bugs
- none


RELEASE NOTES ELF SmartLinker V5.0.33

List of new Features
- Link global constructors only, when any object in the implementation module is 
  referenced.
- Support for exported EQU labels.
- The linker has been extended to support exported EQU labels. This is only required 
  for assembly input file.


RELEASE NOTES ELF SmartLinker V5.0.32

List of new Features
- The text displayed in the Advanced Options dialog box under the list box where the 
  options are enumerated can now be different from the text displayed in the list box.


RELEASE NOTES ELF SmartLinker V5.0.30
List of fixed Bugs
- For HC05 only. The page boundary has been set to 0xffff.


RELEASE NOTES ELF SmartLinker V5.0.29

List of new Features
- Symbols defined in an absolute section are now always linked with the application.

List of fixed Bugs
- Information in the startup structure is correctly initialized when far data pointers are 
  used in the application.

Limitation
	
- Following commands are not implemented in the linker V2.7.25:
  - START_DATA
  - INCLUDE
  - HEXFILE
  - LAYOUT.
- Following features are not supported yet:
  - Usage of constant expressions in linker PRM file
  - The start up function currently delivered does not handle the startup structure from 
    the ROM libraries.
  - The global variables located in the ROM libraries will not be initialized at startup. 
    We recommend initializing all of them in the source code.


RELEASE NOTES ELF SmartLinker V5.0.28

List of fixed Bugs
- For PC version, file names specified in the PRM file are now case insensitive. The 
  files test.o and TEST.O are supposed to be the same input file.
- When the last line in a PLACEMENT block is not terminated with a ;, the linker 
  now generates an error message.
- In the previous version, the linker returns without generating an error message or an 
  ABS file.

Limitation
	
- Following commands are not implemented in the linker V2.7.25:
  - START_DATA
  - INCLUDE
  - HEXFILE
  - LAYOUT.
- Following features are not supported yet:
  - Usage of constant expressions in linker PRM file
  - The start up function currently delivered does not handle the startup structure from 
   the ROM libraries.
  - The global variables located in the ROM libraries will not be initialized at startup. 
    We recommend initializing all of them in the source code.


RELEASE NOTES ELF SmartLinker V5.0.27

List of new Features
- A message has been added in the linker window indicating that a S-Record file is 
generated.
Limitation
	
- Following commands are not implemented in the linker V2.7.25:
  - START_DATA
  - INCLUDE
  - HEXFILE
  - LAYOUT.
- Following features are not supported yet:
  - Usage of constant expressions in linker PRM file
  - The start up function currently delivered does not handle the startup structure from 
    the ROM libraries.
  - The global variables located in the ROM libraries will not be initialized at startup. 
    We recommend initializing all of them in the source code.


RELEASE NOTES ELF SmartLinker V5.0.26

List of new Features
- The linker generates now automatically a S-Record file.

List of fixed Bugs
- Improvement of the handling of absolutely allocated objects.
	
- The section created for an absolutely allocated object depends on the type or the 
  object located there. Constant variables are located in a constant section, functions 
  are located in a code section and variables are located in a data section.
- Improvement of the syntax in the ENTRIES block.
- Objects, which are only declared, but never defined in the application, are now 
  allocated in predefined section .bss.

List of known Bugs
	
- The linker cannot be started on a PC under Windows NT.

Limitation
- Following commands are not implemented in the linker V2.7.24:
  - START_DATA
  - INCLUDE
  - HEXFILE
  - LAYOUT.
- Following features are not supported yet:
  - Usage of constant expressions in linker PRM file
  - The start up function currently delivered does not handle the startup structure from 
    the ROM libraries.
  - The global variables located in the ROM libraries will not be initialized at startup. 
    We recommend initializing all of them in the source code.


RELEASE NOTES ELF SmartLinker V5.0.25

List of new Features
- The linker generates now automatically a S-Record file.

List of fixed Bugs
- Improvement of the handling of absolutely allocated objects.
	
- The section created for an absolutely allocated object depends on the type or the 
  object located there. Constant variables are located in a constant section, functions 
  are located in a code section and variables are located in a data section.
- Improvement of the syntax in the ENTRIES block.
- Objects, which are only declared, but never defined in the application, are now 
  allocated in predefined section .bss.
  List of known Bugs
- The linker cannot be started on a PC under Windows NT.

Limitation
- Following commands are not implemented in the linker V2.7.24:
  - START_DATA
  - INCLUDE
  - HEXFILE
  - LAYOUT.
- Following features are not supported yet:
  - Usage of constant expressions in linker PRM file
  - The start up function currently delivered does not handle the startup structure from 
    the ROM libraries.
  - The global variables located in the ROM libraries will not be initialized at startup. 
    We recommend initializing all of them in the source code.


RELEASE NOTES ELF SmartLinker V5.0.24

List of fixed Bugs
- Improvement of the handling of absolutely allocated objects.
	
- The section created for an absolutely allocated object depends on the type or the 
  object located there. Constant variables are located in a constant section, functions 
  are located in a code section and variables are located in a data section.
- Improvement of the syntax in the ENTRIES block.
- Objects, which are only declared, but never defined in the application, are now 
  allocated in predefined section .bss.
  List of known Bugs
	
- The linker cannot be started on a PC under Windows NT.
Limitation
	
- Following commands are not implemented in the linker V2.7.24:
  - START_DATA
  - INCLUDE
  - HEXFILE
  - LAYOUT.
- Following features are not supported yet:
  - Usage of constant expressions in linker PRM file
  - The start up function currently delivered does not handle the startup structure from 
    the ROM libraries.
  - The global variables located in the ROM libraries will not be initialized at startup. 
    We recommend to initialize all of them in the source code.


RELEASE NOTES ELF SmartLinker V5.0.22

List of fixed Bugs
- Improvement of the generation of the section header table for ORG sections.
	
- The previous linker was generating incorrect information in certain circumstances
List of known Bugs
	
- The linker cannot be started on a PC under Windows NT.
Limitation
	
- Following commands are not implemented in the linker V2.7.13:
  - START_DATA
  - INCLUDE
  - HEXFILE
  - LAYOUT.
	
- Following features are not supported yet:
  - Usage of constant expressions in linker PRM file
  - The start up function currently delivered does not handle the startup structure from 
    the ROM libraries.
  - The global variables located in the ROM libraries will not be initialized at startup. 
    We recommend to initialize all of them in the source code.


RELEASE NOTES ELF SmartLinker V5.0.20

List of fixed Bugs
	
- The linker supports now relocations on the symbol number 0.
	
- Initialized variables are inserted in the executable file symbol table, even when 
there is no copy down structure available in the startup structure.
List of known Bugs
	
- The linker cannot be started on a PC under Windows NT.
	
- The linker does not support file names bigger than eight characters.
Limitation
	
- Following commands are not implemented in the linker V2.7.20:
  - START_DATA
  - INCLUDE
  - HEXFILE
  - LAYOUT.
  - OBJECT_ALLOCATION
- Following features are not supported yet:
  - Usage of constant expressions in linker PRM file
  - The start up function currently delivered does not handle the startup structure from 
    the ROM libraries.
  - The global variables located in the ROM libraries will not be initialized at 
    startup. We recommend initializing all of them in the source code.
  - No debugging support for functions located in a ROM library. This will be 
    implemented in a future release.
  - The burner is not integrated in the linker now.


RELEASE NOTES ELF SmartLinker V5.0.18

List of fixed Bugs
- Sections, which size is equal to 0, are assigned a start address.
- Assembly sections containing only a symbol initialized with EQU * are assigned an address.
- Sections, which do not contain any symbols, are linked with the application.

List of known Bugs
- The linker cannot be started on a PC under Windows NT.

Limitation
- Following commands are not implemented in the linker V2.7.13:
  - START_DATA
  - INCLUDE
  - HEXFILE
  - LAYOUT.
- Following features are not supported yet:
  - Usage of constant expressions in linker PRM file
  - The start up function currently delivered does not handle the startup structure from 
    ROM libraries.
  - The global variables located in the ROM libraries will not be initialized at startup. 
    We recommend initializing all of them in the source code.


RELEASE NOTES ELF SmartLinker V5.0.17

List of new Features
- The linker supports now ROM libraries (See technical note TN05).
	
- The current implementation does not provide debug information for the ROM 
  libraries. This will be implemented in a next release.
  List of known Bugs
	
- The linker cannot be started on a PC under Windows NT.

Limitation
- Following commands are not implemented in the linker V2.7.13:
  - START_DATA
  - INCLUDE
  - HEXFILE
  - LAYOUT.
- Following features are not supported yet:
  - Usage of constant expressions in linker PRM file
  - The start up function currently delivered does not handle the startup structure from 
    the ROM libraries.
  - The global variables located in the ROM libraries will not be initialized at startup. 
    We recommend initializing all of them in the source code.


RELEASE NOTES ELF SmartLinker V5.0.15

List of fixed Bugs
- All files are now closed, when the linker exits.
	
List of known Bugs
- The linker cannot be started on a PC under Windows NT.

Limitation
- Following commands are not implemented in the linker V2.7.13:
  - START_DATA
  - INCLUDE
  - HEXFILE
  - LAYOUT.
	
- Following features are not supported yet:
  - ROM libraries
  - Usage of constant expressions in linker PRM file
  - I


RELEASE NOTES ELF SmartLinker V5.0.14

List of fixed Bugs
- Improvement of the handling from object file where a single section containing 
  uninitialized variable is defined.

List of known Bugs
- The linker cannot be started on a PC under Windows NT.

Limitation
- Following commands are not implemented in the linker V2.7.13:
- START_DATA
- INCLUDE
- HEXFILE
- LAYOUT.
- Following features are not supported yet:
- ROM libraries
- Usage of constant expressions in linker PRM file
- I


RELEASE NOTES ELF SmartLinker V5.0.13

List of fixed Bugs
- Handling from assembly object file has been improved.
	This version of the linker is now able to handle assembly object file correctly. 
  Handling from absolutely allocated object is correct now.
- Segment overflow is also detected now when the segment end address is 0xFFFFFFFF
- The previous version of the linker did not detect the segment overflow.

List of known Bugs
- The linker cannot be started on a PC under Windows NT.

Limitations 
- The linker cannot be started on a PC under Windows NT.
- Following commands are not implemented in the linker V2.7.13:
- START_DATA
- INCLUDE
- HEXFILE
- LAYOUT.
- Following features are not supported yet:
- ROM libraries
- Usage of constant expressions in linker PRM file


RELEASE NOTES HIWARE SmartLinker V2.7.50

List of New Features
- Handling new relocations (32bit branch relative). You need this version of the 
linker if you are using a M68k Compiler V5.0.08 or higher

List of Fixed Bugs
- Crash in case of assembler object file corrected

List of Known Bugs
- none


RELEASE NOTES HIWARE SmartLinker V2.7.49

List of New Features
- For HC05 and ST7 allocate local overlap objects in global constructors

List of Fixed Bugs
- Stack size for interrupt vector functions got very large, because some upper bits 
  were not masked out.

List of Known Bugs
- none


RELEASE NOTES HIWARE SmartLinker V2.7.48

List of New Features
- C++ support: Support global constructors.
- The Linker does not link global constructors and the objects they reference, if their 
  implementation module is not used. (E.g. if you are linking an ANSI-C application 
  with the Ansi library including the C++ library, then the linking of the C++ globals 
  is suppressed.)
- The Linker is compatible to the latest versions of the HIWARE+ Compiler 
  family when linking C++. The Linkers until version V.2.7.47 are not! With all 
  later versions of the HIWARE+ Compilers a new Linker (version >= V.2.7.48) 
  has to be used. However, you can use the older versions of the compilers with 
  the new Linker. If you are not using C++, no problems arise.

List of Fixed Bugs
- none

List of Known Bugs
- none


RELEASE NOTES HIWARE SmartLinker V2.7.47

List of New Features
- C++ support: The Linker links now virtual function tables and compiler generated 
  functions for classes only once, and not for each module, that imports them 
  separately.

List of Fixed Bugs
- The linker does not claim the naming of user defined segments with reserved names 
  for special segments. The giving of names reserved led to an allocation error by the 
  linker that was not reported. Now the linker issues the message "Allocation of object 
  <objectName> failed" if he fails to allocate an object. If this message occurs, rename 
  the segment where the object is placed in. For older versions of the Linker, please 
  check all your segment names for being reserved by the Linker.
	  EXAMPLE:
	  
	  #pragma CONST_SEG ROM_VAR
	  const char cste[] = {1,2,3,4};
	  char *ch;
	  void main(void) {
	    ch = &cste;
	  }
- ROM_VAR is a segment name reserved by the Linker. With the old Linker 'cste' 
  was not allocated (or worse: allocated at address 0xFFFFFFFF = -1). Rename 
  ROM_VAR to MY_ROM_VAR (also in the .PRM file) and the Linker succeeds.
- The new Linker V.2.7.47 will report "Allocation of object _cste failed".

List of Known Bugs
- none


RELEASE NOTES HIWARE SmartLinker V2.7.46

List of New Features
- none

List of Fixed Bugs
- If you declare a read only (const) segment that is referenced by several modules, it 
  happened that other segments declared as read write segments were also classified 
  as read only segments to be initialized on load. This lead to a bug in the load 
  process on the target. The detection algorithm of initialized read only sections is 
  now corrected.		

List of Known Bugs
- none


RELEASE NOTES HIWARE SmartLinker V2.7.45

List of New Features
- none

List of Fixed Bugs
- The HC05 does not have a stack. For local objects, the Linker now supports the 
  allocation of overlap space also for additional entries. 
- Older versions of HIWARE Compilers did not report references to unknown 
  objects as error. This lead to inconsistency with the linker. Later versions of the 
  HIWARE Compilers do avoid this. This fix is made for the older versions.

List of Known Bugs
- none


RELEASE NOTES HIWARE SmartLinker V2.7.44

List of New Features
- none

List of Fixed Bugs
- The Mapping of the Addresses for the HC16 is now correct. 24 Bit Addresses are 
  mapped to 20 Bit addresses by clearing the high nibble of the bank descriptor. 
  So the address 0x3FFFFF for example is mapped to 0x0FFFFF.

List of Known Bugs
- none
 

RELEASE NOTES HIWARE SmartLinker V2.7.43

List of New Features
- none

List of Fixed Bugs
- With the keyword VECTOR in the link parameter file, you can link an interrupt 
  vector to one of your functions in your project. Followed by ADDRESS you can 
  specify the physical address of the vector in your target memory. Followed directly 
  by a number, it specifies the vector number that is mapped to the physical address 
  by the Linker. This calculation didn't work correctly for the following targets:
  - 	HC05, HC08, HC11 and HC12.
  - 	For these targets the vector with number 0 was mapped to address 0x0000, 1 to 0x0002, 2 to 0x0004,.....
  - 	Correct is the mapping from number 0 to address 0xFFFE, 1 to 0xFFFC, 
  - 	2 to 0xFFFA, 	.....
  -       This bug has now been fixed.	

List of Known Bugs
- none


RELEASE NOTES HIWARE SmartLinker V2.7.42

List of New Features
- With a new option in the link parameter (.PRM) file, you can specify if you want 
  the absolute variables initialized, that are not referenced, not to be linked. In the 
  versions up to V.2.7.38 of the HIWARE Linker, this was default. In the latest 
  versions from V.2.7.39 on, all variables that are absolute and initialized are linked 
  and allocated in ROM. Therefore, the other case is now default. If you want to 
  suppress the linking of all non-referenced variables, you have to set the link 
  parameter switch "LINKGLOBAL" to "OFF".
  Examples:
  - LINKGLOBAL ON	/*  Links all variables initialized variables absolute  (default) */

  - LINKGLOBAL OFF	/*  Links only variables referenced  (default) */

- In the older versions of the HIWARE Linker, you could not include files in the 
  section or in the placement description. Now you can write link parameter files, that 
  reference part of their memory layout over include files. This makes you able to 
  write link parameter of the same target group in a more structured way.
- Here are two examples equivalent (for PLACEMENTS the same way) :


  Before:
	  ...
	  SECTIONS 
	      MY_RAM = READ_WRITE  0x4000 TO 0x43FF;
	      MY_RAM2 = READ_WRITE  0x8000 TO 0x83FF;
	      MY_ROM = READ_ONLY   0x1000 TO 0x3FFF;
	  
	  PLACEMENT
	  . . .
	  
	  
  Now:
	  ...
	  SECTIONS 
	    INCLUDE incl1.inc
	    INCLUDE incl2.inc
	  	        MY_RAM2 = READ_WRITE  0x8000 TO 0x83FF;
	  
	  PLACEMENT
	  ...
	  
  File incl1.inc:
	    MY_RAM = READ_WRITE  0x4000 TO 0x43FF;

  File incl2.inc:
	    MY_ROM = READ_ONLY   0x1000 TO 0x3FFF;

List of Fixed Bugs
- none

List of Known Bugs
- none


RELEASE NOTES HIWARE SmartLinker V2.7.40

List of New Features
- The Linker has been extended with a new fixup type 'm' required for the HC12. It's 
  now possible to define a 16 bit PC indirect access relative to address 0x0000.
- Banked Memory Model support for HC05 and HC08.

List of Fixed Bugs
- The Linker had a crash in the Handling of large lists of pre-initialized variables, 
  because the input file buffer had a limited size of 8K. Now this size has been raised 
  to 32K.

List of Known Bugs
- none

