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

Attachment: signature.asc
Description: Digital signature

_______________________________________________
SlackBuilds-users mailing list
SlackBuilds-users@slackbuilds.org
https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/
FAQ - https://slackbuilds.org/faq/

Reply via email to