• Home
  • Raw
  • Download

Lines Matching full:libc

2 "llvm-libc" C Standard Library
12 This is a proposal to start *llvm-libc*, an implementation of the
14 llvm-libc will also provide platform specific extensions as relevant.
21 llvm-libc will be developed to have a certain minimum set of features:
24 - A modular libc with individual pieces implemented in the "as a
26 - Ability to layer this libc over the system libc if possible and desired
42 to test llvm-libc against another battle-tested libc. This is
45 battle-tested libc implementation.
50 Implementing a libc is no small task and is not be taken lightly. A
55 - Most libc implementations are monolithic. It is a non-trivial
57 platform. The llvm-libc will be developed with sufficient modularity to
59 - Most libc implementations break when built with sanitizer specific
60 compiler options. The llvm-libc will be developed from the start to
62 - The llvm-libc will be developed to support and employ fuzz testing
64 - Most libc implementations use a good amount of assembly language,
65 and assume specific ABIs (may be platform dependent). With the llvm-libc
70 - A large hole in the LLVM toolchain will be plugged with llvm-libc.
72 strong license and project structure, we think that llvm-libc will
79 We envision that llvm-libc will support a variety of platforms in the coming
86 As llvm-libc is new, it will not offer ABI stability in the initial stages.
88 in having ABI stability, llvm-libc code will be written in a manner which is
91 stability mean for llvm-libc.
93 Layering Over Another libc
96 When meaningful and practically possible on a platform, llvm-libc will be
98 libc. This does not mean that one can mix llvm-libc with the system-libc. Also,
99 it does not mean that layering is the only way to use llvm-libc. What it
100 means is that, llvm-libc can optionally be packaged in a way that it can
101 delegate parts of the functionality to the system-libc. The delegation happens
102 internal to llvm-libc and is invisible to the users. From the user's point of
103 view, they only call into llvm-libc.
106 delegation scheme in llvm-libc. Examples of such problems are:
108 1. One cannot mix data structures from llvm-libc with those from the
109 system-libc. A translation from one set of data structures to the other should
110 happen internal to llvm-libc.
113 system-libc. One will have to delegate all `FILE` related functions to the
114 system-libc.
119 llvm-libc development is still in the planning phase.
124 Once the development starts, there will be llvm-libc focused builders added to