rewrite output-with-hyphens to rmake format

This commit is contained in:
Oneirical 2024-06-11 12:53:33 -04:00
parent 03982dae01
commit 7c2b3b5615
4 changed files with 29 additions and 19 deletions

View File

@ -156,7 +156,6 @@ run-make/optimization-remarks-dir/Makefile
run-make/output-filename-conflicts-with-directory/Makefile
run-make/output-filename-overwrites-input/Makefile
run-make/output-type-permutations/Makefile
run-make/output-with-hyphens/Makefile
run-make/override-aliased-flags/Makefile
run-make/overwrite-input/Makefile
run-make/panic-abort-eh_frame/Makefile

View File

@ -1,8 +0,0 @@
# ignore-cross-compile
include ../tools.mk
all:
$(RUSTC) foo-bar.rs --crate-type bin
[ -f $(TMPDIR)/$(call BIN,foo-bar) ]
$(RUSTC) foo-bar.rs --crate-type lib
[ -f $(TMPDIR)/libfoo_bar.rlib ]

View File

@ -0,0 +1,17 @@
// Rust files with hyphens in their filename should
// not result in compiled libraries keeping that hyphen -
// it should become an underscore. Only bin executables
// should keep the hyphen. This test ensures that this rule
// remains enforced.
// See https://github.com/rust-lang/rust/pull/23786
//@ ignore-cross-compile
use run_make_support::{path, rustc};
fn main() {
rustc().input("foo-bar.rs").crate_type("bin").run();
assert!(path(bin_name("foo-bar")).exists());
rustc().input("foo-bar.rs").crate_type("lib").run();
assert!(path(bin_name("libfoo_bar.rlib")).exists());
}

View File

@ -6,17 +6,19 @@
// See https://github.com/rust-lang/rust/pull/83846
use run_make_support::{fs_wrapper, rustc};
use std::sync::{Arc, Barrier};
use std::thread;
fn main() {
fs_wrapper::create_file("lib.rs");
let handle1 = thread::spawn(move || {
rustc().crate_type("lib").arg("-Ztemps-dir=temp1").input("lib.rs");
});
let handle2 = thread::spawn(move || {
rustc().crate_type("staticlib").arg("-Ztemps-dir=temp2").input("lib.rs");
});
handle1.join().expect("lib thread panicked");
handle2.join().expect("staticlib thread panicked");
let barrier = Arc::new(Barrier::new(2));
let handle = {
let barrier = Arc::clone(&barrier);
thread::spawn(move || {
barrier.wait();
rustc().crate_type("lib").arg("-Ztemps-dir=temp1").input("lib.rs");
})
};
barrier.wait();
rustc().crate_type("staticlib").arg("-Ztemps-dir=temp2").input("lib.rs");
handle.join().expect("lib thread panicked");
}