@@ -42,6 +42,18 @@ impl Build {
4242 sh. remove_path ( & dist_archive) ?;
4343 dist_archive. create ( ) ?;
4444
45+ self . build_kernel ( ) ?;
46+
47+ self . build_builtins ( ) ?;
48+
49+ eprintln ! ( "Setting OSABI" ) ;
50+ dist_archive. set_osabi ( ) ?;
51+
52+ eprintln ! ( "Kernel available at {}" , dist_archive. as_ref( ) . display( ) ) ;
53+ Ok ( ( ) )
54+ }
55+
56+ fn build_kernel ( & self ) -> Result < ( ) > {
4557 let careful = match env:: var_os ( "HERMIT_CAREFUL" ) {
4658 Some ( val) if val == "1" => & [ "careful" ] [ ..] ,
4759 _ => & [ ] ,
@@ -62,10 +74,15 @@ impl Build {
6274 assert ! ( status. success( ) ) ;
6375
6476 let build_archive = self . cargo_build . artifact . build_archive ( ) ;
77+ let dist_archive = self . cargo_build . artifact . dist_archive ( ) ;
78+
79+ build_archive. retain_kernel_symbols ( ) ?;
6580 dist_archive. append ( & build_archive) ?;
6681
67- self . cargo_build . artifact . dist_archive ( ) . retain_kernel_symbols ( ) ?;
82+ Ok ( ( ) )
83+ }
6884
85+ fn build_builtins ( & self ) -> Result < ( ) > {
6986 eprintln ! ( "Building hermit-builtins" ) ;
7087 let mut cargo = crate :: cargo ( ) ;
7188 cargo
@@ -80,14 +97,12 @@ impl Build {
8097 let status = cargo. status ( ) ?;
8198 assert ! ( status. success( ) ) ;
8299
83- let builtins = self . cargo_build . artifact . builtins_archive ( ) ;
84- builtins. retain_builtin_symbols ( ) ?;
85- dist_archive. append ( & builtins) ?;
100+ let builtins_archive = self . cargo_build . artifact . builtins_archive ( ) ;
101+ let dist_archive = self . cargo_build . artifact . dist_archive ( ) ;
86102
87- eprintln ! ( "Setting OSABI" ) ;
88- dist_archive. set_osabi ( ) ?;
103+ builtins_archive . retain_builtin_symbols ( ) ? ;
104+ dist_archive. append ( & builtins_archive ) ?;
89105
90- eprintln ! ( "Kernel available at {}" , dist_archive. as_ref( ) . display( ) ) ;
91106 Ok ( ( ) )
92107 }
93108
0 commit comments