Presented by

  • Keith Packard

    Keith Packard

    Keith Packard has been developing free software since 1986, working on the X Window System, Linux, and rocketry electronics. He is currently a Principle Engineer with SiFive and a consultant on Linux Graphics for Valve Corporation. Keith received a Usenix Lifetime Achievement award in 1999, an O'Reilly Open Source award in 2011 and sits on the foundation board. He has spoken at numerous free software events around the world, including Linux Con, the Plumber's Conference, Linux Conf Australia, FOSDEM, FISL, Guadec, Akademy, OSCON and many others. Keith would appreciate being referred to with he, him and his pronouns.


8- and 16- bit micro-controller development environments generally come with a standard C library implementation offering math, string and "OS" functionality. The same is not universally true for 32-bit or larger systems, such as Risc-V and ARM. When building embedded systems for these targets, the developer often has to find (and build) a suitable C library as a part of the project. Building a common C library for these systems will reduce the development costs for systems based on these more capable processors. This talk will start by presenting a library built by combining newlib and a heavily modified avr-libc. This library blends the robust functionality of newlib's math and string functions with the lightweight stdio design from avr-libc. Next, some proposals on changes in this library going forward so that it can be usable by many developers working on both ARM and Risc-V projects. Finally, I'll present some proposed changes in GCC's handling of multilib paths to automate selection of libraries based on target architecture. Linux Australi: YouTube: