summaryrefslogtreecommitdiff
path: root/apps/examples/posix_spawn/filesystem/mksymtab.sh
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-01-10 21:39:57 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-01-10 21:39:57 +0000
commit697666a4f68ea2cd163cbba71dd703ee7b8efab5 (patch)
tree131c191493d4b1db094cddb4ce39e9d75c539daf /apps/examples/posix_spawn/filesystem/mksymtab.sh
parenta98403873095d93cc68226cc63f15a6194bf2268 (diff)
downloadnuttx-697666a4f68ea2cd163cbba71dd703ee7b8efab5.tar.gz
nuttx-697666a4f68ea2cd163cbba71dd703ee7b8efab5.tar.bz2
nuttx-697666a4f68ea2cd163cbba71dd703ee7b8efab5.zip
Added a test of posix_spawn()
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5507 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'apps/examples/posix_spawn/filesystem/mksymtab.sh')
-rwxr-xr-xapps/examples/posix_spawn/filesystem/mksymtab.sh51
1 files changed, 51 insertions, 0 deletions
diff --git a/apps/examples/posix_spawn/filesystem/mksymtab.sh b/apps/examples/posix_spawn/filesystem/mksymtab.sh
new file mode 100755
index 000000000..51408a89c
--- /dev/null
+++ b/apps/examples/posix_spawn/filesystem/mksymtab.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+usage="Usage: $0 <test-dir-path>"
+
+# Check for the required ROMFS directory 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
+
+# Extract all of the undefined symbols from the ELF files and create a
+# list of sorted, unique undefined variable names.
+
+varlist=`find ${dir} -executable -type f | xargs nm | fgrep ' U ' | sed -e "s/^[ ]*//g" | cut -d' ' -f2 | sort | uniq`
+
+# Now output the symbol table as a structure in a C source file. All
+# undefined symbols are declared as void* types. If the toolchain does
+# any kind of checking for function vs. data objects, then this could
+# faile
+
+echo "#include <nuttx/compiler.h>"
+echo "#include <nuttx/binfmt/symtab.h>"
+echo ""
+
+for var in $varlist; do
+ echo "extern void *${var};"
+done
+
+echo ""
+echo "const struct symtab_s exports[] = "
+echo "{"
+
+for var in $varlist; do
+ echo " {\"${var}\", &${var}},"
+done
+
+echo "};"
+echo ""
+echo "const int nexports = sizeof(exports) / sizeof(struct symtab_s);"
+