diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-10-25 20:06:46 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-10-25 20:06:46 +0000 |
commit | 5ae419f6845ff28bcbdb339cdfb66f6b2e46f9ab (patch) | |
tree | 871dcd80c04a5b65c613cbc80c92a83d7bbbbe46 /apps/examples/elf/tests/mksymtab.sh | |
parent | 8cbc20e05c24cc3e2b0b4774f4850357b9f46595 (diff) | |
download | px4-nuttx-5ae419f6845ff28bcbdb339cdfb66f6b2e46f9ab.tar.gz px4-nuttx-5ae419f6845ff28bcbdb339cdfb66f6b2e46f9ab.tar.bz2 px4-nuttx-5ae419f6845ff28bcbdb339cdfb66f6b2e46f9ab.zip |
Add an example for testing the ELF loader
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5260 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'apps/examples/elf/tests/mksymtab.sh')
-rwxr-xr-x | apps/examples/elf/tests/mksymtab.sh | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/apps/examples/elf/tests/mksymtab.sh b/apps/examples/elf/tests/mksymtab.sh new file mode 100755 index 000000000..fa1a2d030 --- /dev/null +++ b/apps/examples/elf/tests/mksymtab.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +usage="Usage: %0 <test-dir-path>" + +dir=$1 +if [ -z "$dir" ]; then + echo "ERROR: Missing <test-dir-path>" + echo "" + echo $usage + exit 1 +fi + +if [ ! -d "$dir" ]; then + echo "ERROR: Directory $dir does not exist" + echo "" + echo $usage + exit 1 +fi + +varlist=`find $dir -name "*-thunk.S"| xargs grep -h asciz | cut -f3 | sort | uniq` + +echo "#ifndef __EXAMPLES_ELF_TESTS_SYMTAB_H" +echo "#define __EXAMPLES_ELF_TESTS_SYMTAB_H" +echo "" +echo "#include <nuttx/binfmt/symtab.h>" +echo "" +echo "static const struct symtab_s exports[] = " +echo "{" + +for string in $varlist; do + var=`echo $string | sed -e "s/\"//g"` + echo " {$string, $var}," +done + +echo "};" +echo "#define NEXPORTS (sizeof(exports)/sizeof(struct symtab_s))" +echo "" +echo "#endif /* __EXAMPLES_ELF_TESTS_SYMTAB_H */" + |