more optimizations for embedded systems:

when LOADABLE_MODULES is off, don't export symbols from the main binary
  when LOADABLE_MODULES is off, and the compiler/linker support it, strip out code not used in the final binary


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41166 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kevin P. Fleming
2006-08-26 16:45:35 +00:00
parent b374245688
commit aa7b32d175
5 changed files with 329 additions and 151 deletions

View File

@@ -251,6 +251,35 @@ AC_DEFINE([HAVE_GCC_ATOMICS], 1, [Define to 1 if your GCC C compiler provides at
AC_MSG_RESULT(no)
)
AST_GCC_ATTRIBUTE(pure)
AST_GCC_ATTRIBUTE(malloc)
AST_GCC_ATTRIBUTE(const)
AST_GCC_ATTRIBUTE(unused)
AST_GCC_ATTRIBUTE(always_inline)
AC_MSG_CHECKING(checking for -ffunction-sections support)
saved_CFLAGS="${CFLAGS}"
CFLAGS="${CFLAGS} -ffunction-sections"
AC_COMPILE_IFELSE(
AC_LANG_PROGRAM([], [int x = 1;]),
AC_MSG_RESULT(yes)
[saved_LDFLAGS="${LDFLAGS}"]
[LDFLAGS="${LDFLAGS} -Wl,--gc-sections"]
AC_MSG_CHECKING(checking for --gc-sections support)
AC_LINK_IFELSE(
AC_LANG_PROGRAM([], [int x = 1;]),
AC_MSG_RESULT(yes)
[GC_CFLAGS="-ffunction-sections"]
[[GC_LDFLAGS="-Wl,--gc-sections"]],
AC_MSG_RESULT(no)
)
[LDFLAGS="${saved_LDFLAGS}"],
AC_MSG_RESULT(no)
)
CFLAGS="${saved_CFLAGS}"
AC_SUBST(GC_CFLAGS)
AC_SUBST(GC_LDFLAGS)
AC_MSG_CHECKING(checking for res_ninit)
AC_LINK_IFELSE(
AC_LANG_PROGRAM([#include <resolv.h>],
@@ -269,12 +298,6 @@ AC_LINK_IFELSE(
AC_MSG_RESULT(no)
)
AST_GCC_ATTRIBUTE(pure)
AST_GCC_ATTRIBUTE(malloc)
AST_GCC_ATTRIBUTE(const)
AST_GCC_ATTRIBUTE(unused)
AST_GCC_ATTRIBUTE(always_inline)
AC_CHECK_HEADER([libkern/OSAtomic.h],
[AC_DEFINE_UNQUOTED([HAVE_OSX_ATOMICS], 1, [Define to 1 if OSX atomic operations are supported.])])