Skip to content

Commit bee2eea

Browse files
committed
Rewrite lto-readonly-lib to rmake
1 parent 6574fc4 commit bee2eea

File tree

4 files changed

+30
-19
lines changed

4 files changed

+30
-19
lines changed

src/tools/tidy/src/allowed_run_make_makefiles.txt

-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,6 @@ run-make/lto-dylib-dep/Makefile
129129
run-make/lto-empty/Makefile
130130
run-make/lto-linkage-used-attr/Makefile
131131
run-make/lto-no-link-whole-rlib/Makefile
132-
run-make/lto-readonly-lib/Makefile
133132
run-make/lto-smoke-c/Makefile
134133
run-make/macos-deployment-target/Makefile
135134
run-make/macos-fat-archive/Makefile

tests/run-make/ls-metadata/rmake.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
//@ ignore-cross-compile
88

99
use run_make_support::fs_wrapper;
10-
use run_make_support::{rmake_out_path, rustc};
10+
use run_make_support::rustc;
1111

1212
fn main() {
13-
rustc().input("foo.rs");
14-
rustc().arg("-Zls=root").input(rmake_out_path("foo"));
15-
fs_wrapper::create_file(rmake_out_path("bar"));
16-
rustc().arg("-Zls=root").input(rmake_out_path("bar"));
13+
rustc().input("foo.rs").run();
14+
rustc().arg("-Zls=root").input("foo").run();
15+
fs_wrapper::create_file("bar");
16+
rustc().arg("-Zls=root").input("bar").run();
1717
}

tests/run-make/lto-readonly-lib/Makefile

-13
This file was deleted.
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// When the compiler is performing link time optimization, it will
2+
// need to copy the original rlib file, set the copy's permissions to read/write,
3+
// and modify that copy - even if the original
4+
// file is read-only. This test creates a read-only rlib, and checks that
5+
// compilation with LTO succeeds.
6+
// See https://github.com/rust-lang/rust/pull/17619
7+
8+
//@ ignore-cross-compile
9+
10+
use run_make_support::fs_wrapper;
11+
use run_make_support::{cwd, run, rustc};
12+
13+
fn main() {
14+
rustc().input("lib.rs").run();
15+
let entries = fs_wrapper::read_dir(cwd());
16+
for entry in entries {
17+
if entry.path().extension().and_then(|s| s.to_str()) == Some("rlib") {
18+
let mut perms = fs_wrapper::metadata(entry.path()).permissions();
19+
perms.set_readonly(true);
20+
fs_wrapper::set_permissions(entry.path(), perms);
21+
}
22+
}
23+
rustc().input("main.rs").arg("-Clto").run();
24+
run("main");
25+
}

0 commit comments

Comments
 (0)