linker_resolves_library_dependencies=1
ldconfig_paths=$(/sbin/ldconfig -N -X -v 2>/dev/null | sed -n -e 's,^\(/.*\):\( (.*)\)\?$,\1,p')
for path in $ldconfig_paths; do
- echo "Checking $path compared to $libdir_expanded"
if [ "$path" = "$libdir_expanded" ]; then
libdir_in_ldconfig=1
fi
printf "int main(void){return 0;}\n" > minimal.c
+printf "Checking for rpath support... "
+if ${CC} -Wl,--enable-new-dtags -Wl,-rpath,/tmp/ -o minimal minimal.c >/dev/null 2>&1
+then
+ printf "Yes.\n"
+ rpath_ldflags="-Wl,--enable-new-dtags -Wl,-rpath,\$(libdir)"
+else
+ printf "No (nothing to worry about).\n"
+ 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
TALLOC_CFLAGS = ${talloc_cflags}
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}