From 3b1153c435ea8fa76c4f852853969bcf7ff52c40 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 10 Apr 2007 13:24:52 +0200 Subject: [PATCH] Add --enable-symbolic-functions configure option Added --enable-symbolic-functions configure option. This will detect and pass -Bsymbolic-functions linker option, which gives you better performance and smaller binary size. Only recent binutils supports this option. --- configure.in | 17 +++++++++++++++++ src/Makefile.am | 8 +++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/configure.in b/configure.in index 09b4ec00..a60de046 100644 --- a/configure.in +++ b/configure.in @@ -107,6 +107,23 @@ else fi AM_CONDITIONAL(VERSIONED_SYMBOLS, test x$versioned = xyes) +dnl Check for symbolic-functions +AC_MSG_CHECKING(for symbolic-functions) +AC_ARG_ENABLE(symbolic-functions, + AS_HELP_STRING([--enable-symbolic-functions], + [use -Bsymbolic-functions option if available (optmization for size and speed)]), + symfuncs="$enableval", symfuncs="no") +if test "$symfuncs" = "yes"; then + if ld --help | grep -q -- '-Bsymbolic-functions'; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(not supported by ld) + fi +else + AC_MSG_RESULT(no) +fi +AM_CONDITIONAL(SYMBOLIC_FUNCTIONS, test x"$symfuncs" = xyes) + dnl See if toolchain has a custom prefix for symbols ... AC_MSG_CHECKING(for custom symbol prefixes) SYMBOL_PREFIX=` \ diff --git a/src/Makefile.am b/src/Makefile.am index 32ac8ad2..3be7049c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -7,6 +7,12 @@ else VSYMS = endif +if SYMBOLIC_FUNCTIONS +SYMFUNCS = -Wl,-Bsymbolic-functions +else +SYMFUNCS = +endif + lib_LTLIBRARIES = libasound.la libasound_la_SOURCES = conf.c confmisc.c input.c output.c async.c error.c dlmisc.c socket.c shmarea.c userfile.c names.c @@ -43,7 +49,7 @@ endif SUBDIRS += compat conf libasound_la_LIBADD += compat/libcompat.la @ALSA_DEPLIBS@ -libasound_la_LDFLAGS = -version-info $(COMPATNUM) $(VSYMS) +libasound_la_LDFLAGS = -version-info $(COMPATNUM) $(VSYMS) $(SYMFUNCS) control/libcontrol.la: $(MAKE) -C control libcontrol.la -- 2.47.1