2
0

为DragonOS移植了的relibc

Florian Meißner 59cbc5be32 Provide possible fix for `x86_64-linux-gnu-ar: command not found` (or similar) in README.md 2 жил өмнө
core_io 9eeb73319d Update core_io submodule to a valid commit. 3 жил өмнө
include a37916101f Add M_2_PI 2 жил өмнө
openlibm b3dda7519d Update openlibm 6 жил өмнө
posix-regex 0684fb6e4c Bump posix-regex version 6 жил өмнө
pthreads-emb 9c423abb5f Update pthreads-emb 4 жил өмнө
ralloc 6c11a18240 Go back to patched ralloc 6 жил өмнө
src f5651b22ea Do not overwrite static TCB 2 жил өмнө
tests 393489b38b Add wcswidth and test 2 жил өмнө
.editorconfig 6952a079ae Fix CI 4 жил өмнө
.gitignore a7480ea656 Fix global symbols relocations 4 жил өмнө
.gitlab-ci.yml 3373d5e246 Install rust-src 3 жил өмнө
.gitmodules 2186cd1fbd Implement fexec in userspace. 2 жил өмнө
CONTRIBUTING.md ff874c87d7 tests: Fix function signatures 6 жил өмнө
Cargo.lock 9c16224e82 Update libc crate 2 жил өмнө
Cargo.toml f65c1c27c7 Implement wcwidth 2 жил өмнө
LICENSE ba515d83df Create LICENSE 7 жил өмнө
Makefile ba87e4893a Create empty libdl and librt libraries 2 жил өмнө
README.md 59cbc5be32 Provide possible fix for `x86_64-linux-gnu-ar: command not found` (or similar) in README.md 2 жил өмнө
Xargo.toml ae34ade595 Use path to patch compiler-builtins 4 жил өмнө
bindgen_transform.sh 799c8828c2 mkdir and rmdir 7 жил өмнө
build.rs a28e9ae378 Add pthreads to includes for C files 4 жил өмнө
ci.sh 9f86748a58 Fix make libs in CI 5 жил өмнө
fmt.sh bab4e2896a Format 6 жил өмнө
redoxer.sh 7fd366be70 Convert test runner to rust 4 жил өмнө
renamesyms.sh 70a8fca3c1 Use target binutils for renamesyms 2 жил өмнө
rust-toolchain.toml 0bd476d28a Update to new Rust toolchain 2 жил өмнө
rustfmt.toml b8c50c7c64 Format 5 жил өмнө

README.md

relibc build

relibc is a portable POSIX C standard library written in Rust. It is under heavy development, and currently supports Redox and Linux.

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.

Building

Just run make all.

Issues

I'm building for my own platform which I run, and am getting 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

Contributing

Supported OSes

  • Redox OS
  • Linux

Supported architectures

  • x86_64
  • Aarch64