summaryrefslogtreecommitdiff
path: root/apps/examples/elf/tests/mksymtab.sh
diff options
context:
space:
mode:
Diffstat (limited to 'apps/examples/elf/tests/mksymtab.sh')
-rwxr-xr-xapps/examples/elf/tests/mksymtab.sh39
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 */"
+