Using and Porting GNU CC - Standard Libraries

Node: Standard Libraries Next: Disappointments Prev: Fixed Headers Up: Trouble

Standard Libraries

GNU CC by itself attempts to be what the ISO/ANSI C standard calls a conforming freestanding implementation. This means all ANSI C language features are available, as well as the contents of `float.h', `limits.h', `stdarg.h', and `stddef.h'. The rest of the C library is supplied by the vendor of the operating system. If that C library doesn't conform to the C standards, then your programs might get warnings (especially when using `-Wall') that you don't expect.

For example, the sprintf function on SunOS 4.1.3 returns char * while the C standard says that sprintf returns an int . The fixincludes program could make the prototype for this function match the Standard, but that would be wrong, since the function will still return char * .

If you need a Standard compliant library, then you need to find one, as GNU CC does not provide one. The GNU C library (called glibc ) has been ported to a number of operating systems, and provides ANSI/ISO, POSIX, BSD and SystemV compatibility. You could also ask your operating system vendor if newer libraries are available.


Next: Disappointments Up: Trouble