mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-27 01:11:06 +00:00
70 lines
2.0 KiB
PHP
70 lines
2.0 KiB
PHP
|
#
|
||
|
# Utility functions for run scripts using Noux GDB
|
||
|
#
|
||
|
|
||
|
|
||
|
#
|
||
|
# Return the name of the Noux GDB package for the configured platform
|
||
|
#
|
||
|
proc noux_gdb_pkg_name { } {
|
||
|
if {[have_spec arm]} {
|
||
|
return "gdb_arm"
|
||
|
} elseif {[have_spec x86]} {
|
||
|
return "gdb_x86"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# Create a tar archive for GDB (stripped)
|
||
|
#
|
||
|
proc create_gdb_tar { } {
|
||
|
exec sh -c "find bin/[noux_gdb_pkg_name]/ -type f | (xargs [cross_dev_prefix]strip || true) 2>/dev/null"
|
||
|
exec tar cfhv bin/gdb.tar -C bin/[noux_gdb_pkg_name] .
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# Create a tar archive for a Noux application and its shared libraries (unstripped)
|
||
|
#
|
||
|
proc create_binary_tar { application_name application_binaries } {
|
||
|
foreach application_binary ${application_binaries} {
|
||
|
exec tar ufv bin/${application_name}.tar -h -C bin ${application_binary}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# Create a tar archive for the source code of a Noux application and its shared
|
||
|
# libraries.
|
||
|
#
|
||
|
# Currently, directories need to have their own tar records
|
||
|
#
|
||
|
proc create_source_tar { application_name application_binaries } {
|
||
|
exec mkdir -p bin/${application_name}-src
|
||
|
foreach application_binary $application_binaries {
|
||
|
set source_files [ exec [cross_dev_prefix]objdump -dl bin/${application_binary} | grep "^/.*:.*" | sed -e "s/:.*//" | uniq ]
|
||
|
foreach source_file ${source_files} {
|
||
|
# resolve '..' to avoid problems with 'tar' with parts like '/a/b/../'
|
||
|
# where '/a' exists, but '/a/b' does not
|
||
|
set source_file [file normalize ${source_file}]
|
||
|
if [file exists ${source_file}] {
|
||
|
set dirname [ exec dirname ${source_file}]
|
||
|
exec mkdir -p bin/${application_name}-src${dirname}
|
||
|
exec ln -sf ${source_file} bin/${application_name}-src${source_file}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
exec tar chf bin/${application_name}-src.tar -C bin/${application_name}-src .
|
||
|
}
|
||
|
|
||
|
|
||
|
#
|
||
|
# Create tar archives for binaries and source code of a Noux application
|
||
|
#
|
||
|
proc create_binary_and_source_tars { application_name application_binaries } {
|
||
|
create_binary_tar ${application_name} ${application_binaries}
|
||
|
create_source_tar ${application_name} ${application_binaries}
|
||
|
}
|
||
|
|