okl4: create elfweaver tools on demand (ref #3329)

This commit is contained in:
Stefan Kalkowski 2019-05-07 16:06:01 +02:00 committed by Christian Helmuth
parent 4fa34190de
commit 817eb4f23c
3 changed files with 18 additions and 13 deletions

View File

@ -50,15 +50,3 @@ include/bootinfo: $(OKL4_DIR)/libs/bootinfo/include
$(VERBOSE)ln -sf $< $@
endif
#
# Create symlink to elfweaver so that the run tool can use it from within the
# build directory.
#
HOST_TOOLS += $(BUILD_BASE_DIR)/tool/okl4/elfweaver
$(BUILD_BASE_DIR)/tool/okl4/elfweaver:
mkdir -p $(dir $@)
cp -a $(OKL4_DIR)/tools/pyelf $(dir $@)/
ln -sf pyelf/elfweaver $@

View File

@ -0,0 +1,11 @@
#
# Create symlink to elfweaver so that the run tool can use it from within the
# build directory.
#
OKL4_DIR = $(call select_from_ports,okl4)/src/kernel/okl4
HOST_TOOLS += $(BUILD_BASE_DIR)/tool/okl4/elfweaver
$(BUILD_BASE_DIR)/tool/okl4/elfweaver:
$(VERBOSE)mkdir -p $(dir $@)
$(VERBOSE)cp -a $(OKL4_DIR)/tools/pyelf $(dir $@)/
$(VERBOSE)ln -sf pyelf/elfweaver $@

View File

@ -98,6 +98,12 @@ proc run_boot_string { } {
proc core_link_address { } { return "0x03000000" }
proc elfweaver {} {
if { ![file exists tool/okl4/elfweaver] } { build LIB=tools }
return tool/okl4/elfweaver
}
##
# Populate directory with binaries on OKL4
#
@ -135,7 +141,7 @@ proc run_boot_dir {binaries} {
#
# Run ELF Weaver to create a boot image
#
set ret [exec "./tool/okl4/elfweaver" merge --output "[run_dir]/image.elf" "[run_dir].weaver.xml"]
set ret [exec [elfweaver] merge --output "[run_dir]/image.elf" "[run_dir].weaver.xml"]
if {[regexp "error" $ret dummy]} {
puts stderr "Elfweaver failed: $ret"
exit -6