1- use std:: collections:: HashSet ;
21use std:: env:: { self , VarError } ;
32
43use anyhow:: Result ;
@@ -68,8 +67,7 @@ impl Build {
6867 sh. create_dir ( dist_archive. as_ref ( ) . parent ( ) . unwrap ( ) ) ?;
6968 sh. copy_file ( & build_archive, & dist_archive) ?;
7069
71- eprintln ! ( "Exporting symbols" ) ;
72- self . export_syms ( ) ?;
70+ self . cargo_build . artifact . dist_archive ( ) . retain_kernel_symbols ( ) ?;
7371
7472 eprintln ! ( "Building hermit-builtins" ) ;
7573 let mut cargo = crate :: cargo ( ) ;
@@ -85,11 +83,8 @@ impl Build {
8583 let status = cargo. status ( ) ?;
8684 assert ! ( status. success( ) ) ;
8785
88- eprintln ! ( "Exporting hermit-builtins symbols" ) ;
8986 let builtins = self . cargo_build . artifact . builtins_archive ( ) ;
90- let builtin_symbols = sh. read_file ( "hermit-builtins/exports" ) ?;
91- builtins. retain_symbols ( builtin_symbols. lines ( ) . collect :: < HashSet < _ > > ( ) ) ?;
92-
87+ builtins. retain_builtin_symbols ( ) ?;
9388 dist_archive. append ( & builtins) ?;
9489
9590 eprintln ! ( "Setting OSABI" ) ;
@@ -131,17 +126,4 @@ impl Build {
131126
132127 Ok ( rustflags. join ( "\x1f " ) )
133128 }
134-
135- fn export_syms ( & self ) -> Result < ( ) > {
136- let archive = self . cargo_build . artifact . dist_archive ( ) ;
137-
138- let syscall_symbols = archive. syscall_symbols ( ) ?;
139- let explicit_exports = [ "_start" , "__bss_start" , "mcount" , "runtime_entry" ] . into_iter ( ) ;
140-
141- let symbols = explicit_exports. chain ( syscall_symbols. iter ( ) . map ( String :: as_str) ) ;
142-
143- archive. retain_symbols ( symbols. collect :: < HashSet < _ > > ( ) ) ?;
144-
145- Ok ( ( ) )
146- }
147129}
0 commit comments