Bug 207783 - guile cannot load dynamic extensions without guile-devel rpm also installed
guile cannot load dynamic extensions without guile-devel rpm also installed
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: guile (Show other bugs)
5
x86_64 Linux
medium Severity low
: ---
: ---
Assigned To: Miroslav Lichvar
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2006-09-23 00:42 EDT by Roman Ekjanov
Modified: 2007-11-30 17:11 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-09-27 17:41:37 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Roman Ekjanov 2006-09-23 00:42:51 EDT
Description of problem:
guile cannot load modules which use dynamically loaded shared libraries 

Version-Release number of selected component (if applicable): 1.6.7-6

How reproducible:
Always

Steps to Reproduce:
1.start guile
2.type (use-modules (ice-9 readline))
3.
  
Actual results:
ERROR: In procedure dynamic-link:
ERROR: file: "libguilereadline-v-12", message: "libguilereadline-v-12.so: cannot
open shared object file: No such file or directory"

Expected results:
Silently load the extension

Additional info:
The same error with other dynamic extensions.

The reason for the error is that all *.so links are in guile-devel package.
Workaround is to install guile-devel.
Comment 1 Miroslav Lichvar 2006-09-25 04:46:23 EDT
Guile should find correct library names in .la files that are in the package, so
the .so links aren't necessary.

Could you please send me output from this command?
strace guile -c '(use-modules (ice-9 readline))' 2>&1 | grep '^open'
Comment 2 Roman Ekjanov 2006-09-25 20:10:07 EDT
The problem is, apparently, only on 64bit architecture. The dynamic loader looks
for *.la files in a wrong directories /lib:/usr/lib. Not sure if it is global or
guile specific.  
Here is output of
strace guile -c '(use-modules (ice-9 readline))' 2>&1 | grep '^open':

open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/usr/lib64/libguile.so.12", O_RDONLY) = 3
open("/usr/lib64/libguile-ltdl.so.1", O_RDONLY) = 3
open("/lib64/libcrypt.so.1", O_RDONLY)  = 3
open("/lib64/libm.so.6", O_RDONLY)      = 3
open("/lib64/libc.so.6", O_RDONLY)      = 3
open("/lib64/libdl.so.2", O_RDONLY)     = 3
open("/usr/share/guile/1.6/ice-9/boot-9.scm", O_RDONLY) = 3
open("/usr/share/guile/1.6/ice-9/r4rs.scm", O_RDONLY) = 4
open("/usr/share/guile/1.6/ice-9/arrays.scm", O_RDONLY) = 4
open("/usr/share/guile/1.6/ice-9/posix.scm", O_RDONLY) = 4
open("/usr/share/guile/1.6/ice-9/networking.scm", O_RDONLY) = 4
open("/usr/share/guile/1.6/ice-9/rdelim.scm", O_RDONLY) = 4
open("/usr/share/guile/1.6/ice-9/readline.scm", O_RDONLY) = 3
open("/usr/share/guile/1.6/ice-9/session.scm", O_RDONLY) = 4
open("/usr/share/guile/1.6/ice-9/documentation.scm", O_RDONLY) = 5
open("/usr/share/guile/1.6/ice-9/regex.scm", O_RDONLY) = 5
open("/usr/share/guile/1.6/ice-9/buffered-input.scm", O_RDONLY) = 4
open("/lib/libguilereadline-v-12.la", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib/libguilereadline-v-12.la", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("include/libguilereadline-v-12.la", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("ld.so.conf.d/*.conf/libguilereadline-v-12.la", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("libguilereadline-v-12.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 4
open("/usr/lib64/libguilereadline-v-12.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/lib64/tls/x86_64/libguilereadline-v-12.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/lib64/tls/libguilereadline-v-12.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
open("/lib64/x86_64/libguilereadline-v-12.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/lib64/libguilereadline-v-12.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/lib64/tls/x86_64/libguilereadline-v-12.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/lib64/tls/libguilereadline-v-12.so", O_RDONLY) = -1 ENOENT (No such
file or directory)
open("/usr/lib64/x86_64/libguilereadline-v-12.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/lib64/libguilereadline-v-12.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
Comment 3 Miroslav Lichvar 2006-09-26 07:56:49 EDT
Ok, thanks. Should be fixed in guile-1.6.7-7.fc5.
Comment 4 Fedora Update System 2006-09-26 16:01:41 EDT
guile-1.6.7-7.fc5 has been pushed for fc5, which should resolve this issue.  If these problems are still present in this version, then please make note of it in this bug report.
Comment 5 Roman Ekjanov 2006-09-26 22:02:52 EDT
Still the same error. Your patch went into a wrong place. There is another
linux*)  case section in configure, which is actually executed. But anyway, the
right way to fix it is to re-run all auto* and aclocal suite
Comment 6 Miroslav Lichvar 2006-09-27 10:03:25 EDT
Ok, I have rewritten the patch. Hopefully fixed in guile-1.6.7-8.fc5.
Comment 7 Fedora Update System 2006-09-27 16:37:46 EDT
guile-1.6.7-8.fc5 has been pushed for fc5, which should resolve this issue.  If these problems are still present in this version, then please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.