Skip to content

Commit

Permalink
Remove compiler-rt submodule from this repository
Browse files Browse the repository at this point in the history
This commit removes the `compiler-rt` submodule from this repository.
The goal here is to align the `compiler-rt` used for compiling C
intrinsics with the upstream rust-lang/rust's usage of `llvm-project`.
Currently we have both an `llvm-project` repository as well as
`compiler-rt`, but they can naturally get out of sync and it's just one
more submodule to manage.

The thinking here is that the feature `c` for this crate, when
activated, will require the user to configure where the source code for
`compiler-rt` is present. This places the onus on the builder of
`compiler-builtins` to check-out and arrange for the appropriate
`compiler-rt` source code to be placed somewhere. For rust-lang/rust
this is already done with the `llvm-project` submodule, and we can
arrange for it to happen on this crate's CI anyway.

For users of this crate this is a bit of a bummer, but `c` is disabled
by default anyway and it seems unlikely that `c` is explicitly opted in
to all that much. (given the purpose of this crate)

This should allow us to archive the `compiler-rt` repository and simply
use `llvm-project` in the rust-lang/rust repository.
  • Loading branch information
alexcrichton committed May 16, 2019
1 parent 6566ad9 commit aa41e0d
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 18 deletions.
3 changes: 0 additions & 3 deletions .gitmodules
@@ -1,6 +1,3 @@
[submodule "compiler-rt"]
path = compiler-rt
url = https://github.com/rust-lang/compiler-rt
[submodule "libm"]
path = libm
url = https://github.com/rust-lang-nursery/libm
20 changes: 12 additions & 8 deletions build.rs
Expand Up @@ -76,7 +76,7 @@ mod c {

use std::collections::BTreeMap;
use std::env;
use std::path::Path;
use std::path::PathBuf;

struct Sources {
// SYMBOL -> PATH TO SOURCE
Expand Down Expand Up @@ -411,15 +411,19 @@ mod c {
sources.remove(&["__aeabi_cdcmp", "__aeabi_cfcmp"]);
}

// When compiling in rustbuild (the rust-lang/rust repo) this build
// script runs from a directory other than this root directory.
let root = if cfg!(feature = "rustbuild") {
Path::new("../../libcompiler_builtins")
} else {
Path::new(".")
// When compiling the C code we require the user to tell us where the
// source code is, and this is largely done so when we're compiling as
// part of rust-lang/rust we can use the same llvm-project repository as
// rust-lang/rust.
let root = match env::var_os("RUST_COMPILER_RT_ROOT") {
Some(s) => PathBuf::from(s),
None => panic!("RUST_COMPILER_RT_ROOT is not set"),
};
if !root.exists() {
panic!("RUST_COMPILER_RT_ROOT={} does not exist", root.display());
}

let src_dir = root.join("compiler-rt/lib/builtins");
let src_dir = root.join("lib/builtins");
for (sym, src) in sources.map.iter() {
let src = src_dir.join(src);
cfg.file(&src);
Expand Down
12 changes: 7 additions & 5 deletions ci/azure-steps.yml
Expand Up @@ -4,13 +4,15 @@ steps:

- template: azure-install-rust.yml

- script: rustup component add rust-src
displayName: Install Rust sources
condition: eq( variables['XARGO'], '1' )

- bash: rustup target add $TARGET
displayName: Install Rust target
condition: ne( variables['XARGO'], '1' )

- bash: |
set -e
curl -L https://github.com/rust-lang/llvm-project/archive/rustc/8.0-2019-03-18.tar.gz | \
tar xzf - --strip-components 1 llvm-project-rustc-8.0-2019-03-18/compiler-rt
echo '##vso[task.setvariable variable=RUST_COMPILER_RT_ROOT]./compiler-rt'
displayName: "Download compiler-rt reference sources"
- bash: ./ci/run.sh $TARGET
condition: ne( variables['Agent.OS'], 'Linux' )
Expand Down
1 change: 1 addition & 0 deletions ci/run-docker.sh
Expand Up @@ -18,6 +18,7 @@ run() {
--user $(id -u):$(id -g) \
-e CARGO_HOME=/cargo \
-e CARGO_TARGET_DIR=/target \
-e RUST_COMPILER_RT_ROOT \
-v $HOME/.cargo:/cargo \
-v `pwd`/target:/target \
-v `pwd`:/checkout:ro \
Expand Down
1 change: 0 additions & 1 deletion ci/run.sh
@@ -1,6 +1,5 @@
set -ex

export CARGO_INCREMENTAL=0
cargo=cargo

# Test our implementation
Expand Down
1 change: 0 additions & 1 deletion compiler-rt
Submodule compiler-rt deleted from 03fc28

0 comments on commit aa41e0d

Please sign in to comment.