Ticket #3880: fail to link to ncurses built as two libraries: ncurses+tinfo.

https://bugs.gentoo.org/527118

When ncurses library is built with --with-termlib option
the resulting installation contains two libraries:

/lib64/libncurses.so.6
/lib64/libncursesw.so.6
/lib64/libtinfo.so.6
/lib64/libtinfow.so.6

As a result mc build fails as:

$ ./configure --with-screen=ncurses
$ make

  CCLD     mc
/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/../../../../x86_64-pc-linux-gnu/bin/ld:
./.libs/libinternal.a(tty-ncurses.o): undefined reference to symbol 'meta'
/lib64/libtinfow.so.6: error adding symbols: DSO missing from command line

Patch: https://gitweb.gentoo.org/repo/gentoo.git/tree/app-misc/mc/files/mc-4.8.13-tinfo.patch

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
Jeroen Roovers 2017-12-02 11:48:16 +03:00 committed by Andrew Borodin
parent 26a2617256
commit bf771dc8a7

View File

@ -101,6 +101,9 @@ AC_DEFUN([mc_WITH_NCURSES], [
LIBS=
AC_SEARCH_LIBS([has_colors], [ncurses], [MCLIBS="$MCLIBS $LIBS"],
[AC_MSG_ERROR([Cannot find ncurses library])])
AC_SEARCH_LIBS([stdscr], [tinfo ncurses], [MCLIBS="$MCLIBS $LIBS"],
[AC_MSG_ERROR([Cannot find a library providing stdscr])])
screen_type=ncurses
screen_msg="NCurses"
@ -111,10 +114,15 @@ AC_DEFUN([mc_WITH_NCURSES], [
AC_SEARCH_LIBS([addwstr], [ncursesw ncurses curses], [MCLIBS="$MCLIBS $LIBS";ncursesw_found=yes],
[AC_MSG_WARN([Cannot find ncurses library, that support wide characters])])
AC_SEARCH_LIBS([stdscr], [tinfow tinfo ncursesw ncurses curses], [MCLIBS="$MCLIBS $LIBS"],
[AC_MSG_ERROR([Cannot find a library providing stdscr])])
if test x"$ncursesw_found" = "x"; then
LIBS=
AC_SEARCH_LIBS([has_colors], [ncurses curses], [MCLIBS="$MCLIBS $LIBS"],
[AC_MSG_ERROR([Cannot find ncurses library])])
AC_SEARCH_LIBS([stdscr], [tinfo ncurses curses], [MCLIBS="$MCLIBS $LIBS"],
[AC_MSG_ERROR([Cannot find a library providing stdscr])])
fi
dnl Check the header
@ -166,6 +174,9 @@ AC_DEFUN([mc_WITH_NCURSESW], [
LIBS=
AC_SEARCH_LIBS([has_colors], [ncursesw], [MCLIBS="$MCLIBS $LIBS"],
[AC_MSG_ERROR([Cannot find ncursesw library])])
AC_SEARCH_LIBS([stdscr], [tinfow ncursesw], [MCLIBS="$MCLIBS $LIBS"],
[AC_MSG_ERROR([Cannot find a library providing stdscr])])
dnl Check the header
ncurses_h_found=