Skip to content

Rollup of 8 pull requests #39885

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 18 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
f313646
test: Verify all sysroot crates are unstable
alexcrichton Feb 15, 2017
fdf4a98
appveyor: Move MSVC dist builds to their own builder
alexcrichton Feb 15, 2017
4a3c66a
[MIR] Make InlineAsm a Statement
nagisa Feb 15, 2017
e77f856
Add a test that -fPIC is applied
brson Feb 14, 2017
ab57e7b
std::io::cursor Added test for seeking beyond i64.
amosonn Feb 16, 2017
ebf70a9
libstd needs update for pending libc change
binarycrusader Feb 16, 2017
a2d176e
std::io::cursor: Fixed Seek so test passes.
amosonn Feb 16, 2017
c02c44d
rustc: Link statically to the MSVCRT
alexcrichton Feb 14, 2017
a7f63d1
Remove noop method `Substs::params()`
estebank Feb 16, 2017
5789539
simplify home_dir by removing unnecessary getpwuid_r wrapper
binarycrusader Feb 16, 2017
c1c555b
Rollup merge of #39803 - brson:fpic, r=alexcrichton
GuillaumeGomez Feb 16, 2017
edbd3d7
Rollup merge of #39837 - alexcrichton:llvm-crt-static, r=brson
GuillaumeGomez Feb 16, 2017
a7d8f9f
Rollup merge of #39851 - alexcrichton:verify-unstable, r=brson
GuillaumeGomez Feb 16, 2017
1e118c9
Rollup merge of #39852 - alexcrichton:appveyor-separate-dist, r=brson
GuillaumeGomez Feb 16, 2017
c2c1313
Rollup merge of #39854 - nagisa:mir-asm-stmt, r=nikomatsakis
GuillaumeGomez Feb 16, 2017
892d896
Rollup merge of #39871 - binarycrusader:issue-39868, r=alexcrichton
GuillaumeGomez Feb 16, 2017
a80192f
Rollup merge of #39874 - amosonn:master, r=alexcrichton
GuillaumeGomez Feb 16, 2017
c51e2be
Rollup merge of #39877 - estebank:remove-params, r=petrochenkov
GuillaumeGomez Feb 16, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 14 additions & 7 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,13 @@ environment:
matrix:
# 32/64 bit MSVC
- MSYS_BITS: 64
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended
SCRIPT: python x.py test && python x.py dist
DEPLOY: 1
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
SCRIPT: python x.py test
- MSYS_BITS: 32
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc --target=i586-pc-windows-msvc --enable-extended
SCRIPT: python x.py test --host i686-pc-windows-msvc --target i686-pc-windows-msvc && python x.py dist
DEPLOY: 1
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc --target=i586-pc-windows-msvc
SCRIPT: python x.py test --host i686-pc-windows-msvc --target i686-pc-windows-msvc

# MSVC cargotest
# MSVC aux tests
- MSYS_BITS: 64
RUST_CHECK_TARGET: check-aux
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc
Expand Down Expand Up @@ -60,6 +58,15 @@ environment:
MINGW_DIR: mingw64
DEPLOY: 1

# 32/64 bit MSVC deployment
- RUST_CONFIGURE_ARGS: >
--build=x86_64-pc-windows-msvc
--host=i686-pc-windows-msvc
--target=i586-pc-windows-msvc
--enable-extended
SCRIPT: python x.py dist
DEPLOY: 1

# "alternate" deployment, see .travis.yml for more info
- MSYS_BITS: 64
RUST_CONFIGURE_ARGS: --build=x86_64-pc-windows-msvc --enable-extended
Expand Down
15 changes: 0 additions & 15 deletions src/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
members = [
"bootstrap",
"rustc",
"rustc/std_shim",
"rustc/test_shim",
"libstd",
"libtest",
"tools/cargotest",
"tools/compiletest",
"tools/error_index_generator",
Expand Down
4 changes: 2 additions & 2 deletions src/bootstrap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -267,8 +267,8 @@ build/
The current build is unfortunately not quite as simple as `cargo build` in a
directory, but rather the compiler is split into three different Cargo projects:

* `src/rustc/std_shim` - a project which builds and compiles libstd
* `src/rustc/test_shim` - a project which builds and compiles libtest
* `src/libstd` - the standard library
* `src/libtest` - testing support, depends on libstd
* `src/rustc` - the actual compiler itself

Each "project" has a corresponding Cargo.lock file with all dependencies, and
Expand Down
5 changes: 5 additions & 0 deletions src/bootstrap/bin/rustc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,11 @@ fn main() {
}
}
}

if target.contains("pc-windows-msvc") {
cmd.arg("-Z").arg("unstable-options");
cmd.arg("-C").arg("target-feature=+crt-static");
}
}

if verbose > 1 {
Expand Down
4 changes: 2 additions & 2 deletions src/bootstrap/check.rs
Original file line number Diff line number Diff line change
Expand Up @@ -346,10 +346,10 @@ pub fn krate(build: &Build,
krate: Option<&str>) {
let (name, path, features, root) = match mode {
Mode::Libstd => {
("libstd", "src/rustc/std_shim", build.std_features(), "std_shim")
("libstd", "src/libstd", build.std_features(), "std")
}
Mode::Libtest => {
("libtest", "src/rustc/test_shim", String::new(), "test_shim")
("libtest", "src/libtest", String::new(), "test")
}
Mode::Librustc => {
("librustc", "src/rustc", build.rustc_features(), "rustc-main")
Expand Down
4 changes: 2 additions & 2 deletions src/bootstrap/compile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ pub fn std(build: &Build, target: &str, compiler: &Compiler) {
}
cargo.arg("--features").arg(features)
.arg("--manifest-path")
.arg(build.src.join("src/rustc/std_shim/Cargo.toml"));
.arg(build.src.join("src/libstd/Cargo.toml"));

if let Some(target) = build.config.target_config.get(target) {
if let Some(ref jemalloc) = target.jemalloc {
Expand Down Expand Up @@ -162,7 +162,7 @@ pub fn test(build: &Build, target: &str, compiler: &Compiler) {
build.clear_if_dirty(&out_dir, &libstd_stamp(build, compiler, target));
let mut cargo = build.cargo(compiler, Mode::Libtest, target, "build");
cargo.arg("--manifest-path")
.arg(build.src.join("src/rustc/test_shim/Cargo.toml"));
.arg(build.src.join("src/libtest/Cargo.toml"));
build.run(&mut cargo);
update_mtime(build, &libtest_stamp(build, compiler, target));
}
Expand Down
4 changes: 2 additions & 2 deletions src/bootstrap/doc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ pub fn std(build: &Build, stage: u32, target: &str) {

let mut cargo = build.cargo(&compiler, Mode::Libstd, target, "doc");
cargo.arg("--manifest-path")
.arg(build.src.join("src/rustc/std_shim/Cargo.toml"))
.arg(build.src.join("src/libstd/Cargo.toml"))
.arg("--features").arg(build.std_features());

// We don't want to build docs for internal std dependencies unless
Expand Down Expand Up @@ -198,7 +198,7 @@ pub fn test(build: &Build, stage: u32, target: &str) {

let mut cargo = build.cargo(&compiler, Mode::Libtest, target, "doc");
cargo.arg("--manifest-path")
.arg(build.src.join("src/rustc/test_shim/Cargo.toml"));
.arg(build.src.join("src/libtest/Cargo.toml"));
build.run(&mut cargo);
cp_r(&out_dir, &out)
}
Expand Down
4 changes: 2 additions & 2 deletions src/bootstrap/metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ struct ResolveNode {
}

pub fn build(build: &mut Build) {
build_krate(build, "src/rustc/std_shim");
build_krate(build, "src/rustc/test_shim");
build_krate(build, "src/libstd");
build_krate(build, "src/libtest");
build_krate(build, "src/rustc");
}

Expand Down
6 changes: 6 additions & 0 deletions src/bootstrap/native.rs
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,12 @@ pub fn llvm(build: &Build, target: &str) {
.define("LLVM_TARGET_ARCH", target.split('-').next().unwrap())
.define("LLVM_DEFAULT_TARGET_TRIPLE", target);

if target.contains("msvc") {
cfg.define("LLVM_USE_CRT_DEBUG", "MT");
cfg.define("LLVM_USE_CRT_RELEASE", "MT");
cfg.define("LLVM_USE_CRT_RELWITHDEBINFO", "MT");
}

if target.starts_with("i686") {
cfg.define("LLVM_BUILD_32_BITS", "ON");
}
Expand Down
50 changes: 25 additions & 25 deletions src/bootstrap/step.rs
Original file line number Diff line number Diff line change
Expand Up @@ -246,14 +246,14 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
crate_rule(build,
&mut rules,
"libstd-link",
"build-crate-std_shim",
"build-crate-std",
compile::std_link)
.dep(|s| s.name("startup-objects"))
.dep(|s| s.name("create-sysroot").target(s.host));
crate_rule(build,
&mut rules,
"libtest-link",
"build-crate-test_shim",
"build-crate-test",
compile::test_link)
.dep(|s| s.name("libstd-link"));
crate_rule(build,
Expand All @@ -263,13 +263,13 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
compile::rustc_link)
.dep(|s| s.name("libtest-link"));

for (krate, path, _default) in krates("std_shim") {
for (krate, path, _default) in krates("std") {
rules.build(&krate.build_step, path)
.dep(|s| s.name("startup-objects"))
.dep(move |s| s.name("rustc").host(&build.config.build).target(s.host))
.run(move |s| compile::std(build, s.target, &s.compiler()));
}
for (krate, path, _default) in krates("test_shim") {
for (krate, path, _default) in krates("test") {
rules.build(&krate.build_step, path)
.dep(|s| s.name("libstd-link"))
.run(move |s| compile::test(build, s.target, &s.compiler()));
Expand Down Expand Up @@ -384,7 +384,7 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
"pretty", "run-fail-fulldeps");
}

for (krate, path, _default) in krates("std_shim") {
for (krate, path, _default) in krates("std") {
rules.test(&krate.test_step, path)
.dep(|s| s.name("libtest"))
.dep(|s| s.name("emulator-copy-libs"))
Expand All @@ -400,7 +400,7 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
Mode::Libstd, TestKind::Test, None));

// std benchmarks
for (krate, path, _default) in krates("std_shim") {
for (krate, path, _default) in krates("std") {
rules.bench(&krate.bench_step, path)
.dep(|s| s.name("libtest"))
.dep(|s| s.name("emulator-copy-libs"))
Expand All @@ -415,7 +415,7 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
.run(move |s| check::krate(build, &s.compiler(), s.target,
Mode::Libstd, TestKind::Bench, None));

for (krate, path, _default) in krates("test_shim") {
for (krate, path, _default) in krates("test") {
rules.test(&krate.test_step, path)
.dep(|s| s.name("libtest"))
.dep(|s| s.name("emulator-copy-libs"))
Expand Down Expand Up @@ -583,13 +583,13 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
.default(build.config.docs)
.host(true)
.run(move |s| doc::error_index(build, s.target));
for (krate, path, default) in krates("std_shim") {
for (krate, path, default) in krates("std") {
rules.doc(&krate.doc_step, path)
.dep(|s| s.name("libstd-link"))
.default(default && build.config.docs)
.run(move |s| doc::std(build, s.stage, s.target));
}
for (krate, path, default) in krates("test_shim") {
for (krate, path, default) in krates("test") {
rules.doc(&krate.doc_step, path)
.dep(|s| s.name("libtest-link"))
.default(default && build.config.compiler_docs)
Expand Down Expand Up @@ -1154,23 +1154,23 @@ mod tests {

let mut build = Build::new(flags, config);
let cwd = env::current_dir().unwrap();
build.crates.insert("std_shim".to_string(), ::Crate {
name: "std_shim".to_string(),
build.crates.insert("std".to_string(), ::Crate {
name: "std".to_string(),
deps: Vec::new(),
path: cwd.join("src/std_shim"),
doc_step: "doc-std_shim".to_string(),
build_step: "build-crate-std_shim".to_string(),
test_step: "test-std_shim".to_string(),
bench_step: "bench-std_shim".to_string(),
path: cwd.join("src/std"),
doc_step: "doc-std".to_string(),
build_step: "build-crate-std".to_string(),
test_step: "test-std".to_string(),
bench_step: "bench-std".to_string(),
});
build.crates.insert("test_shim".to_string(), ::Crate {
name: "test_shim".to_string(),
build.crates.insert("test".to_string(), ::Crate {
name: "test".to_string(),
deps: Vec::new(),
path: cwd.join("src/test_shim"),
doc_step: "doc-test_shim".to_string(),
build_step: "build-crate-test_shim".to_string(),
test_step: "test-test_shim".to_string(),
bench_step: "bench-test_shim".to_string(),
path: cwd.join("src/test"),
doc_step: "doc-test".to_string(),
build_step: "build-crate-test".to_string(),
test_step: "test-test".to_string(),
bench_step: "bench-test".to_string(),
});
build.crates.insert("rustc-main".to_string(), ::Crate {
name: "rustc-main".to_string(),
Expand Down Expand Up @@ -1360,7 +1360,7 @@ mod tests {
let all = rules.expand(&plan);
println!("all rules: {:#?}", all);
assert!(!all.contains(&step.name("rustc")));
assert!(!all.contains(&step.name("build-crate-std_shim").stage(1)));
assert!(!all.contains(&step.name("build-crate-std").stage(1)));

// all stage0 compiles should be for the build target, A
for step in all.iter().filter(|s| s.stage == 0) {
Expand Down Expand Up @@ -1425,7 +1425,7 @@ mod tests {

assert!(!plan.iter().any(|s| s.name.contains("rustc")));
assert!(plan.iter().all(|s| {
!s.name.contains("test_shim") || s.target == "C"
!s.name.contains("test") || s.target == "C"
}));
}

Expand Down
12 changes: 0 additions & 12 deletions src/liballoc_jemalloc/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,18 +122,6 @@ mod imp {
let flags = align_to_flags(align);
unsafe { nallocx(size as size_t, flags) as usize }
}

// These symbols are used by jemalloc on android but the really old android
// we're building on doesn't have them defined, so just make sure the symbols
// are available.
#[no_mangle]
#[cfg(all(target_os = "android", not(cargobuild)))]
pub extern "C" fn pthread_atfork(_prefork: *mut u8,
_postfork_parent: *mut u8,
_postfork_child: *mut u8)
-> i32 {
0
}
}

#[cfg(dummy_jemalloc)]
Expand Down
21 changes: 10 additions & 11 deletions src/librustc/mir/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -777,6 +777,12 @@ pub enum StatementKind<'tcx> {
/// End the current live range for the storage of the local.
StorageDead(Lvalue<'tcx>),

InlineAsm {
asm: InlineAsm,
outputs: Vec<Lvalue<'tcx>>,
inputs: Vec<Operand<'tcx>>
},

/// No-op. Useful for deleting instructions without affecting statement indices.
Nop,
}
Expand All @@ -790,7 +796,10 @@ impl<'tcx> Debug for Statement<'tcx> {
StorageDead(ref lv) => write!(fmt, "StorageDead({:?})", lv),
SetDiscriminant{lvalue: ref lv, variant_index: index} => {
write!(fmt, "discriminant({:?}) = {:?}", lv, index)
}
},
InlineAsm { ref asm, ref outputs, ref inputs } => {
write!(fmt, "asm!({:?} : {:?} : {:?})", asm, outputs, inputs)
},
Nop => write!(fmt, "nop"),
}
}
Expand Down Expand Up @@ -1004,12 +1013,6 @@ pub enum Rvalue<'tcx> {
/// that `Foo` has a destructor. These rvalues can be optimized
/// away after type-checking and before lowering.
Aggregate(AggregateKind<'tcx>, Vec<Operand<'tcx>>),

InlineAsm {
asm: InlineAsm,
outputs: Vec<Lvalue<'tcx>>,
inputs: Vec<Operand<'tcx>>
}
}

#[derive(Clone, Copy, Debug, PartialEq, Eq, RustcEncodable, RustcDecodable)]
Expand Down Expand Up @@ -1111,10 +1114,6 @@ impl<'tcx> Debug for Rvalue<'tcx> {
UnaryOp(ref op, ref a) => write!(fmt, "{:?}({:?})", op, a),
Discriminant(ref lval) => write!(fmt, "discriminant({:?})", lval),
Box(ref t) => write!(fmt, "Box({:?})", t),
InlineAsm { ref asm, ref outputs, ref inputs } => {
write!(fmt, "asm!({:?} : {:?} : {:?})", asm, outputs, inputs)
}

Ref(_, borrow_kind, ref lv) => {
let kind_str = match borrow_kind {
BorrowKind::Shared => "",
Expand Down
1 change: 0 additions & 1 deletion src/librustc/mir/tcx.rs
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,6 @@ impl<'tcx> Rvalue<'tcx> {
}
}
}
Rvalue::InlineAsm { .. } => None
}
}
}
Expand Down
Loading