Revisions for Using ARM C and C++ Libraries and Floating-Point Support

This appendix describes the technical changes between released issues of this book.

Table 26. Differences between issue G and issue H

ChangeTopics affected

Noted the correct use of _init_alloc(base, top).

Using a heap implementation from bare machine C

Added thread safety information about the Rogue Wave Standard C++ library.

Thread safety in the ARM C++ library

Table 27. Differences between issue F and issue G

ChangeTopics affected

Where appropriate, rather than 16-bit Thumb or 32-bit Thumb, referred instead to Thumb or Thumb-2 technology.

Various topics
Explicitly stated that there are two ways to tailor I/O functions, with guidance about use.Tailoring input/output functions in the C and C++ libraries
Made the terms for system I/O functions more consistent, and gave an example of how to redefine the functions.
Clarified the type of division by zero in the example. Removed the incorrect floating point error values for type, and gave a reference for the correct ones.ISO-compliant implementation of signals supported by the signal() function in the C library and additional type arguments

Table 28. Differences between issue E and issue F

ChangeTopics affected
Changed the ARMCCnnLIB environment variable to ARMCCnLIB.ARM C and C++ library directory structure
Added the values for the arguments to the SIGFPE signal.ISO-compliant implementation of signals supported by the signal() function in the C library and additional type arguments
Removed clock() from the list of unsupported ISO C features.ISO C features missing from microlib

Where appropriate:

  • prefixed Thumb with 16-bit

  • changed Thumb-1 to 16-bit Thumb

  • changed Thumb-2 to 32-bit Thumb.

Various topics

Table 29. Differences between issue D and issue E

ChangeTopics affected
Corrected the library naming conventions.C and C++ library naming conventions
Added #pragma import(__use_smaller_memcpy).Differences between microlib and the default C library

Table 30. Differences between issue C and issue D

ChangeTopics affected

Added a table footnote for signals SIGILL, SIGINT, SIGSEGV, and SIGTERM.

Changed the description for SIGCPPL.

Also updated the Caution.

ISO-compliant implementation of signals supported by the signal() function in the C library and additional type arguments
Added subtitles to the topic.Definition of locale data blocks in the C library

Table 31. Differences between issue B and issue C

ChangeTopics affected
Removed alloca() from the first sentence.Library heap usage requirements of the ARM C and C++ libraries
Removed the item describing alloca state from the list.Use of the __user_libspace static data area by the C libraries
Reworded the alloca.h table entry.Building an application without the C library

Table 32. Differences between issue A and issue B

ChangeTopics affected
New topic.

Stack pointer initialization and heap bounds

New topic.Defining __initial_sp, __heap_base and __heap_limit
New topic.Extending heap size at runtime
New topic.mathlib double and single-precision floating-point functions
Textual clarification.Entering and exiting programs linked with microlib
__user_setup_stackheap() clarification.Direct semihosting C library function dependencies
__user_libspace() is a legacy function.Re-implementation of legacy function __user_libspace() in the C library
Reliance of remquo(), remquof(), and remquol(), on implementation-defined integer value.How the ARM C library fulfills ISO C specification requirements
__user_initial_stackheap() downgraded to legacy support only.Legacy support for __user_initial_stackheap()
Topic obsolete.Memory models and the C library
Topic obsolete.Methods of modifying the runtime memory model with the C library
Topic obsolete.User-defined C library memory models

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0475H