run: improve 'build_boot_image [build_artifacts]'

This patch make the use of the result of the 'build_artifacts' function
as input for 'build_boot_image' more robust. Since 'build_artifacts'
obtains binary names from the progress.log, the names of core,
ld.lib.so, and the timer correspond to the kernel-specific names.

However, 'build_boot_image' expects the kernel-agnostic names as
arguments. Kernel-specific files need special treatment when integrated
in the boot image: the kernel-specific file is copied and renamed to the
kernel-agnostic name. Without this patch, the kernel-specific file is
copied as is (e.g., ld-nova.lib.so). So the name of the ROM module is
wrong. This patch resets the kernel-specific names to the generic names
so that the special-case handling comes into effect.
This commit is contained in:
Norman Feske 2022-09-02 15:43:25 +02:00
parent f1f0ee3a21
commit 7be98166ee

View File

@ -749,6 +749,16 @@ proc copy_file {src dst} {
proc copy_genode_binaries_to_run_dir { binaries } {
foreach binary $binaries {
#
# Normalize kernel-specific file names, needed when a run script passes
# [build_artifacts] to the build_boot_image command. The build artfact
# fetched from the progress.log has the kernel-specific name.
#
foreach name { "timer" "core" "ld.lib.so" } {
if {$binary == [kernel_specific_binary $name silent]} {
set binary $name } }
copy_file bin/[kernel_specific_binary $binary] [run_dir]/genode/$binary
}
}