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)
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 oflibc
. Applications using complex numbers should use STLport or another ANSI compliant C++ library. - The C99 header <
fenv.h
> is not supported in this version oflibc
. MathLib does not raise floating exceptions and does not respond to varying rounding modes. Checkingerrno
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.