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:: * ;
@@ -956,13 +957,26 @@ impl Step for Assemble {
956
957
builder. info ( & format ! ( "Assembling stage{} compiler ({})" , stage, host) ) ;
957
958
958
959
// Link in all dylibs to the libdir
960
+ let stamp = librustc_stamp ( builder, build_compiler, target_compiler. host ) ;
961
+ let proc_macros = builder
962
+ . read_stamp_file ( & stamp)
963
+ . into_iter ( )
964
+ . filter_map ( |( path, dependency_type) | {
965
+ if dependency_type == DependencyType :: Host {
966
+ Some ( path. file_name ( ) . unwrap ( ) . to_owned ( ) . into_string ( ) . unwrap ( ) )
967
+ } else {
968
+ None
969
+ }
970
+ } )
971
+ . collect :: < HashSet < _ > > ( ) ;
972
+
959
973
let sysroot = builder. sysroot ( target_compiler) ;
960
974
let rustc_libdir = builder. rustc_libdir ( target_compiler) ;
961
975
t ! ( fs:: create_dir_all( & rustc_libdir) ) ;
962
976
let src_libdir = builder. sysroot_libdir ( build_compiler, host) ;
963
977
for f in builder. read_dir ( & src_libdir) {
964
978
let filename = f. file_name ( ) . into_string ( ) . unwrap ( ) ;
965
- if is_dylib ( & filename) {
979
+ if is_dylib ( & filename) && !proc_macros . contains ( & filename ) {
966
980
builder. copy ( & f. path ( ) , & rustc_libdir. join ( & filename) ) ;
967
981
}
968
982
}
You can’t perform that action at this time.
0 commit comments