Auto merge of #126861 - GuillaumeGomez:migrate-run-make-invalid-library, r=Kobzol
Migrate `run-make/invalid-library` to `rmake.rs` Part of #121876. r? `@jieyouxu` try-job: x86_64-msvc
This commit is contained in:
commit
249595384b
@ -228,6 +228,12 @@ dependencies = [
|
|||||||
"backtrace",
|
"backtrace",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ar"
|
||||||
|
version = "0.9.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d67af77d68a931ecd5cbd8a3b5987d63a1d1d1278f7f6a60ae33db485cdebb69"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ar_archive_writer"
|
name = "ar_archive_writer"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
@ -3394,6 +3400,7 @@ dependencies = [
|
|||||||
name = "run_make_support"
|
name = "run_make_support"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"ar",
|
||||||
"gimli 0.28.1",
|
"gimli 0.28.1",
|
||||||
"object 0.34.0",
|
"object 0.34.0",
|
||||||
"regex",
|
"regex",
|
||||||
|
@ -9,3 +9,4 @@ similar = "2.5.0"
|
|||||||
wasmparser = "0.118.2"
|
wasmparser = "0.118.2"
|
||||||
regex = "1.8" # 1.8 to avoid memchr 2.6.0, as 2.5.0 is pinned in the workspace
|
regex = "1.8" # 1.8 to avoid memchr 2.6.0, as 2.5.0 is pinned in the workspace
|
||||||
gimli = "0.28.1"
|
gimli = "0.28.1"
|
||||||
|
ar = "0.9.0"
|
||||||
|
@ -61,6 +61,19 @@ pub fn target() -> String {
|
|||||||
env_var("TARGET")
|
env_var("TARGET")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// `AR`
|
||||||
|
#[track_caller]
|
||||||
|
pub fn ar(inputs: &[impl AsRef<Path>], output_path: impl AsRef<Path>) {
|
||||||
|
let output = fs::File::create(&output_path).expect(&format!(
|
||||||
|
"the file in path \"{}\" could not be created",
|
||||||
|
output_path.as_ref().display()
|
||||||
|
));
|
||||||
|
let mut builder = ar::Builder::new(output);
|
||||||
|
for input in inputs {
|
||||||
|
builder.append_path(input).unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Check if target is windows-like.
|
/// Check if target is windows-like.
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn is_windows() -> bool {
|
pub fn is_windows() -> bool {
|
||||||
|
@ -54,7 +54,6 @@ run-make/incr-add-rust-src-component/Makefile
|
|||||||
run-make/incr-foreign-head-span/Makefile
|
run-make/incr-foreign-head-span/Makefile
|
||||||
run-make/interdependent-c-libraries/Makefile
|
run-make/interdependent-c-libraries/Makefile
|
||||||
run-make/intrinsic-unreachable/Makefile
|
run-make/intrinsic-unreachable/Makefile
|
||||||
run-make/invalid-library/Makefile
|
|
||||||
run-make/issue-107094/Makefile
|
run-make/issue-107094/Makefile
|
||||||
run-make/issue-109934-lto-debuginfo/Makefile
|
run-make/issue-109934-lto-debuginfo/Makefile
|
||||||
run-make/issue-14698/Makefile
|
run-make/issue-14698/Makefile
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
include ../tools.mk
|
|
||||||
|
|
||||||
all:
|
|
||||||
touch $(TMPDIR)/lib.rmeta
|
|
||||||
$(AR) crus $(TMPDIR)/libfoo-ffffffff-1.0.rlib $(TMPDIR)/lib.rmeta
|
|
||||||
$(RUSTC) foo.rs 2>&1 | $(CGREP) "found invalid metadata"
|
|
8
tests/run-make/invalid-library/rmake.rs
Normal file
8
tests/run-make/invalid-library/rmake.rs
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
use run_make_support::fs_wrapper::create_file;
|
||||||
|
use run_make_support::{ar, rustc};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
create_file("lib.rmeta");
|
||||||
|
ar(&["lib.rmeta"], "libfoo-ffffffff-1.0.rlib");
|
||||||
|
rustc().input("foo.rs").run_fail().assert_stderr_contains("found invalid metadata");
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user