Documentation  |   Table of Contents   |  < Previous   |  Next >   |  Index

4    Palm OS-Specific Libraries

Palm OS® Protein C/C++ Compiler Language & Library Reference

Palm OS® Developer Suite

An integral part of the Palm OS® Protein C/C++ Compiler are the standard headers, startup code, and run-time libraries. The supplied run-time libraries serve several purposes:

  • cpp — The cpp libraries implement objects common to any C++ standard library (e.g., the standard exception objects).
  • eabi — The eabi libraries implement preliminary ARM EABI support on top of Palm OS. They implement the necessary EABI support routines, translating them into Palm OS specific routine calls.
  • pacc — The pacc libraries implement objects and routines that are unique or particular to the Palm OS compiler and are not required or useful with any other tool chain.
  • STLport — The C++ standard template library features thread safety, improved memory utilization, improved run-time efficiency, and new data structures, including hash tables.
  • support — This is an implementation of the floating-point and integral support functions. The Palm OS compiler automatically links with this library, however, the FloatMgr library should also be linked.

The Palm OS Implementation of the Standard C Library (libc) ^TOP^

The Palm OS implementation of the standard C library is derived from the NetBSD ARM source base, with some modification due to the non-Unix nature of Palm OS:

  • In the future, it may be possible to direct stdout/stdin operations through other I/O devices; no timeline for this has been stated.
  • The C99 header <complex.h> is not supported in this version of libc. Applications using complex numbers should use STLport or another ANSI compliant C++ library.
  • The C99 header <fenv.h> is not supported in this version of libc. MathLib does not raise floating exceptions and does not respond to varying rounding modes. Checking errno and the return value can handle exceptional cases.
  • There is also no <setjmp.h> implementation. The <ErrTryCatch.h> header can provide much of the same functionality, but the standard C interface is not yet supported.
  • In addition, the following POSIX header files are not documented in this reference because they are either fairly self-explanatory or do not contain any runtime library functions that are provided by the operating system.
    • <climits.h>
    • <inttypes.h>
    • <limits.h>
    • <namespace.h>
    • <paths.h>
    • <signal.h>
    • <stdint.h>
    • <termios.h>