diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-03-18 01:28:42 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-03-18 01:28:42 +0000 |
commit | 91282c22ff7b8facf84d267fda0555eb4a17261a (patch) | |
tree | aeee88ffbd06e0bc9b16c4ed7a235e376aedaf13 /build_tools | |
parent | f4a5d593628f3296611859f69ff24ee3d95535da (diff) |
Improve the build system to *properly* remove unnecessary symbols from the runtime global namespace. Along the way, change the prefixes on some internal-only API calls to use a common prefix.
With these changes, for a module to export symbols into the global namespace, it must have *both* the AST_MODFLAG_GLOBAL_SYMBOLS flag and a linker script that allows the linker to leave the symbols exposed in the module's .so file (see res_odbc.exports for an example).
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@182802 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'build_tools')
-rw-r--r-- | build_tools/cflags-devmode.xml | 2 | ||||
-rwxr-xr-x | build_tools/strip_nonapi | 37 |
2 files changed, 0 insertions, 39 deletions
diff --git a/build_tools/cflags-devmode.xml b/build_tools/cflags-devmode.xml index 8be92e71f..9ce9a68d5 100644 --- a/build_tools/cflags-devmode.xml +++ b/build_tools/cflags-devmode.xml @@ -12,6 +12,4 @@ </member> <member name="MTX_PROFILE" displayname="Enable Code Profiling Using TSC Counters"> </member> - <member name="TRACE_FRAMES" displayname="Trace Frame Allocations"> - </member> </category> diff --git a/build_tools/strip_nonapi b/build_tools/strip_nonapi deleted file mode 100755 index ade30c978..000000000 --- a/build_tools/strip_nonapi +++ /dev/null @@ -1,37 +0,0 @@ -#!/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_ - -case "${PROC}" in - powerpc64) - TEXTSYM=" D " - ;; - *) - TEXTSYM=" T " - ;; -esac - -FILTER="${GREP} -v -e ^ast_ -e ^_ast_ -e ^__ast_ -e ^astman_ -e ^pbx_" - -case "${OSARCH}" in - linux-gnu) - nm ${1} | ${GREP} -e "$TEXTSYM" | cut -d" " -f3 | ${FILTER} > striplist - sed -e "s/^/-N /" striplist | xargs -n 40 ${STRIP} ${1} - rm -f striplist - ;; - *) - ;; -esac |