mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 20:04:50 +00:00
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/branches/1.4@43450 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
28
build_tools/strip_nonapi
Executable file
28
build_tools/strip_nonapi
Executable file
@@ -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
|
@@ -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
|
||||
|
Reference in New Issue
Block a user