configure: fix static linking with readline
When static linking is used, the order of the libraries is important,
and the libraries using a symbol from another library should be listed
*before* the library providing that symbol (see
http://eli.thegreenplace.net/2013/07/09/library-order-in-static-linking)
for details.
When vtysh is linked statically, the command line contains "-lcurses
-lreadline", which causes a build failure due to unresolved
symbols. This is because readline is using symbols from the curses
library: the order should be the opposite.
This patch fixes that problem by putting the -lreadline at the
beginning of the LIBREADLINE variable calcualted by the configure
script.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
diff --git a/configure.ac b/configure.ac
index c99d111..e601da5 100755
--- a/configure.ac
+++ b/configure.ac
@@ -703,7 +703,7 @@
)]
)]
)
- AC_CHECK_LIB(readline, main, LIBREADLINE="$LIBREADLINE -lreadline",,
+ AC_CHECK_LIB(readline, main, LIBREADLINE="-lreadline $LIBREADLINE",,
"$LIBREADLINE")
if test $ac_cv_lib_readline_main = no; then
AC_MSG_ERROR([vtysh needs libreadline but was not found and usable on your system.])