check if LD_AS_NEEDED breaks linking with libreadline fixes #7209
authorOlaf Flebbe <o.flebbe@science-computing.de>
Tue, 25 May 2010 11:22:56 +0000 (13:22 +0200)
committerSimo Sorce <idra@samba.org>
Fri, 11 Jun 2010 20:07:50 +0000 (16:07 -0400)
Signed-off-by: Simo Sorce <idra@samba.org>
source3/configure.in

index 3f04136fba16b5deae405938b4b89b73ca51ac83..c3b594d55d5d4bfef1800df73ae8050222e3354f 100644 (file)
@@ -1800,6 +1800,7 @@ fi
 
 AC_MSG_RESULT($BLDSHARED)
 
+saved_before_as_needed_ldflags="$LDFLAGS"
 for flags in "-Wl,--as-needed" "-Wl,-z,ignore" "-z ignore" ; do
        saved_ldflags="$LDFLAGS"
        AC_MSG_CHECKING([if $flags works])
@@ -1813,6 +1814,25 @@ for flags in "-Wl,--as-needed" "-Wl,-z,ignore" "-z ignore" ; do
        test x"$ld_as_needed_flag_found" = xyes && break
 done
 
+# check if we have to disable LD_AS_NEEDED_FLAG:
+# On some systems for a veriety of reasons linking with
+# -Wl,--as-needed -lreadline -lncurses fails
+# we have to retest, if these combination is detected before.
+# Bugzilla #7209
+
+if test x$ac_cv_lib_readline_rl_callback_handler_install = xyes ; then
+       if test x$ld_as_needed_flag_found = xyes ; then
+               AC_MSG_CHECKING([if $LD_AS_NEEDED_FLAG works with readline])
+               # try if check no fails
+               save_LIBS=$LIBS
+               LIBS="$LIBS $TERMLIBS"
+               AC_TRY_LINK([], [rl_callback_handler_install();], [AC_MSG_RESULT([yes])],[ AC_MSG_RESULT([no]); LDFLAGS="$saved_before_as_needed_ldflags"])
+               LIBS="$save_LIBS"
+        fi
+fi
+
+
+
 # for historical reasons almost all linkers don't complain about unresolved
 # symbols in shared libs. Except for the internal samba modules we want to get
 # errors when we produce a shared lib with unresolved symbols. On some