compiler-builtins has a symlink to the `libm` source directory so the two crates can share files but still act as two separate crates. This causes problems with some sysroot-related tooling, however, since directory symlinks seem to not be supported. The reason this was a symlink in the first place is that there isn't an easy for Cargo to publish two crates that share source (building works fine but publishing rejects `include`d files from parent directories, as well as nested package roots). However, after the switch to a subtree, we no longer need to publish compiler-builtins; this means that we can eliminate the link and just use `#[path]`. Similarly, the LICENSE file was symlinked so it could live in the repository root but be included in the package. This is also removed as it caused problems with the dist job (error from bootstrap's `tarball.rs`, "generated a symlink in a tarball"). If we need to publish compiler-builtins again for any reason, it would be easy to revert these changes in a preprocess step. |
||
|---|---|---|
| .. | ||
| .github/workflows | ||
| builtins-test | ||
| builtins-test-intrinsics | ||
| ci | ||
| compiler-builtins | ||
| crates | ||
| etc | ||
| libm | ||
| libm-test | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitignore | ||
| .gitmodules | ||
| .release-plz.toml | ||
| .rustfmt.toml | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| LICENSE.txt | ||
| PUBLISHING.md | ||
| README.md | ||
| thumbv6m-linux-eabi.json | ||
| thumbv7em-linux-eabi.json | ||
| thumbv7em-linux-eabihf.json | ||
| thumbv7m-linux-eabi.json | ||
compiler-builtins and libm
This repository contains two main crates:
compiler-builtins: symbols that the compiler expects to be available at link timelibm: a Rust implementation of C math libraries, used to provide implementations inocre.
More details are at compiler-builtins/README.md and libm/README.md.
For instructions on contributing, see CONTRIBUTING.md.
License
libmmay be used under the MIT Licensecompiler-builtinsmay be used under the MIT License and the Apache License, Version 2.0 with the LLVM exception.- All original contributions must be under all of: the MIT license, the Apache-2.0 license, and the Apache-2.0 license with the LLVM exception.
More details are in LICENSE.txt and libm/LICENSE.txt.