summaryrefslogtreecommitdiffstats
path: root/package/lftp/0001-fix-static-link-with-readline.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/lftp/0001-fix-static-link-with-readline.patch')
-rw-r--r--package/lftp/0001-fix-static-link-with-readline.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/package/lftp/0001-fix-static-link-with-readline.patch b/package/lftp/0001-fix-static-link-with-readline.patch
new file mode 100644
index 0000000000..339239668e
--- /dev/null
+++ b/package/lftp/0001-fix-static-link-with-readline.patch
@@ -0,0 +1,40 @@
+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
OpenPOWER on IntegriCloud