File tree 1 file changed +15
-1
lines changed
1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change 7
7
//! goes along from the output of the previous stage.
8
8
9
9
use std:: borrow:: Cow ;
10
+ use std:: collections:: HashSet ;
10
11
use std:: env;
11
12
use std:: fs;
12
13
use std:: io:: prelude:: * ;
@@ -991,13 +992,26 @@ impl Step for Assemble {
991
992
builder. info ( & format ! ( "Assembling stage{} compiler ({})" , stage, host) ) ;
992
993
993
994
// Link in all dylibs to the libdir
995
+ let stamp = librustc_stamp ( builder, build_compiler, target_compiler. host ) ;
996
+ let proc_macros = builder
997
+ . read_stamp_file ( & stamp)
998
+ . into_iter ( )
999
+ . filter_map ( |( path, dependency_type) | {
1000
+ if dependency_type == DependencyType :: Host {
1001
+ Some ( path. file_name ( ) . unwrap ( ) . to_owned ( ) . into_string ( ) . unwrap ( ) )
1002
+ } else {
1003
+ None
1004
+ }
1005
+ } )
1006
+ . collect :: < HashSet < _ > > ( ) ;
1007
+
994
1008
let sysroot = builder. sysroot ( target_compiler) ;
995
1009
let rustc_libdir = builder. rustc_libdir ( target_compiler) ;
996
1010
t ! ( fs:: create_dir_all( & rustc_libdir) ) ;
997
1011
let src_libdir = builder. sysroot_libdir ( build_compiler, host) ;
998
1012
for f in builder. read_dir ( & src_libdir) {
999
1013
let filename = f. file_name ( ) . into_string ( ) . unwrap ( ) ;
1000
- if is_dylib ( & filename) {
1014
+ if is_dylib ( & filename) && !proc_macros . contains ( & filename ) {
1001
1015
builder. copy ( & f. path ( ) , & rustc_libdir. join ( & filename) ) ;
1002
1016
}
1003
1017
}
You can’t perform that action at this time.
0 commit comments