Blame view

buildroot/buildroot-2016.08.1/package/lftp/0001-fix-static-link-with-readline.patch 1.93 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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