Bug 207783 - guile cannot load dynamic extensions without guile-devel rpm also installed
Summary: guile cannot load dynamic extensions without guile-devel rpm also installed
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: guile   
(Show other bugs)
Version: 5
Hardware: x86_64
OS: Linux
medium
low
Target Milestone: ---
Assignee: Miroslav Lichvar
QA Contact:
URL:
Whiteboard:
Keywords:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-09-23 04:42 UTC by Roman Ekjanov
Modified: 2007-11-30 22:11 UTC (History)
0 users

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


Attachments (Terms of Use)

Description Roman Ekjanov 2006-09-23 04:42:51 UTC
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 08:46:23 UTC
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-26 00:10:07 UTC
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 11:56:49 UTC
Ok, thanks. Should be fixed in guile-1.6.7-7.fc5.

Comment 4 Fedora Update System 2006-09-26 20:01:41 UTC
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-27 02:02:52 UTC
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 14:03:25 UTC
Ok, I have rewritten the patch. Hopefully fixed in guile-1.6.7-8.fc5.

Comment 7 Fedora Update System 2006-09-27 20:37:46 UTC
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.