1
1
// Tests the -Zembed-metadata compiler flag.
2
2
// Tracking issue: https://github.com/rust-lang/rust/issues/139165
3
3
4
+ //@ needs-dynamic-linking
5
+ //@ needs-crate-type: dylib
6
+
4
7
use run_make_support:: rfs:: { create_dir, remove_file, rename} ;
5
- use run_make_support:: { Rustc , dynamic_lib_name, path, run_in_tmpdir, rust_lib_name, rustc} ;
8
+ use run_make_support:: {
9
+ Rustc , dynamic_lib_name, path, run_in_tmpdir, rust_lib_name, rustc, target,
10
+ } ;
6
11
7
12
#[ derive( Debug , Copy , Clone ) ]
8
13
enum LibraryKind {
@@ -42,7 +47,7 @@ fn main() {
42
47
fn lookup_rmeta_in_lib_dir ( kind : LibraryKind ) {
43
48
run_in_tmpdir ( || {
44
49
build_dep_rustc ( kind) . run ( ) ;
45
- rustc ( ) . input ( "foo.rs" ) . run ( ) ;
50
+ rustc ( ) . target ( target ( ) ) . input ( "foo.rs" ) . run ( ) ;
46
51
} ) ;
47
52
}
48
53
@@ -54,6 +59,7 @@ fn lookup_rmeta_through_extern(kind: LibraryKind) {
54
59
build_dep_rustc ( kind) . out_dir ( "deps" ) . run ( ) ;
55
60
56
61
let mut rustc = rustc ( ) ;
62
+ rustc. target ( target ( ) ) ;
57
63
kind. add_extern ( & mut rustc, "dep1" , "deps" ) ;
58
64
rustc. extern_ ( "dep1" , path ( "deps" ) . join ( "libdep1.rmeta" ) ) ;
59
65
rustc. input ( "foo.rs" ) . run ( ) ;
@@ -67,13 +73,15 @@ fn lookup_rmeta_missing(kind: LibraryKind) {
67
73
build_dep_rustc ( kind) . out_dir ( "deps" ) . run ( ) ;
68
74
69
75
let mut rustc = rustc ( ) ;
76
+ rustc. target ( target ( ) ) ;
70
77
kind. add_extern ( & mut rustc, "dep1" , "deps" ) ;
71
78
rustc. input ( "foo.rs" ) . run_fail ( ) . assert_stderr_contains ( "only metadata stub found" ) ;
72
79
} ) ;
73
80
}
74
81
75
82
fn build_dep_rustc ( kind : LibraryKind ) -> Rustc {
76
83
let mut dep_rustc = rustc ( ) ;
84
+ dep_rustc. target ( target ( ) ) ;
77
85
dep_rustc
78
86
. arg ( "-Zembed-metadata=no" )
79
87
. crate_type ( kind. crate_type ( ) )
0 commit comments