Skip to content
This repository has been archived by the owner on Oct 17, 2018. It is now read-only.

phil-opp/nightly-libcore

Repository files navigation

Nightly libcore

Build Status

SUPERSEEDED: Xargo is a much better solution. The float problem can be fixed using the soft-float target feature.

Rust's core library as a cargo crate. Updated daily using nightli.es.

It has a disable_float feature that includes thepowersgang's float-free libcore patch.

Note: This crate only works for targets with "no-compiler-rt": true.

For cross-compiling liballoc, librustc_unicode, and libcollections, check out nightly-libcollections.

Quick Installation

To install a cross-compiled libcore, download the installation script:

wget -q https://raw.githubusercontent.com/phil-opp/nightly-libcore/master/install-libcore.sh

The script should work for multirust and for standard rust installations (but I only tested multirust). Use at your own risk!

To install libcore for target your-target-name (e.g. x86_64-unknown-linux-gnu or a custom target file) with floating point support, run:

bash install-libcore.sh your-target-name

Note that your-target-name, your-target-name.json, and ./your-target-name are different targets to Rust.

To install libcore without floating point support, run:

bash install-libcore.sh your-target-name disable_float

After a successful installation the script deletes itself.

As Cargo Dependency

Note: This works only for crates without dependencies, as cargo still wants to use the system libcore for them.

It is a normal cargo crate, so you can just add the following to your Cargo.toml:

[dependencies.core]
git = "https://github.com/phil-opp/nightly-libcore.git"
features = ["disable_float"] # optional

Manual Installation

First, clone this repository. Then copy your your-target-name.json file into the cloned folder and run:

cargo build --release --features disable_float --target=your-target-name

If you want to build it with float support, just omit the cargo feature.

Then put the resulting target/your-target-name/release/libcore.rlib in your Rust lib folder. For multirust, that folder is:

~/.multirust/toolchains/nightly/lib/rustlib/your-target-name/lib

Now it should be possible to compile no_std crates for your-target-name. Note that ./your-target-name and your-target-name are different targets to Rust.

Uninstall

To “unistall”, just remove the libcore.rlib. For multirust, it is in

~/.multirust/toolchains/nightly/lib/rustlib/your-target-name/lib

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •