diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-01-10 21:39:57 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-01-10 21:39:57 +0000 |
commit | 697666a4f68ea2cd163cbba71dd703ee7b8efab5 (patch) | |
tree | 131c191493d4b1db094cddb4ce39e9d75c539daf /apps/examples/posix_spawn/filesystem/mksymtab.sh | |
parent | a98403873095d93cc68226cc63f15a6194bf2268 (diff) | |
download | nuttx-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-x | apps/examples/posix_spawn/filesystem/mksymtab.sh | 51 |
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);" + |