managarm / Mlibc
Licence: mit
Portable C standard library
Stars: ✭ 225
Projects that are alternatives of or similar to Mlibc
Tagha
Minimal, low-level, fast, and self-contained register-based bytecode virtual machine/runtime environment.
Stars: ✭ 101 (-55.11%)
Mutual labels: portable, x86-64
Ppci
A compiler for ARM, X86, MSP430, xtensa and more implemented in pure Python
Stars: ✭ 210 (-6.67%)
Mutual labels: x86-64
Naiheqiao
open-source x86/x64 usermode anti-anti-debug plugin
Stars: ✭ 191 (-15.11%)
Mutual labels: x86-64
Cyjon
A simple, clean code, multi-tasking operating system written in pure assembly language for 64-bit processors from the AMD64 family.
Stars: ✭ 184 (-18.22%)
Mutual labels: x86-64
Sftpgo
Fully featured and highly configurable SFTP server with optional HTTP, FTP/S and WebDAV support - S3, Google Cloud Storage, Azure Blob
Stars: ✭ 3,534 (+1470.67%)
Mutual labels: portable
Corehook
A library that simplifies intercepting application function calls using managed code and the .NET Core runtime
Stars: ✭ 191 (-15.11%)
Mutual labels: x86-64
X86 Manpages
x86 and amd64 instruction reference manual pages
Stars: ✭ 187 (-16.89%)
Mutual labels: x86-64
Minijit
A basic x86-64 JIT compiler written from scratch in stock Python
Stars: ✭ 185 (-17.78%)
Mutual labels: x86-64
Asm Cli
Interactive shell of assembly language(X86/X64) based on unicorn and keystone
Stars: ✭ 211 (-6.22%)
Mutual labels: x86-64
Video Downloader Deploy
Video Downloaders (you-get, youtube-dl, annie) One-Click Deployment Batch. || 视频下载器 (you-get, youtube-dl, annie) 一键配置脚本。
Stars: ✭ 178 (-20.89%)
Mutual labels: portable
Messenger For Desktop
This is not an official Facebook product, and is not affiliated with, or sponsored or endorsed by, Facebook.
Stars: ✭ 2,180 (+868.89%)
Mutual labels: portable
Libonnx
A lightweight, portable pure C99 onnx inference engine for embedded devices with hardware acceleration support.
Stars: ✭ 217 (-3.56%)
Mutual labels: portable
mlibc is a C standard library
Official Discord server: https://discord.gg/7WB6Ur3
Design of the library
Directory | Purpose |
---|---|
options/ |
(More or less) OS-independent headers and code.options/ is divided into subdirectories that can be enabled or disabled by ports. |
sysdeps/ |
OS-specific headers and code.sysdeps/ is divded into per-port subdirectories. Exactly one of those subdirectories is enabled in each build. |
abis/ |
OS-specific interface headers ("ABI headers"). Those contain the constants and structs of the OS interface. For example, the numerical values of SEEK_SET or O_CREAT live here, as well as structs like struct stat . ABI headers are only allowed to contain constants, structs and unions but no function declarations or logic.abis/ is divided into per-OS subdirectories but this division is for organizational purposes only. Ports can still mix headers from different abis/ subdirectories. |
Porting mlibc to a new OS: Ports to new OSes are welcome. To port mlibc to another OS, the following changes need to be made:
- Add new
sysdeps/
subdirectorysysdeps/some-new-os/
and ameson.build
to compile it. Integreatesysdeps/some-new-os/meson.build
into the toplevelmeson.build
. - Create ABI headers in
abis/some-new-os/
. Add symlinks insysdeps/some-new-os/include/abi-bits
to your ABI headers. Look at existing ports to figure out the ABI headers required for the options enabled bysysdeps/some-new-os/meson.build
. - In
sysdeps/some-new-os/
, add code to implement (a subset of) the functions fromoptions/internal/include/mlibc/sysdeps.hpp
. Which subset you need depends on the options thatsysdeps/some-new-os/meson.build
enables.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].