Newlib
   HOME

TheInfoList



OR:

Newlib is a C standard library implementation intended for use on
embedded systems An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded'' ...
. It is a conglomeration of several library parts, all under
free software licenses A free-software license is a notice that grants the recipient of a piece of software extensive rights to modify and redistribute that software. These actions are usually prohibited by copyright law, but the rights-holder (usually the author) ...
that make them easily usable on embedded products. It was created by
Cygnus Support Cygnus Solutions, originally Cygnus Support, was founded in 1989 by John Gilmore, Michael Tiemann and David Henkel-Wallace to provide commercial support for free software. Its tagline was: ''Making free software affordable''. For years, employee ...
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

The section System Calls of the Newlib documentation describes how it can be used with many
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
s. Its primary use is on embedded systems that lack any kind of operating system; in that case it calls a
board support package In embedded systems, a board support package (BSP) is the layer of software containing hardware-specific boot firmware and device drivers and other routines that allow a given embedded operating system, for example a real-time operating system ( ...
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

Newlib is included in commercial GCC distributions by Atollic,
CodeSourcery Siemens EDA is a United States, US-based electronic design automation (EDA) multinational corporation for electrical engineering and electronics, headquartered in Wilsonville, Oregon, Wilsonville, Oregon. Founded in 1981 as Mentor Graphics, the ...
, Code Red, KPIT, Red Hat and others, and receives support from major embedded-processor architecture vendors such as
ARM In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between th ...
and
Renesas is a Japanese semiconductor manufacturer headquartered in Tokyo, Japan, initially incorporated in 2002 as Renesas Technology, the consolidated entity of the semiconductor units of Hitachi and Mitsubishi excluding their dynamic random-access memo ...
. It is used as the standard C library in Cygwin, as well as being one standard C library among several for
AmigaOS 4 AmigaOS 4 (abbreviated as OS4 or AOS4) is a line of Amiga operating systems which runs on PowerPC microprocessors. It is mainly based on AmigaOS 3.1 source code developed by Commodore, and partially on version 3.9 developed by Haage & Partne ...
. , 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 AIBO (''stylized aibo, Artificial Intelligence Robot'', homonymous with , "pal" or "partner" in Japanese) is a series of robotic dogs designed and manufactured by Sony. Sony announced a prototype Aibo in mid-1998, and the first consumer model wa ...
is also based on Newlib on top of the non-Unix Aperios. , Google Native Client SDK (NaCl) includes Newlib as the default C library over
glibc The GNU C Library, commonly known as glibc, is the GNU Project's implementation of the C standard library. Despite its name, it now also directly supports C++ (and, indirectly, other programming languages). It was started in the 1980s by ...
. In 2019,
Keith Packard Keith Packard (born April 16, 1963) is a software developer, best known for his work on the X Window System. Packard is responsible for many X extensions and technical papers on X. He has been heavily involved in the development of X since the ...
released ''Picolibc'',Picolibc: C Libraries for Smaller Embedded Systems
/ref> 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

;Other
C standard libraries The C standard library or libc is the standard library for the C programming language, as specified in the ISO C standard. ISO/IEC (2018). '' ISO/IEC 9899:2018(E): Programming Languages - C §7'' Starting from the original ANSI C standard, it was ...
* Bionic libc *
dietlibc dietlibc is a C standard library released under the GNU General Public License Version 2, and proprietary licenses are also available. It was developed with the help of about 100 volunteers by Felix von Leitner with the goal to compile and lin ...
* EGLIBC *
glibc The GNU C Library, commonly known as glibc, is the GNU Project's implementation of the C standard library. Despite its name, it now also directly supports C++ (and, indirectly, other programming languages). It was started in the 1980s by ...
*
klibc In computing, klibc is a minimalistic subset of the standard C library developed by H. Peter Anvin. It was developed mainly to be used during the Linux startup process, and it is part of the early user space, i.e. components used during kernel ...
*
musl musl is a C standard library intended for operating systems based on the Linux kernel, released under the MIT License. It was developed by Rich Felker with the goal to write a clean, efficient and standards-conformant libc implementation. O ...
*
uClibc __NOTOC__ In computing, uClibc (sometimes written µClibc) is a small C standard library intended for Linux kernel-based operating systems for embedded systems and mobile devices. uClibc was written to support μClinux, a version of Linux no ...
*
BSD libc The C standard library or libc is the standard library for the C programming language, as specified in the ISO C standard.ISO/IEC (2018). '' ISO/IEC 9899:2018(E): Programming Languages - C §7'' Starting from the original ANSI C standard, it was d ...
* picolibc


References


Further reading

*


External links


Newlib mailing list
* {{CProLang C standard library Free computer libraries Free software programmed in C Interfaces of the Linux kernel Linux APIs AmigaOS 4 software