GnoCiYeH 931a8760c4 Merge branch 'dragonos-relibc' into update-dsc | há 1 ano atrás | |
---|---|---|
.cargo | há 1 ano atrás | |
.vscode | há 1 ano atrás | |
core_io | há 3 anos atrás | |
include | há 1 ano atrás | |
openlibm | há 5 anos atrás | |
posix-regex | há 6 anos atrás | |
pthreads-emb | há 3 anos atrás | |
ralloc | há 6 anos atrás | |
src | há 1 ano atrás | |
tests | há 1 ano atrás | |
.editorconfig | há 4 anos atrás | |
.gitignore | há 1 ano atrás | |
.gitlab-ci.yml | há 1 ano atrás | |
.gitmodules | há 1 ano atrás | |
CONTRIBUTING.md | há 5 anos atrás | |
Cargo.toml | há 1 ano atrás | |
LICENSE | há 6 anos atrás | |
Makefile | há 1 ano atrás | |
README.md | há 1 ano atrás | |
Xargo.toml | há 4 anos atrás | |
bindgen_transform.sh | há 6 anos atrás | |
build.rs | há 1 ano atrás | |
ci.sh | há 4 anos atrás | |
fmt.sh | há 6 anos atrás | |
init_dragonos_toolchain.sh | há 1 ano atrás | |
redoxer.sh | há 1 ano atrás | |
renamesyms.sh | há 2 anos atrás | |
rust-toolchain.toml | há 1 ano atrás | |
rustfmt.toml | há 5 anos atrás |
relibc is a portable POSIX C standard library written in Rust. It is under heavy development, and currently supports Redox, Linux and DragonOS.
The 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 crate.
Just run make all
.
You can follow the instructions to build relibc for DragonOS:
mkdir -p sysroot/usr
make -j $(nproc) && DESTDIR=sysroot/usr make install -j $(nproc)
x86_64-linux-gnu-ar: command not found
(or similar)The 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. An easy fix would be to replace the corresponding lines in the Makefile, e.g.
ifeq ($(TARGET),x86_64-unknown-linux-gnu)
export CC=x86_64-linux-gnu-gcc
- export LD=x86_64-linux-gnu-ld
- export AR=x86_64-linux-gnu-ar
+ export LD=ld
+ export AR=ar
export OBJCOPY=x86_64-linux-gnu-objcopy
endif