41 lines
1.9 KiB
Diff
41 lines
1.9 KiB
Diff
|
fix static link with readline
|
||
|
|
||
|
When readline is static library, we need to link against ncurses
|
||
|
because readline needs ncurses. It is because, dependent library's
|
||
|
symbols are not resolved when static library is built. Those symbols
|
||
|
are resolved program tries to link with static library.
|
||
|
|
||
|
We can't pass linker flags for ncurses by setting LIBS environment
|
||
|
variable via <PKG>_CONF_ENV because it looks like build system is not
|
||
|
taking that into account and even though it would have been, order of
|
||
|
linking is important.
|
||
|
|
||
|
We can't also pass linker flags for ncurses via --with-readline-libs
|
||
|
conf options because it causes lftp_LIB_READLINE macro to take readline
|
||
|
headers from host machine if available. To use --with-readline-libs
|
||
|
we need to set --with-readline=yes and --with-readline-inc to include
|
||
|
dir. But when --with-readline=yes, readline_prefix is computed based
|
||
|
on if headers can be found in /usr/local or /usr. If readline is
|
||
|
installed on host machine, then configure fails since we are using
|
||
|
headers for host machine. If headers are not found in /usr/local or /usr
|
||
|
then only path specified --with-readline-inc is taken into account.
|
||
|
So specifying linker flags for ncurses via --with-readline-libs will
|
||
|
not work in all cases.
|
||
|
|
||
|
So it looks like, updating linker flags directly is only option to fix
|
||
|
static link issue against readline.
|
||
|
|
||
|
Signed-off-by: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
|
||
|
|
||
|
--- lftp-4.7.3/m4/lftp_lib_readline.m4.old 2016-08-08 19:49:12.217596470 +0530
|
||
|
+++ lftp-4.7.3/m4/lftp_lib_readline.m4 2016-08-08 19:49:46.265596398 +0530
|
||
|
@@ -108,7 +108,7 @@ AC_DEFUN([lftp_LIB_READLINE],
|
||
|
readline_include_dir="$readline_include_dir/readline"
|
||
|
fi
|
||
|
readline_ld_flags="-L$readline_prefix/lib"
|
||
|
- readline_lib_flags="-lreadline"
|
||
|
+ readline_lib_flags="-lreadline -lncurses"
|
||
|
run_readline_test="yes"
|
||
|
elif test "$readline_requested" = "yes"; then
|
||
|
if test -n "$readline_include_dir" -a -n "$readline_lib_flags"; then
|