From 2978147e227ca6d62fc4315d9c81012e60bcd5c9 Mon Sep 17 00:00:00 2001 From: fros4943 Date: Mon, 18 Dec 2006 15:25:01 +0000 Subject: [PATCH] scripts for auto-generating symbols.[c,h] may for example be called from a platform makefile --- tools/make-symbols-nm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 tools/make-symbols-nm diff --git a/tools/make-symbols-nm b/tools/make-symbols-nm new file mode 100755 index 000000000..ca749277b --- /dev/null +++ b/tools/make-symbols-nm @@ -0,0 +1,22 @@ +#!/bin/sh + +SYMBOLS=`nm -P $* | grep -v " . _ " | grep " [A-Z] " | cut -f 1 -d \ | grep -v symbols | wc -l` +SYMBOLS=`expr $SYMBOLS + 1` + +echo \#ifndef __SYMBOLS_H__ > symbols.h +echo \#define __SYMBOLS_H__ >> symbols.h +echo \#include '"loader/symbols-def.h"' >> symbols.h +echo "extern const struct symbols symbols[$SYMBOLS];" >> symbols.h +echo \#endif >> symbols.h + +echo \#include '"symbols.h"' > symbols.c + +nm -P $* | grep -v " . _ " | grep " [A-Z] " | cut -f 1 -d \ | grep -v symbols | perl -ne 'print "extern int $1();\n" if(/(\w+)/)' | sort >> symbols.c + +echo "const struct symbols symbols[$SYMBOLS] = {" >> symbols.c + +if [ -f $* ] ; then + nm -P $* | grep -v " . _ " | grep " [A-Z] " | cut -f 1 -d \ | grep -v symbols | perl -ne 'print "{\"$1\", (char *)$1},\n" if(/(\w+)/)' | sort >> symbols.c +fi + +echo "{(void *)0, 0} };" >> symbols.c