1# relibc ![build](https://travis-ci.org/redox-os/relibc.svg?branch=master) 2relibc is a portable POSIX C standard library written in Rust. It is under heavy development, and currently supports Redox, Linux and DragonOS. 3 4The motivation for this project is twofold: Reduce issues the redox crew was having with newlib, and create a safer alternative to a C standard library written in C. It is mainly designed to be used under redox, as an alternative to newlib, but it also supports linux syscalls via the [sc](https://crates.io/crates/sc) crate. 5 6## Building 7Just run `make all`. 8 9### Build for DragonOS 10 11You can follow the instructions to build relibc for DragonOS: 12 13```bash 14mkdir -p sysroot/usr 15make -j $(nproc) && DESTDIR=sysroot/usr make install -j $(nproc) 16``` 17 18### Issues 19#### I'm building for my own platform which I run, and am getting `x86_64-linux-gnu-ar: command not found` (or similar) 20The Makefile expects the gnu compiler tools prefixed with the platform specifier, as would be present when you'd install a cross compiler. Since you are building for your own platform, some distros (like Manjaro) don't install/symlink the prefixed executables. 21An easy fix would be to replace the corresponding lines in the Makefile, e.g. 22```diff 23 ifeq ($(TARGET),x86_64-unknown-linux-gnu) 24 export CC=x86_64-linux-gnu-gcc 25- export LD=x86_64-linux-gnu-ld 26- export AR=x86_64-linux-gnu-ar 27+ export LD=ld 28+ export AR=ar 29 export OBJCOPY=x86_64-linux-gnu-objcopy 30 endif 31``` 32 33### [Contributing](CONTRIBUTING.md) 34 35## Supported OSes 36 37 - Redox OS 38 - Linux 39 - DragonOS 40 41## Supported architectures 42 43 - x86\_64 44 - Aarch64 45