diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-09-21 21:22:34 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-09-21 21:22:34 +0000 |
commit | 901e02171baea1df9d10e7562f9fe32f64354f1f (patch) | |
tree | 328bde4b5955234f635991721bf251c05e246813 /build_tools/strip_nonapi | |
parent | 33d8fe4c3e3958f1be6b9587ce419f5b8eaae728 (diff) |
Merged revisions 43450 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r43450 | kpfleming | 2006-09-21 16:21:29 -0500 (Thu, 21 Sep 2006) | 2 lines
add another attempt to strip non-API symbols from the final binary... script will need to be extended to work on non-Linux systems
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@43451 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'build_tools/strip_nonapi')
-rwxr-xr-x | build_tools/strip_nonapi | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/build_tools/strip_nonapi b/build_tools/strip_nonapi new file mode 100755 index 000000000..99d21f666 --- /dev/null +++ b/build_tools/strip_nonapi @@ -0,0 +1,28 @@ +#!/bin/sh -e + +# This script is designed to remove all non-API global symbols from an object +# file. The only global symbols that should be retained are those that belong +# to the official namespace. Unfortunately doing this is platform-specific, as +# the object file manipulation tools are not consistent across platforms. +# +# On platforms where this script does not know what to do, the object file +# will retain non-API global symbols, and this may have unpleasant side effects. +# +# Prefixes that belong to the official namespace are: +# ast_ +# _ast_ +# __ast_ +# astman_ +# pbx_ + +FILTER="grep -v -e ^ast_ -e ^_ast_ -e ^__ast_ -e ^astman_ -e ^pbx_" + +case "${OSARCH}" in + linux-gnu) + nm ${1} | grep -e " T " | cut -d" " -f3 | ${FILTER} > striplist + sed -e "s/^/-N /" striplist | xargs strip ${1} + rm -f striplist + ;; + *) + ;; +esac |