Recent progress on libc

I thought it might be nice to provide a consolidated update of progress on LLVM’s libc, so here it is.

Math updates:

Stdio updates

  • Printf Conversion status: Decimal floating point conversions are still in progress.
  • Printf compiled size (with size saving enabled) was evaluated, size is approximately 5.8KB in a final binary

Thread library updates

  • Working on pthread_setspecific and related API.

Misc updates

3 Likes

Sorry to hijack this progress update. I’m trying to understand more about the goals/use case for the LLVM libc.

This does not mean that one can mix llvm-libc with the system-libc. Also, it does not mean that layering is the only way to use llvm-libc. What it means is that, llvm-libc can optionally be packaged in a way that it can delegate parts of the functionality to the system-libc.

Does this mean that the LLVM libc could be used as the system libc?

The idea is to make LLVM libc complete enough for it to be a drop-in replacement for your system libc. I don’t think it is complete enough to serve as a drop-in replacement today for everything on your system, but there is enough already to serve the libc needs of simple applications. Stay tuned for more information - we plan to make regular announcements of the progress and milestones we reach.

Ok, thanks for clarifying. Is it a goal to eventually be a libc that could satisfy all the same features we get from something like musl or glibc?

Is it a goal to *eventually* be a libc that could satisfy all the same features
we get from something like musl or glibc?

Yes!