#!/bin/sh # $PostgreSQL: pgsql/src/tools/find_typedef,v 1.6 2006/03/11 04:38:41 momjian Exp $ # This script attempts to find all typedef's in the postgres binaries # by using 'nm' to report all typedef debugging symbols. # # For this program to work, you must have compiled all binaries with # debugging symbols. # # This is run on BSD/OS 4.0, so you may need to make changes. # # Ignore the nm errors about a file not being a binary file. # # Remember, debugging symbols are your friends. # if [ "$#" -eq 0 -o ! -d "$1" ] then echo "Usage: $0 postgres_binary_directory [...]" 1>&2 exit 1 fi for DIR do objdump --stabs "$DIR"/* | grep "LSYM" | awk '{print $7}' | grep ':t' | sed 's/^\([^:]*\).*$/\1/' | grep -v ' ' # some typedefs have spaces, remove them done | sort | uniq | # these are used both for typedefs and variable names # so do not include them egrep -v '^(date|interval|timestamp|ANY)$' | sed 's/\(.*\)/-T\1 \\/'