From 6b9a717c26229accc6d871b3c7d77cb34d5a68ac Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Sat, 30 Oct 2010 13:20:33 -0700 Subject: [PATCH] configure: Add a check for the -Wl,--as-needed flag. This fits with our general build philosophy of checking at configure time for desired support, (rather than putting platform-specific conditionals into our Makefiles). --- Makefile.local | 6 ++---- configure | 13 +++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Makefile.local b/Makefile.local index ef3a3544..490265b0 100644 --- a/Makefile.local +++ b/Makefile.local @@ -31,11 +31,9 @@ GPG_FILE=$(SHA1_FILE).asc # Smash together user's values with our extra values FINAL_CFLAGS = -DNOTMUCH_VERSION=$(VERSION) $(CFLAGS) $(WARN_CFLAGS) $(CONFIGURE_CFLAGS) $(extra_cflags) FINAL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(CONFIGURE_CXXFLAGS) $(extra_cflags) $(extra_cxxflags) -FINAL_NOTMUCH_LDFLAGS = $(LDFLAGS) -Llib -lnotmuch $(GMIME_LDFLAGS) $(TALLOC_LDFLAGS) +FINAL_NOTMUCH_LDFLAGS = $(LDFLAGS) -Llib -lnotmuch $(GMIME_LDFLAGS) $(TALLOC_LDFLAGS) $(AS_NEEDED_LDFLAGS) FINAL_NOTMUCH_LINKER = CC -ifeq ($(LINKER_RESOLVES_LIBRARY_DEPENDENCIES),1) -FINAL_NOTMUCH_LDFLAGS += -Wl,--as-needed -else +ifneq ($(LINKER_RESOLVES_LIBRARY_DEPENDENCIES),1) FINAL_NOTMUCH_LDFLAGS += $(CONFIGURE_LDFLAGS) FINAL_NOTMUCH_LINKER = CXX endif diff --git a/configure b/configure index 1d93b2e4..bab25016 100755 --- a/configure +++ b/configure @@ -402,6 +402,16 @@ else rpath_ldflags="" fi +printf "Checking for -Wl,--as-needed... " +if ${CC} -Wl,--as-needed -o minimal minimal.c >/dev/null 2>&1 +then + printf "Yes.\n" + as_needed_ldflags="-Wl,--as-needed" +else + printf "No (nothing to worry about).\n" + as_needed_ldflags="" +fi + WARN_CXXFLAGS="" printf "Checking for available C++ compiler warning flags... " for flag in -Wall -Wextra -Wwrite-strings -Wswitch-enum; do @@ -535,6 +545,9 @@ TALLOC_LDFLAGS = ${talloc_ldflags} # Flags needed to have linker set rpath attribute RPATH_LDFLAGS = ${rpath_ldflags} +# Flags needed to have linker link only to necessary libraries +AS_NEEDED_LDFLAGS = ${as_needed_ldflags} + # Whether valgrind header files are available HAVE_VALGRIND = ${have_valgrind} -- 2.43.0