@@ -225,7 +225,9 @@ function create_fresh_base_sysimage(stdlibs::Vector{String}; cpu_target::String,
225225 sysimg_source_path = Base. find_source_file (" sysimg.jl" )
226226 base_dir = dirname (sysimg_source_path)
227227 tmp_corecompiler_ji = joinpath (tmp, " corecompiler.ji" )
228- tmp_sys_ji = joinpath (tmp, " sys.ji" )
228+ tmp_sys_o = joinpath (tmp, " sys.o" )
229+ tmp_sys_sl = joinpath (tmp, " sys." * Libdl. dlext)
230+
229231 compiler_source_path = joinpath (base_dir, " compiler" , " compiler.jl" )
230232
231233 # we can't strip the IR from the base sysimg, so we filter out this flag
@@ -234,17 +236,20 @@ function create_fresh_base_sysimage(stdlibs::Vector{String}; cpu_target::String,
234236 filter! (p -> ! contains (p, " --compile" ) && p ∈ ̸ (" --strip-ir" ,), sysimage_build_args_strs)
235237 sysimage_build_args = Cmd (sysimage_build_args_strs)
236238
237- spinner = TerminalSpinners . Spinner (msg = " PackageCompiler: compiling base system image (incremental=false) " )
238- TerminalSpinners. @spin spinner begin
239- cd (base_dir) do
239+ cd (base_dir) do
240+ spinner = TerminalSpinners. Spinner (msg = " PackageCompiler: creating compiler .ji image (incremental=false) " )
241+ TerminalSpinners . @spin spinner begin
240242 # Create corecompiler.ji
241243 cmd = ` $(get_julia_cmd ()) --cpu-target $cpu_target
242244 --output-ji $tmp_corecompiler_ji $sysimage_build_args
243245 $compiler_source_path `
244246 @debug " running $cmd "
245247
246248 read (cmd)
249+ end
247250
251+ spinner = TerminalSpinners. Spinner (msg = " PackageCompiler: compiling fresh sysimage (incremental=false)" )
252+ TerminalSpinners. @spin spinner begin
248253 # Use that to create sys.ji
249254 new_sysimage_content = rewrite_sysimg_jl_only_needed_stdlibs (stdlibs)
250255 new_sysimage_content *= " \n empty!(Base.atexit_hooks)\n "
@@ -253,18 +258,27 @@ function create_fresh_base_sysimage(stdlibs::Vector{String}; cpu_target::String,
253258 try
254259 cmd = ` $(get_julia_cmd ()) --cpu-target $cpu_target
255260 --sysimage=$tmp_corecompiler_ji
256- $sysimage_build_args --output-ji= $tmp_sys_ji
261+ $sysimage_build_args --output-o= $tmp_sys_o
257262 $new_sysimage_source_path `
258263 @debug " running $cmd "
259264
260265 read (cmd)
266+
267+ create_sysimg_from_object_file (String[tmp_sys_o],
268+ tmp_sys_sl;
269+ version= nothing ,
270+ soname= nothing ,
271+ compat_level= " major" )
272+
261273 finally
262274 rm (new_sysimage_source_path; force= true )
275+ rm (tmp_corecompiler_ji; force= true )
276+ rm (tmp_sys_o; force= true )
263277 end
264278 end
265279 end
266280
267- return tmp_sys_ji
281+ return tmp_sys_sl
268282end
269283
270284function ensurecompiled (project, packages, sysimage)
0 commit comments