| (contributing)= | |
| # Contributing to the libc Project | |
| LLVM-libc is being developed as part of the LLVM project so contributions | |
| to the libc project should also follow the general LLVM | |
| [contribution guidelines](https://llvm.org/docs/Contributing.html). Below is | |
| a list of open projects that one can start with: | |
| 1. **Beginner Bugs** - Help us tackle | |
| [good first issues](https://github.com/llvm/llvm-project/issues?q=is%3Aopen+is%3Aissue+label%3Alibc+label%3A%22good+first+issue%22). | |
| These bugs have been tagged with the github labels "libc" and "good first | |
| issue" by the team as potentially easier places to get started. Please do | |
| first check if the bug has an assignee; if so please find another unless | |
| there's been no movement on the issue from the assignee, in which place do | |
| ask if you can help take over. | |
| 2. **Cleanup code-style** - The libc project follows the general | |
| [LLVM style](https://llvm.org/docs/CodingStandards.html) with specific | |
| conventions for naming (`snake_case` for functions, `CamelCase` for | |
| types). See the {doc}`code style <dev/code_style>` page for the | |
| authoritative reference. | |
| Mechanical projects to move parts following old styles to the current | |
| conventions are welcome. | |
| 3. **Implement Linux syscall wrappers** - A large portion of the POSIX API can | |
| be implemented as syscall wrappers on Linux. A good number have already been | |
| implemented but many more are yet to be implemented. So, a project of medium | |
| complexity would be to implement syscall wrappers which have not yet been | |
| implemented. | |
| 4. **Update the clang-tidy lint rules and use them in the build and/or CI** - | |
| The libc project has a set of clang-tidy checks (see | |
| {ref}`clang-tidy checks <clang_tidy_checks>`) | |
| but they are not enabled by default. They can be enabled by configuring with | |
| `-DLLVM_LIBC_ENABLE_LINTING=ON` (or by setting `LLVM_LIBC_CLANG_TIDY`) and | |
| running the `libc-lint` build target. This project is about keeping the | |
| checks up to date and reintegrating them into the build and CI. | |
| 5. **double and higher precision math functions** - These are under active | |
| development but you can take a shot at those not yet implemented. See | |
| {ref}`math` for more information. | |
| 6. **Contribute a new OS/Architecture port** - You can contribute a new | |
| operating system or target architecture port. See {ref}`porting` for more | |
| information. |