Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
47 lines (36 sloc) 1.67 KB


Copyright © 2018,2019 Keith Packard

PicoLibc is library offering standard C library APIs that targets small embedded systems with limited RAM. PicoLibc was formed by blending code from Newlib and AVR Libc.


Picolibc source comes from a variety of places and has a huge variety of copyright holders and license texts. While much of the code comes from newlib, none of the GPL-related bits are left in the repository, so all of the source code uses BSD-like licenses, a mixture of 2- and 3- clause BSD itself and a variety of other (mostly older) licenses with similar terms.

Supported Architectures

Picolibc inherited code for a lot of architectures from newlib, but at this point only has code to build for the following targets:

  • ARM (32-bit only)
  • i386 (Linux hosted, for testing)
  • RISC-V (both 32- and 64- bit)
  • x86_64 (Linux hosted, for testing)

Supporting architectures that already have newlib code requires:

  1. newlib/libc/machine/architecture/ to build any architecture-specific libc bits
  2. newlib/libm/machine/architecture/ to build any architecture-specific libm bits
  3. picocrt/machine/architecture source code and build bits if you need custom startup code for the architecture.
  4. cross-gcc-triple.txt to configure the meson cross-compilation mechanism to use the right tools
  5. do-architecture-configure to make testing the cross-compilation setup easier.


You can’t perform that action at this time.