All Projects → managarm → Mlibc

managarm / Mlibc

Licence: mit
Portable C standard library

Programming Languages

c
50402 projects - #5 most used programming language
cpp
1120 projects

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
Fast Ide
🕺Fast Integrated Development Environment 😻
Stars: ✭ 181 (-19.56%)
Mutual labels:  portable
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
Build Openwrt
超简单云编译,人人都能定制编译自己喜欢的OpenWrt固件
Stars: ✭ 194 (-13.78%)
Mutual labels:  x86-64
Opcodes
Database of CPU Opcodes
Stars: ✭ 177 (-21.33%)
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
Onednn
oneAPI Deep Neural Network Library (oneDNN)
Stars: ✭ 2,600 (+1055.56%)
Mutual labels:  x86-64
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
Wagon
免安裝可攜的 Laravel 開發環境
Stars: ✭ 189 (-16%)
Mutual labels:  portable
X86 Manpages
x86 and amd64 instruction reference manual pages
Stars: ✭ 187 (-16.89%)
Mutual labels:  x86-64
Holodec
Decompiler for x86 and x86-64 ELF binaries
Stars: ✭ 195 (-13.33%)
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
Atom Portable
Portable version of the Atom text editor
Stars: ✭ 187 (-16.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
Libagar
Cross-Platform GUI Toolkit (stable)
Stars: ✭ 212 (-5.78%)
Mutual labels:  portable

mlibc is a C standard library

Continuous Integration

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:

  1. Add new sysdeps/ subdirectory sysdeps/some-new-os/ and a meson.build to compile it. Integreate sysdeps/some-new-os/meson.build into the toplevel meson.build.
  2. Create ABI headers in abis/some-new-os/. Add symlinks in sysdeps/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 by sysdeps/some-new-os/meson.build.
  3. In sysdeps/some-new-os/, add code to implement (a subset of) the functions from options/internal/include/mlibc/sysdeps.hpp. Which subset you need depends on the options that sysdeps/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].