dect
/
asterisk
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
asterisk/build_tools/strip_nonapi

39 lines
969 B
Bash
Executable File

#!/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_
# resample_
FILTER="${GREP} -v -e ^ast_ -e ^_ast_ -e ^__ast_ -e ^astman_ -e ^pbx_ -e ^resample_"
case "${PROC}" in
powerpc64)
TEXTSYM=" D "
;;
*)
TEXTSYM=" T "
;;
esac
case "${OSARCH}" in
linux-gnu|FreeBSD)
nm ${1} | ${GREP} -e "$TEXTSYM" | cut -d" " -f3 | ${FILTER} > striplist
sed -e "s/^/-N /" striplist | xargs -n 40 ${STRIP} ${1}
rm -f striplist
;;
*)
;;
esac