From: Kevin P. Fleming Date: Thu, 21 Sep 2006 21:22:34 +0000 (+0000) Subject: Merged revisions 43450 via svnmerge from X-Git-Tag: 1.6.0-beta1~3^2~4684 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f1d824aabacb3dfbda8c406e0d4e22c279cf2638;p=thirdparty%2Fasterisk.git 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: https://origsvn.digium.com/svn/asterisk/trunk@43451 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/build_tools/strip_nonapi b/build_tools/strip_nonapi new file mode 100755 index 0000000000..99d21f6667 --- /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 diff --git a/main/Makefile b/main/Makefile index da2197f9b9..b615c3b659 100644 --- a/main/Makefile +++ b/main/Makefile @@ -130,7 +130,8 @@ asterisk: $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS) @rm -f $(ASTTOPDIR)/include/asterisk/build.h.tmp @$(CC) -c -o buildinfo.o $(CFLAGS) buildinfo.c $(ECHO_PREFIX) echo " [LD] $^ -> $@" - $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o asterisk $(ASTLINK) $(AST_EMBED_LDFLAGS) $(LDFLAGS) $(H323LDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(H323LDLIBS) + $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(LDFLAGS) $(H323LDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(H323LDLIBS) + @$(ASTTOPDIR)/build_tools/strip_nonapi $@ clean:: rm -f asterisk