OSDN Git Service

Add FreeBSD support for find_typedef, per request from Andrew.
authorBruce Momjian <bruce@momjian.us>
Thu, 11 Jun 2009 03:14:08 +0000 (03:14 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 11 Jun 2009 03:14:08 +0000 (03:14 +0000)
src/tools/find_typedef

index 5ce2d1f..0474245 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-# $PostgreSQL: pgsql/src/tools/find_typedef,v 1.13 2009/06/10 15:13:45 momjian Exp $
+# $PostgreSQL: pgsql/src/tools/find_typedef,v 1.14 2009/06/11 03:14:08 momjian Exp $
 
 # This script attempts to find all typedef's in the postgres binaries
 # by using 'nm' to report all typedef debugging symbols.
@@ -47,6 +47,11 @@ do   # if objdump -W is recognized, only one line of error should appear
                objdump -W "$DIR"/* |
                egrep -A3 'DW_TAG_typedef' |
                awk ' $2 == "DW_AT_name" {print $NF}'
+       elif [ `readelf -w 2>&1 | wc -l` -gt 1 ]
+       then    # FreeBSD, similar output to Linux
+               readelf -w "$DIR"/* |
+               egrep -A3 '\(DW_TAG_typedef\)' |
+               awk ' $1 == "DW_AT_name" {print $NF}'
        else    # BSD/OS
                objdump --stabs "$DIR"/* |
                awk ' $2 == "LSYM" && $7 ~ /:t/ {sub(":.*", "", $7); print $7}'