summaryrefslogtreecommitdiff
path: root/apps/examples/elf/tests/mksymtab.sh
blob: fa1a2d0302723b0f1b8b22d96ad75509061f51cd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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 */"