[Slackbuilds-users] 'AC_CHECK_LIB([readline]' fails on 14.2

mickski 56 mickski56 at hotmail.com
Sat Jan 27 20:07:47 UTC 2018


>Just to be clear, I am working with Slackware 14.2 32 bit.
>
>I am working on putting together a SlackBuild script for lxi-tools 1.16
>(BTW, the script works perfectly on Current).  The problem isn't in the
>script but rather in the 'configure' script.  Here is how the package
>searches for libreadline in configure.ac:
>
>AC_CHECK_LIB([readline], [readline], [], [AC_MSG_ERROR(libreadline not
>found)])
>
>
>And the failure when running 'configure':
>
>checking whether the gcc linker (/usr/i586-slackware-linux/bin/ld)
>supports shared libraries... yes
>checking whether -lc should be explicitly linked in... no
>checking dynamic linker characteristics... GNU/Linux ld.so
>checking how to hardcode library paths into programs... immediate
>checking whether stripping libraries is possible... yes
>checking if libtool supports shared libraries... yes
>checking whether to build shared libraries... yes
>checking whether to build static libraries... yes
>checking for readline in -lreadline... no
>configure: error: libreadline not found
>
>
>Here is what is recorded in 'config.log':
>
>configure:12811: checking for readline in -lreadline
>configure:12836: gcc -o conftest -g -O2   conftest.c -lreadline   >&5
>/usr/lib/gcc/i586-slackware-linux/5.3.0/../../../libreadline.so:
>undefined reference to
>`tputs' /usr/lib/gcc/i586-slackware-linux/5.3.0/../../../libreadline.so:
>undefined reference to
>`tgoto' /usr/lib/gcc/i586-slackware-linux/5.3.0/../../../libreadline.so:
>undefined reference to
>`tgetflag' /usr/lib/gcc/i586-slackware-linux/5.3.0/../../../libreadline.so:
>undefined reference to
>`UP' /usr/lib/gcc/i586-slackware-linux/5.3.0/../../../libreadline.so:
>undefined reference to
>`tgetent' /usr/lib/gcc/i586-slackware-linux/5.3.0/../../../libreadline.so:
>undefined reference to
>`tgetnum' /usr/lib/gcc/i586-slackware-linux/5.3.0/../../../libreadline.so:
>undefined reference to
>`PC' /usr/lib/gcc/i586-slackware-linux/5.3.0/../../../libreadline.so:
>undefined reference to
>`tgetstr' /usr/lib/gcc/i586-slackware-linux/5.3.0/../../../libreadline.so:
>undefined reference to `BC' collect2: error: ld returned 1 exit status
>configure:12836: $? = 1 configure: failed program was: | /* confdefs.h
>*/ | #define PACKAGE_NAME "lxi-tools" | #define PACKAGE_TARNAME
>"lxi-tools" | #define PACKAGE_VERSION "1.16" | #define PACKAGE_STRING
>"lxi-tools 1.16" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL
>"https://lxi-tools.github.io" | #define PACKAGE "lxi-tools" | #define
>VERSION "1.16" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 |
>#define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1
>| #define HAVE_STRING_H 1
>| #define HAVE_MEMORY_H 1
>| #define HAVE_STRINGS_H 1
>| #define HAVE_INTTYPES_H 1
>| #define HAVE_STDINT_H 1
>| #define HAVE_UNISTD_H 1
>| #define HAVE_DLFCN_H 1
>| #define LT_OBJDIR ".libs/"
>| /* end confdefs.h.  */
>|
>| /* Override any GCC internal prototype to avoid an error.
>|    Use char because int might match the return type of a GCC
>|    builtin and then its argument prototype would still apply.  */
>| #ifdef __cplusplus
>| extern "C"
>| #endif
>| char readline ();
>| int
>| main ()
>| {
>| return readline ();
>|   ;
>|   return 0;
>| }
>configure:12845: result: no
>configure:12855: error: libreadline not found
>
>
>The /usr/lib/libreadline.so symbolic link points to
>/usr/lib/libreadline.so.6 which itself is a symlink to
>/usr/lib/libreadline.so.6.3.  
>
>Using 'readelf', I can confirm what is in 'config.log':
>
>    83: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND tputs
>   144: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND tgoto
>   248: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND tgetflag
>   268: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND UP
>   274: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND tgetent
>   307: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND tgetnum
>   547: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND PC
>   618: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND tgetstr
>   750: 00000000     0 NOTYPE  GLOBAL DEFAULT  UND BC
>
>It doesn't look like libreadline has a missing dependent library:
>
>$ ldd /usr/lib/libreadline.so
>  linux-gate.so.1 (0xb77a2000)
>  libc.so.6 => /lib/libc.so.6 (0xb759b000)
>  /lib/ld-linux.so.2 (0xb77a3000)
>
>
>What puzzles me is that this package built cleanly on an up-to-date
>Current 64 system, but fails here.  I don't see a remarkable difference
>between the symbol tables, so I at a loss.  Hopefully someone has met
>this before and can provide some clues.
>
>- Nate
>
>-- 
>
>"The optimist proclaims that we live in the best of all
>possible worlds.  The pessimist fears this is true."
>
>Ham radio, Linux, bikes, and more: http://www.n0nb.us

If I recall correctly it's necessary to also link in ncurses "-lncurses"
Probably I'd use LDFLAGS="-lncurses" ./configure ........


More information about the SlackBuilds-users mailing list