[Picolibc] Picolibc version 1.0 released

Keith Packard keithp at keithp.com
Tue Sep 24 21:16:41 PDT 2019


I finally tagged version 1.0 of Picolibc, a libc designed for limited
memory systems based on code from newlib and avr-libc.

Here's some highlights:

 1. Replaced stdio. In place of the large and memory-intensive stdio
    stack found in newlib, picolibc's stdio is derived from avrlibc's
    code. The ATmel-specific assembly code has been replaced with C,
    and the printf code has seen significant rework to improve
    standards conformance. This work was originally done for
    newlib-nano, but it's a lot cleaner looking in picolibc.

 2. Switched from 'struct _reent' to TLS variables for per-thread
    values. This greatly simplifies the library and reduces memory
    usage for all applications -- per-thread data from unused portions
    of the library will not get allocated for any thread. On RISC-V,
    this also generates smaller and faster code. This also eliminates
    an extra level of function call for many code paths.

 3. Switched to the 'meson' build system. This makes building the
    library much faster and also improves the maintainability of the
    build system as it eliminates a maze of twisty autotools configure
    scripts.

 4. Updated the math test suite to use glibc as a reference instead of
    some ancient Sun machine.

 5. Manually verified the test results to see how the library is
    doing; getting automated testing working will take a lot more
    effort as many (many) tests still have invalid 'correct' values
    resulting in thousands of failure.

 6. Remove unused code with non-BSD licenses. There's still a pile of
    unused code hanging around, but all non-BSD licensed bits have
    been removed to make the licensing situation clear. Picolibc is
    BSD licensed.

-- 
-keith
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://keithp.com/pipermail/picolibc/attachments/20190924/d3958c9d/attachment.sig>


More information about the Picolibc mailing list