Newlib is a C standard library implementation intended for use on embedded systems. It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products.

Newlib
Original author(s)Cygnus Support
Developer(s)Red Hat
Stable release
4.4.0 / December 31, 2023; 10 months ago (2023-12-31)[1]
Repository
Operating systemCross-platform[citation needed]
TypeRuntime library
LicenseVarious MIT/BSD-like licenses
Websitewww.sourceware.org/newlib/

It was created by Cygnus Support as part of building the first GNU cross-development toolchains. It is now maintained by Red Hat developers Jeff Johnston and Corinna Vinschen, and is used in most commercial and non-commercial GCC ports for non-Linux embedded systems.

System Calls

edit

The section System Calls[2] of the Newlib documentation describes how it can be used with many operating systems. Its primary use is on embedded systems that lack any kind of operating system; in that case it calls a board support package that can do things like write a byte of output on a serial port, or read a sector from a disk or other memory device.

Inclusion

edit

Newlib is included in commercial GCC distributions by Atollic, CodeSourcery, Code Red, KPIT, Red Hat and others, and receives support from major embedded-processor architecture vendors such as ARM and Renesas. It is used as the standard C library in Cygwin, as well as being one standard C library among several for AmigaOS 4.

As of 2004, KallistiOS, an independent SDK targeting the Sega Dreamcast, has used Newlib as its standard C library, shipping it with many commercial titles on the platform.[3]

As of 2007, devkitARM and devkitPPC, toolchains targeted at homebrew development for commercial game systems, include Newlib as their C library. The Open-R SDK for Sony AIBO is also based on Newlib on top of the non-Unix Aperios.

As of 2013, Google Native Client SDK (NaCl) includes Newlib as the default C library over glibc.[4]

In 2019, Keith Packard released Picolibc,[5] a library offering standard C library APIs that targets small embedded systems with limited RAM, based on blending code from Newlib and AVR Libc.

See also

edit
Other C standard libraries

References

edit
  1. ^ "Newlib releases".
  2. ^ System Calls, The Red Hat newlib C Library
  3. ^ "KallistiOS SourceForge Repository". Retrieved 9 January 2024.
  4. ^ "Native Client: Getting Started Tutorial". Retrieved 16 February 2013.
  5. ^ Picolibc: C Libraries for Smaller Embedded Systems

Further reading

edit
edit