aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile.local6
-rwxr-xr-xconfigure13
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}