unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* dynamic linking
@ 2010-02-05 12:57 Tomas By
  2010-02-05 13:57 ` Ludovic Courtès
  0 siblings, 1 reply; 6+ messages in thread
From: Tomas By @ 2010-02-05 12:57 UTC (permalink / raw)
  To: guile-user

[-- Attachment #1: Type: text/plain, Size: 1552 bytes --]

Hi all,

I'm trying to create a Guile module, using code written in Mercury.
(http://www.cs.mu.oz.au/research/mercury/)
I have managed to produce a library file (.so), but when I try to open
it in Guile (with dynamic-link), I get "file not found". It's clear from
the strace output that it does find my library, but then it checks some
other Mercury libraries, and presumably finds something it doesn't like.
The log from strace ends with this:

open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/libgc.so",
O_RDONLY) = 9
read(9,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@y\0\0004\0\0\0"..., 512)
= 512
fstat64(9, {st_mode=S_IFREG|0755, st_size=121223, ...}) = 0
mmap2(NULL, 464944, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 9, 0)
= 0x9a4000
mmap2(0x9bb000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 9, 0x17) = 0x9bb000
mmap2(0x9bd000, 362544, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x9bd000
close(9)                                = 0
mprotect(0x9bb000, 4096, PROT_READ)     = 0
mprotect(0x298000, 4096, PROT_READ)     = 0
mprotect(0x11b2000, 126976, PROT_READ)  = 0
mprotect(0x422000, 20480, PROT_READ|PROT_WRITE) = 0
munmap(0x422000, 24684)                 = 0
munmap(0xdec000, 6385312)               = 0
munmap(0x255000, 287840)                = 0
munmap(0x9a4000, 464944)                = 0

I guess that "libgc.so" is the Mercury garbage collector. Is there some
problem with having another GC in a Guile module?

Entire strace output attached. Any help appreciated.

/Tomas

[-- Attachment #2: log.txt --]
[-- Type: text/plain, Size: 51300 bytes --]

execve("/usr/bin/guile", ["guile"], [/* 39 vars */]) = 0
brk(0)                                  = 0x92fd000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77e8000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=91754, ...}) = 0
mmap2(NULL, 91754, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb77d1000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libguile.so.17", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 r\2\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=942204, ...}) = 0
mmap2(NULL, 982172, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xcb2000
mmap2(0xd95000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe3) = 0xd95000
mmap2(0xd98000, 40092, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xd98000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libgmp.so.3", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\226\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=390700, ...}) = 0
mmap2(NULL, 393516, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x93e000
mmap2(0x99d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5e) = 0x99d000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libcrypt.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\7\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=38360, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77d0000
mmap2(NULL, 201052, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xa90000
mmap2(0xa99000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xa99000
mmap2(0xa9b000, 155996, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xa9b000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libm.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`4\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=149392, ...}) = 0
mmap2(NULL, 151680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2b4000
mmap2(0x2d8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23) = 0x2d8000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libltdl.so.7", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\32\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=34260, ...}) = 0
mmap2(NULL, 37084, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb77000
mmap2(0xb7f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7) = 0xb7f000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0PI\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=116920, ...}) = 0
mmap2(NULL, 98792, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x4da000
mmap2(0x4ef000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14) = 0x4ef000
mmap2(0x4f1000, 4584, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4f1000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260l\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1319364, ...}) = 0
mmap2(NULL, 1329512, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x110000
mprotect(0x24e000, 4096, PROT_NONE)     = 0
mmap2(0x24f000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13e) = 0x24f000
mmap2(0x252000, 10600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x252000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\n\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9736, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77cf000
mmap2(NULL, 12408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb1f000
mmap2(0xb21000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb21000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77ce000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb77ce6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb21000, 4096, PROT_READ)     = 0
mprotect(0x24f000, 8192, PROT_READ)     = 0
mprotect(0x4ef000, 4096, PROT_READ)     = 0
mprotect(0xb7f000, 4096, PROT_READ)     = 0
mprotect(0x2d8000, 4096, PROT_READ)     = 0
mprotect(0xa99000, 4096, PROT_READ)     = 0
mprotect(0x99d000, 4096, PROT_READ)     = 0
mprotect(0xd95000, 8192, PROT_READ)     = 0
mprotect(0x8049000, 4096, PROT_READ)    = 0
mprotect(0x7f9000, 4096, PROT_READ)     = 0
munmap(0xb77d1000, 91754)               = 0
set_tid_address(0xb77ce728)             = 29227
set_robust_list(0xb77ce730, 0xc)        = 0
futex(0xbf984d80, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0xbf984d80, 0x189 /* FUTEX_??? */, 1, NULL, bf984d90) = -1 EAGAIN (Resource temporarily unavailable)
rt_sigaction(SIGRTMIN, {0x4de340, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x4de820, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
uname({sys="Linux", node="desktop", ...}) = 0
futex(0xd9e680, FUTEX_WAKE_PRIVATE, 2147483647) = 0
brk(0)                                  = 0x92fd000
brk(0x931e000)                          = 0x931e000
pipe([3, 4])                            = 0
mmap2(NULL, 274432, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb778b000
times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057362
times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057362
times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057362
times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057362
times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057362
times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057362
mmap2(NULL, 208896, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7758000
gettimeofday({1265328169, 933982}, {0, 0}) = 0
times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057362
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
fcntl64(0, F_GETFL)                     = 0x2 (flags O_RDWR)
lseek(0, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
fcntl64(1, F_GETFL)                     = 0x2 (flags O_RDWR)
lseek(1, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
fcntl64(2, F_GETFL)                     = 0x2 (flags O_RDWR)
lseek(2, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
stat64("/usr/share/guile/site/init.scm", 0xbf984afc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/init.scm", 0xbf984afc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/init.scm", 0xbf984afc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/site/ice-9/boot-9.scm", 0xbf984adc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/boot-9.scm", {st_mode=S_IFREG|0644, st_size=104124, ...}) = 0
open("/usr/share/guile/1.8/ice-9/boot-9.scm", O_RDONLY|O_LARGEFILE) = 5
fcntl64(5, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(5, 0, SEEK_CUR)                   = 0
fstat64(5, {st_mode=S_IFREG|0644, st_size=104124, ...}) = 0
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, ";;; installed-scm-file\n\n;;;; Cop"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "ro-table m #t))\n(define (defmacr"..., 4096) = 4096
stat64("/usr/share/guile/site/ice-9/r4rs.scm", 0xbf9849fc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/r4rs.scm", {st_mode=S_IFREG|0644, st_size=8623, ...}) = 0
open("/usr/share/guile/1.8/ice-9/r4rs.scm", O_RDONLY|O_LARGEFILE) = 6
fcntl64(6, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(6, 0, SEEK_CUR)                   = 0
fstat64(6, {st_mode=S_IFREG|0644, st_size=8623, ...}) = 0
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, ";;;; r4rs.scm --- definitions ne"..., 4096) = 4096
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "e opened, an error is\nsignalled."..., 4096) = 4096
brk(0x933f000)                          = 0x933f000
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "d-verbosely v))\n\n(define (%load-"..., 4096) = 431
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "", 4096)                       = 0
close(6)                                = 0
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "member kw args)))\n    (and rem ("..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, " (struct? obj) (record-type? (st"..., 4096) = 4096
stat64("/usr/share/guile/site/ice-9/posix.scm", 0xbf9849fc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/posix.scm", {st_mode=S_IFREG|0644, st_size=2585, ...}) = 0
open("/usr/share/guile/1.8/ice-9/posix.scm", O_RDONLY|O_LARGEFILE) = 6
fcntl64(6, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(6, 0, SEEK_CUR)                   = 0
fstat64(6, {st_mode=S_IFREG|0644, st_size=2585, ...}) = 0
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, ";;; installed-scm-file\n\n;;;; Cop"..., 4096) = 2585
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "", 4096)                       = 0
close(6)                                = 0
stat64("/usr/share/guile/site/ice-9/networking.scm", 0xbf9849fc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/networking.scm", {st_mode=S_IFREG|0644, st_size=3029, ...}) = 0
open("/usr/share/guile/1.8/ice-9/networking.scm", O_RDONLY|O_LARGEFILE) = 6
fcntl64(6, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(6, 0, SEEK_CUR)                   = 0
fstat64(6, {st_mode=S_IFREG|0644, st_size=3029, ...}) = 0
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, ";;; installed-scm-file\n\n;;;; Cop"..., 4096) = 3029
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "", 4096)                       = 0
close(6)                                = 0
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, " val))\n(define (set-tm:min obj v"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "\n;;; Load a Scheme source file n"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "argv)\n\t\t\t     (cons (string-appe"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, " as their argument need to be\n;;"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "y binder procedures is going\n;;;"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "re (record-accessor module-type "..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "rsively.  If all applications\n;;"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "s unbound.\n;; If the OPT-VALUE i"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "odule filename . reader)\n  (save"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "ted-ref a-root name\n;;;\tnested-s"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "load-module name))\n\t    ;; Get/c"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, " (module-add! custom-i\n\t\t\t\t\t (re"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, ")\n    (module-constructor (make-"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "e-option-interface\n  (debug-opti"..., 4096) = 4096
mmap2(NULL, 196608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7728000
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "efore-signal-stack (make-fluid))"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, ")\n\t\t\t\t\t\t(scm-repl-prompt))\n\t\t\t\t\t"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "\n\t (if (symbol? first)\n\t     (ca"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "(or (apply resolve-interface mif"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "' but it can also access binding"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "t-module-name! m 'duplicates)\n  "..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, " (syntax-error clause)))))\n\t\t  ("..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "GINT . \"User interrupt\")\n\t\t\t (,S"..., 4096) = 1724
stat64("/usr/share/guile/site/ice-9/deprecated.scm", 0xbf9849fc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/deprecated.scm", {st_mode=S_IFREG|0644, st_size=6158, ...}) = 0
open("/usr/share/guile/1.8/ice-9/deprecated.scm", O_RDONLY|O_LARGEFILE) = 6
fcntl64(6, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(6, 0, SEEK_CUR)                   = 0
fstat64(6, {st_mode=S_IFREG|0644, st_size=6158, ...}) = 0
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, ";;;; Copyright (C) 2003, 2005, 2"..., 4096) = 4096
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "\t\t\t  module-name)))))\n    (let ("..., 4096) = 2062
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "", 4096)                       = 0
close(6)                                = 0
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "", 4096)                       = 0
close(5)                                = 0
stat64("/home/tomas/.guile", 0xbf9843d0) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/site/ice-9/r5rs.scm", 0xbf983ddc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/site/ice-9/r5rs", 0xbf983ddc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/r5rs.scm", {st_mode=S_IFREG|0644, st_size=1549, ...}) = 0
open("/usr/share/guile/1.8/ice-9/r5rs.scm", O_RDONLY|O_LARGEFILE) = 5
fcntl64(5, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(5, 0, SEEK_CUR)                   = 0
fstat64(5, {st_mode=S_IFREG|0644, st_size=1549, ...}) = 0
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, ";;;; \tCopyright (C) 2000, 2001, "..., 4096) = 1549
times({tms_utime=1, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057366
times({tms_utime=2, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057366
times({tms_utime=2, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057366
stat64("/usr/share/guile/site/ice-9/safe-r5rs.scm", 0xbf9830ac) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/site/ice-9/safe-r5rs", 0xbf9830ac) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/safe-r5rs.scm", {st_mode=S_IFREG|0644, st_size=3779, ...}) = 0
open("/usr/share/guile/1.8/ice-9/safe-r5rs.scm", O_RDONLY|O_LARGEFILE) = 6
fcntl64(6, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(6, 0, SEEK_CUR)                   = 0
fstat64(6, {st_mode=S_IFREG|0644, st_size=3779, ...}) = 0
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, ";;;; \tCopyright (C) 2000, 2001, "..., 4096) = 3779
times({tms_utime=2, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057367
times({tms_utime=2, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057367
times({tms_utime=2, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057367
stat64("/usr/share/guile/site/ice-9/null.scm", 0xbf9822cc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/site/ice-9/null", 0xbf9822cc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/null.scm", {st_mode=S_IFREG|0644, st_size=1189, ...}) = 0
open("/usr/share/guile/1.8/ice-9/null.scm", O_RDONLY|O_LARGEFILE) = 7
fcntl64(7, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(7, 0, SEEK_CUR)                   = 0
fstat64(7, {st_mode=S_IFREG|0644, st_size=1189, ...}) = 0
select(1024, [7], [], [], {0, 0})       = 1 (in [7], left {0, 0})
read(7, ";;;; \tCopyright (C) 2000, 2001, "..., 4096) = 1189
stat64("/usr/share/guile/site/ice-9/syncase.scm", 0xbf9813bc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/site/ice-9/syncase", 0xbf9813bc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/syncase.scm", {st_mode=S_IFREG|0644, st_size=7848, ...}) = 0
open("/usr/share/guile/1.8/ice-9/syncase.scm", O_RDONLY|O_LARGEFILE) = 8
fcntl64(8, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(8, 0, SEEK_CUR)                   = 0
fstat64(8, {st_mode=S_IFREG|0644, st_size=7848, ...}) = 0
select(1024, [8], [], [], {0, 0})       = 1 (in [8], left {0, 0})
read(8, ";;;; \tCopyright (C) 1997, 2000, "..., 4096) = 4096
times({tms_utime=3, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057368
times({tms_utime=3, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057368
times({tms_utime=3, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057368
stat64("/usr/share/guile/site/ice-9/debug.scm", 0xbf9804ac) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/site/ice-9/debug", 0xbf9804ac) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/debug.scm", {st_mode=S_IFREG|0644, st_size=4479, ...}) = 0
open("/usr/share/guile/1.8/ice-9/debug.scm", O_RDONLY|O_LARGEFILE) = 9
fcntl64(9, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(9, 0, SEEK_CUR)                   = 0
fstat64(9, {st_mode=S_IFREG|0644, st_size=4479, ...}) = 0
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, ";;;; \tCopyright (C) 1996, 1997, "..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "tack-ids))\n      (let ((cep (cur"..., 4096) = 383
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "", 4096)                       = 0
close(9)                                = 0
stat64("/usr/share/guile/site/ice-9/threads.scm", 0xbf9804ac) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/site/ice-9/threads", 0xbf9804ac) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/threads.scm", {st_mode=S_IFREG|0644, st_size=6371, ...}) = 0
open("/usr/share/guile/1.8/ice-9/threads.scm", O_RDONLY|O_LARGEFILE) = 9
fcntl64(9, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(9, 0, SEEK_CUR)                   = 0
fstat64(9, {st_mode=S_IFREG|0644, st_size=6371, ...}) = 0
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, ";;;; \tCopyright (C) 1996, 1998, "..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "\t\t    (unlock-mutex m))\n\t\t\t   (e"..., 4096) = 2275
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "", 4096)                       = 0
close(9)                                = 0
select(1024, [8], [], [], {0, 0})       = 1 (in [8], left {0, 0})
read(8, "getprop symbol key)\n  (let* ((v "..., 4096) = 3752
times({tms_utime=3, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057369
times({tms_utime=3, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057369
times({tms_utime=3, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057369
stat64("/usr/share/guile/site/ice-9/psyntax.pp", 0xbf980aac) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/psyntax.pp", {st_mode=S_IFREG|0644, st_size=134494, ...}) = 0
open("/usr/share/guile/1.8/ice-9/psyntax.pp", O_RDONLY|O_LARGEFILE) = 9
fcntl64(9, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(9, 0, SEEK_CUR)                   = 0
fstat64(9, {st_mode=S_IFREG|0644, st_size=134494, ...}) = 0
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "(letrec ((syntmp-lambda-var-list"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "ibcage-marks ribcage-symnames ri"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "vars-609 (map syntmp-gen-var-163"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "mp-f-655 (cdr syntmp-forms-656))"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "))) (syntmp-chi-application-153 "..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "mp-_-755) (syntmp-chi-void-159))"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "? syntmp-type-781 (quote externa"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "e) #((top)) #(\"i\")) #(ribcage ()"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "chi-top-sequence chi-sequence so"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "-list-834) (syntmp-situations-83"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "s! ribcage-labels ribcage-marks "..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "p) (top) (top) (top) (top) (top)"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "ntmp-annotation?-89 syntmp-e-879"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "-marks-118 syntmp-w1-928)))) (ca"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "yntmp-set-ribcage-symnames!-127 "..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "-set! syntmp-x-1004 1 syntmp-upd"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "(lambda (syntmp-_-1064) (syntax-"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, " (cdr syntmp-b-1107) syntmp-maps"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "11 syntmp-maps-1112 syntmp-ellip"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "tmp-e-1234 syntmp-r-1235 syntmp-"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "cal-reference build-conditional "..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, " build-sequence build-data build"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "tax-dispatch) syntmp-x-1299 (syn"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "dr syntmp-x-1370) (syntmp-chi-to"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "? syntmp-p-1411) (and (pair? syn"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "annotation?-89 syntmp-e-1433) (a"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, " ((lambda (syntmp-tmp-1498) (if "..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "bcage #(step) #((top)) #(\"i\")) #"..., 4096) = 4096
mmap2(NULL, 237568, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76ee000
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, " syntmp-y-1609))) syntmp-tmp-161"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "\"i\" \"i\" \"i\"))))) syntmp-x-1637))"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "-dispatch syntmp-tmp-1642 (quote"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "mp-body-1780)) syntmp-tmp-1779))"..., 4096) = 4096
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, ") #(ribcage #(k e1 e2) #((top) ("..., 4096) = 3422
select(1024, [9], [], [], {0, 0})       = 1 (in [9], left {0, 0})
read(9, "", 4096)                       = 0
close(9)                                = 0
times({tms_utime=5, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057373
times({tms_utime=5, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057373
times({tms_utime=5, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057373
select(1024, [8], [], [], {0, 0})       = 1 (in [8], left {0, 0})
read(8, "", 4096)                       = 0
close(8)                                = 0
times({tms_utime=6, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057374
times({tms_utime=6, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057374
times({tms_utime=6, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730057374
select(1024, [7], [], [], {0, 0})       = 1 (in [7], left {0, 0})
read(7, "", 4096)                       = 0
close(7)                                = 0
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "", 4096)                       = 0
close(6)                                = 0
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "", 4096)                       = 0
close(5)                                = 0
stat64("/usr/share/guile/site/ice-9/session.scm", 0xbf983ddc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/site/ice-9/session", 0xbf983ddc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/session.scm", {st_mode=S_IFREG|0644, st_size=18099, ...}) = 0
open("/usr/share/guile/1.8/ice-9/session.scm", O_RDONLY|O_LARGEFILE) = 5
fcntl64(5, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(5, 0, SEEK_CUR)                   = 0
fstat64(5, {st_mode=S_IFREG|0644, st_size=18099, ...}) = 0
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, ";;;; \tCopyright (C) 1997, 2000, "..., 4096) = 4096
stat64("/usr/share/guile/site/ice-9/documentation.scm", 0xbf982ecc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/site/ice-9/documentation", 0xbf982ecc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/documentation.scm", {st_mode=S_IFREG|0644, st_size=7732, ...}) = 0
open("/usr/share/guile/1.8/ice-9/documentation.scm", O_RDONLY|O_LARGEFILE) = 6
fcntl64(6, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(6, 0, SEEK_CUR)                   = 0
fstat64(6, {st_mode=S_IFREG|0644, st_size=7732, ...}) = 0
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, ";;;; \tCopyright (C) 2000,2001, 2"..., 4096) = 4096
stat64("/usr/share/guile/site/ice-9/rdelim.scm", 0xbf981fbc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/site/ice-9/rdelim", 0xbf981fbc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/rdelim.scm", {st_mode=S_IFREG|0644, st_size=5435, ...}) = 0
open("/usr/share/guile/1.8/ice-9/rdelim.scm", O_RDONLY|O_LARGEFILE) = 7
fcntl64(7, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(7, 0, SEEK_CUR)                   = 0
fstat64(7, {st_mode=S_IFREG|0644, st_size=5435, ...}) = 0
select(1024, [7], [], [], {0, 0})       = 1 (in [7], left {0, 0})
read(7, ";;; installed-scm-file\n\n;;;; Cop"..., 4096) = 4096
select(1024, [7], [], [], {0, 0})       = 1 (in [7], left {0, 0})
read(7, "ons (join-substrings) terminator"..., 4096) = 1339
select(1024, [7], [], [], {0, 0})       = 1 (in [7], left {0, 0})
read(7, "", 4096)                       = 0
close(7)                                = 0
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "default-in-line-re\n             "..., 4096) = 3636
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "", 4096)                       = 0
close(6)                                = 0
stat64("/usr/share/guile/site/ice-9/regex.scm", 0xbf982ecc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/site/ice-9/regex", 0xbf982ecc) = -1 ENOENT (No such file or directory)
stat64("/usr/share/guile/1.8/ice-9/regex.scm", {st_mode=S_IFREG|0644, st_size=8317, ...}) = 0
open("/usr/share/guile/1.8/ice-9/regex.scm", O_RDONLY|O_LARGEFILE) = 6
fcntl64(6, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)
lseek(6, 0, SEEK_CUR)                   = 0
fstat64(6, {st_mode=S_IFREG|0644, st_size=8317, ...}) = 0
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, ";;;; \tCopyright (C) 1997, 1999, "..., 4096) = 4096
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "or-ref match matchnum))))\n    (i"..., 4096) = 4096
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "car items)) ; This is a tail cal"..., 4096) = 125
select(1024, [6], [], [], {0, 0})       = 1 (in [6], left {0, 0})
read(6, "", 4096)                       = 0
close(6)                                = 0
mmap2(NULL, 352256, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7698000
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "             (= (length name) 2)"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "           (not (null? undocumen"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "le name var data)\n\t\t  (cons name"..., 4096) = 4096
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, " \", \"))\n\t\t  (display-arg-list/su"..., 4096) = 1715
select(1024, [5], [], [], {0, 0})       = 1 (in [5], left {0, 0})
read(5, "", 4096)                       = 0
close(5)                                = 0
pipe([5, 6])                            = 0
mmap2(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0xb6e97000
mprotect(0xb6e97000, 4096, PROT_NONE)   = 0
clone(child_stack=0xb7697494, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0xb7697bd8, {entry_number:6, base_addr:0xb7697b70, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, child_tidptr=0xb7697bd8) = 29228
futex(0xbf9841c0, FUTEX_WAIT_PRIVATE, 1, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0xbf9841a4, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0xd9c200, FUTEX_WAKE_PRIVATE, 2147483647) = 0
rt_sigaction(SIGBUS, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, {0xd2e660, [], 0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGFPE, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGSEGV, NULL, {SIG_DFL, [], 0}, 8) = 0
write(1, "guile> ", 7)                  = 7
select(1024, [0], [], [], {0, 0})       = 0 (Timeout)
fcntl64(0, F_GETFL)                     = 0x2 (flags O_RDWR)
select(4, [0 3], NULL, NULL, NULL)      = 1 (in [0])
read(0, "(", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "d", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "y", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "n", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "a", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "m", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "i", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "c", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "-", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "l", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "i", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "n", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "k", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, " ", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "\"", 1)                        = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "l", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "i", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "b", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "g", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "u", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "i", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "l", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "e", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "-", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "w", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "g", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "d", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "e", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "f", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "\"", 1)                        = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, ")", 1)                         = 1
select(1024, [0], [], [], {0, 0})       = 1 (in [0], left {0, 0})
read(0, "\n", 1)                        = 1
times({tms_utime=7, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730058499
open("/lib/libguile-wgdef.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libguile-wgdef.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/i486-linux-gnu/libguile-wgdef.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/i486-linux-gnu/libguile-wgdef.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/alsa-lib/libguile-wgdef.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/libguile-wgdef.la", O_RDONLY) = -1 ENOENT (No such file or directory)
open("libguile-wgdef.la", O_RDONLY)     = -1 ENOENT (No such file or directory)
access("/lib/libguile-wgdef.so", R_OK)  = -1 ENOENT (No such file or directory)
access("/usr/lib/libguile-wgdef.so", R_OK) = 0
futex(0xb2206c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/usr/lib/libguile-wgdef.so", O_RDONLY) = 9
read(9, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@=\0\0004\0\0\0"..., 512) = 512
fstat64(9, {st_mode=S_IFREG|0644, st_size=34116, ...}) = 0
mmap2(NULL, 24684, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 9, 0) = 0x422000
mmap2(0x427000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 9, 0x4) = 0x427000
close(9)                                = 0
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/i686/sse2/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/i686/sse2/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/i686/sse2/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/i686/sse2", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/i686/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/i686/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/i686/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/i686", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/sse2/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/sse2/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/sse2/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/sse2", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/tls", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/i686/sse2/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/i686/sse2/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/i686/sse2/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/i686/sse2", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/i686/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/i686/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/i686/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/i686", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/sse2/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/sse2/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/sse2/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/sse2", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/i686/sse2/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/i686/sse2/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/i686/sse2/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/i686/sse2", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/i686/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/i686/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/i686/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/i686", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/sse2/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/sse2/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/sse2/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/sse2", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/tls", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/i686/sse2/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/i686/sse2/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/i686/sse2/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/i686/sse2", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/i686/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/i686/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/i686/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/i686", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/sse2/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/sse2/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/sse2/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/sse2", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/cmov/libmer_std.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/cmov", 0xbf9829bc) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/libmer_std.so", O_RDONLY) = 9
read(9, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220r\20\0004\0\0\0"..., 512) = 512
fstat64(9, {st_mode=S_IFREG|0755, st_size=5588525, ...}) = 0
mmap2(NULL, 6385312, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 9, 0) = 0xdec000
mmap2(0x11b2000, 131072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 9, 0x3c6) = 0x11b2000
mmap2(0x11d2000, 2297504, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x11d2000
close(9)                                = 0
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/libmer_rt.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/libmer_rt.so", O_RDONLY) = 9
read(9, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\341\0\0004\0\0\0"..., 512) = 512
fstat64(9, {st_mode=S_IFREG|0755, st_size=1107401, ...}) = 0
mmap2(NULL, 287840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 9, 0) = 0x255000
mprotect(0x297000, 4096, PROT_NONE)     = 0
mmap2(0x298000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 9, 0x42) = 0x298000
mmap2(0x29a000, 5216, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x29a000
close(9)                                = 0
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/libgc.so", O_RDONLY) = 9
read(9, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@y\0\0004\0\0\0"..., 512) = 512
fstat64(9, {st_mode=S_IFREG|0755, st_size=121223, ...}) = 0
mmap2(NULL, 464944, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 9, 0) = 0x9a4000
mmap2(0x9bb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 9, 0x17) = 0x9bb000
mmap2(0x9bd000, 362544, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x9bd000
close(9)                                = 0
mprotect(0x9bb000, 4096, PROT_READ)     = 0
mprotect(0x298000, 4096, PROT_READ)     = 0
mprotect(0x11b2000, 126976, PROT_READ)  = 0
mprotect(0x422000, 20480, PROT_READ|PROT_WRITE) = 0
munmap(0x422000, 24684)                 = 0
munmap(0xdec000, 6385312)               = 0
munmap(0x255000, 287840)                = 0
munmap(0x9a4000, 464944)                = 0
write(2, "\n", 1)                       = 1
write(1, "Backtrace:\n", 11)            = 11
write(2, "In ", 3)                      = 3
write(2, "standard input", 14)          = 14
write(2, ":\n", 2)                      = 2
write(2, " ", 1)                        = 1
write(2, " ", 1)                        = 1
write(2, " ", 1)                        = 1
write(2, "1", 1)                        = 1
write(2, ": ", 2)                       = 2
write(2, "0", 1)                        = 1
write(2, "*", 1)                        = 1
write(2, " ", 1)                        = 1
write(2, "[dynamic-link \"libguile-wgdef\"]", 31) = 31
write(2, "\n", 1)                       = 1
write(2, "\n", 1)                       = 1
write(2, "standard input", 14)          = 14
write(2, ":", 1)                        = 1
write(2, "1", 1)                        = 1
write(2, ":", 1)                        = 1
write(2, "1", 1)                        = 1
write(2, ": ", 2)                       = 2
write(2, "In procedure ", 13)           = 13
write(2, "dynamic-link", 12)            = 12
write(2, " in expression ", 15)         = 15
write(2, "(", 1)                        = 1
write(2, "dynamic-link", 12)            = 12
write(2, " ", 1)                        = 1
write(2, "\"", 1)                       = 1
write(2, "libguile-wgdef", 14)          = 14
write(2, "\"", 1)                       = 1
write(2, ")", 1)                        = 1
write(2, ":\n", 2)                      = 2
write(2, "standard input", 14)          = 14
write(2, ":", 1)                        = 1
write(2, "1", 1)                        = 1
write(2, ":", 1)                        = 1
write(2, "1", 1)                        = 1
write(2, ": ", 2)                       = 2
write(2, "file: ", 6)                   = 6
write(2, "\"", 1)                       = 1
write(2, "libguile-wgdef", 14)          = 14
write(2, "\"", 1)                       = 1
write(2, ", message: ", 11)             = 11
write(2, "\"", 1)                       = 1
write(2, "file not found", 14)          = 14
write(2, "\"", 1)                       = 1
write(2, "\n", 1)                       = 1
write(2, "ABORT: ", 7)                  = 7
write(2, "(", 1)                        = 1
write(2, "misc-error", 10)              = 10
write(2, ")", 1)                        = 1
write(2, "\n", 1)                       = 1
write(1, "guile> ", 7)                  = 7
select(1024, [0], [], [], {0, 0})       = 0 (Timeout)
fcntl64(0, F_GETFL)                     = 0x2 (flags O_RDWR)
select(4, [0 3], NULL, NULL, NULL)      = 1 (in [0])
read(0, "", 1)                          = 0
times({tms_utime=8, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 1730058661
rt_sigaction(SIGBUS, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL, [], 0}, {0xd2e660, [], 0}, 8) = 0
rt_sigaction(SIGFPE, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGSEGV, NULL, {SIG_DFL, [], 0}, 8) = 0
exit_group(0)                           = ?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: dynamic linking
  2010-02-05 12:57 Tomas By
@ 2010-02-05 13:57 ` Ludovic Courtès
  0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2010-02-05 13:57 UTC (permalink / raw)
  To: guile-user

Hi,

"Tomas By" <tomas@basun.net> writes:

> open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/libgc.so",
> O_RDONLY) = 9

[...]

> I guess that "libgc.so" is the Mercury garbage collector. Is there some
> problem with having another GC in a Guile module?

The problem is that Guile 1.9 is linked against another libgc (this one:
http://www.hpl.hp.com/personal/Hans_Boehm/gc/).  So, presumably, when
dlopening the Guile module, the dynamic linker tries top open libgc.so
but picks up the wrong one, hence the failure.

Thanks,
Ludo’.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: dynamic linking
@ 2010-02-08 12:15 Tomas By
  2010-02-08 12:50 ` Ludovic Courtès
  0 siblings, 1 reply; 6+ messages in thread
From: Tomas By @ 2010-02-08 12:15 UTC (permalink / raw)
  To: guile-user

Hello again,

I have now tried to link my Mercury library with the libgc that Guile
uses instead of the Mercury one, and I asked about it on the Mercury
mailing list, where I got this reply:

"The version of libgc that Mercury uses contains Mercury specific
modifications; I would be surprised if linking against the system
wide one worked."

The final parts of both strace outputs are included below.

The version of Guile I am using is 1.8.7 -- is it worth trying 1.9
instead?

Is it generally possible to use two different libgc at the same time?

Grateful for any help with this.

/Tomas

---------- begin Mercury GC ---------------------------------------
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/libgc.so",
O_RDONLY) = 9
read(9,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@y\0\0004\0\0\0"..., 512)
= 512
fstat64(9, {st_mode=S_IFREG|0755, st_size=121223, ...}) = 0
mmap2(NULL, 464944, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 9, 0)
= 0x9a4000
mmap2(0x9bb000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 9, 0x17) = 0x9bb000
mmap2(0x9bd000, 362544, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x9bd000
close(9)                                = 0
mprotect(0x9bb000, 4096, PROT_READ)     = 0
mprotect(0x298000, 4096, PROT_READ)     = 0
mprotect(0x11b2000, 126976, PROT_READ)  = 0
mprotect(0x422000, 20480, PROT_READ|PROT_WRITE) = 0
munmap(0x422000, 24684)                 = 0
munmap(0xdec000, 6385312)               = 0
munmap(0x255000, 287840)                = 0
munmap(0x9a4000, 464944)                = 0
----------------------------------------------------------------

---------- begin Guile GC -----------------------------------------
open("/usr/lib/libgc.so", O_RDONLY)     = 9
read(9, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0
\200\0\0004\0\0\0"..., 512) = 512
fstat64(9, {st_mode=S_IFREG|0644, st_size=137280, ...}) = 0
mmap2(NULL, 206620, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 9, 0)
= 0x49b000
mmap2(0x4bc000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 9, 0x20) = 0x4bc000
mmap2(0x4be000, 63260, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4be000
close(9)                                = 0
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/libgcc_s.so.1",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/asm_fast.gc/libgcc_s.so.1",
O_RDONLY) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
directory)
open("/lib/libgcc_s.so.1", O_RDONLY)    = 9
read(9,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p#\0\0004\0\0\0"..., 512)
= 512
fstat64(9, {st_mode=S_IFREG|0644, st_size=116272, ...}) = 0
mmap2(NULL, 119336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 9, 0)
= 0xe5b000
mmap2(0xe77000, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 9, 0x1b) = 0xe77000
close(9)                                = 0
mprotect(0xe77000, 4096, PROT_READ)     = 0
mprotect(0x4bc000, 4096, PROT_READ)     = 0
munmap(0xb782b000, 91754)               = 0
munmap(0xab8000, 24684)                 = 0
munmap(0xf83000, 6385312)               = 0
munmap(0x304000, 287840)                = 0
munmap(0x49b000, 206620)                = 0
munmap(0xe5b000, 119336)                = 0
------------------------------------------------------------------

On Fri, February 5, 2010 14:57, Ludovic Courtès wrote:
> Hi,
>
> "Tomas By" <tomas@basun.net> writes:
>
>> open("/usr/local/mercury-rotd-2009-12-28/lib/mercury/lib/libgc.so",
>> O_RDONLY) = 9
>
> [...]
>
>> I guess that "libgc.so" is the Mercury garbage collector. Is there some
>> problem with having another GC in a Guile module?
>
> The problem is that Guile 1.9 is linked against another libgc (this one:
> http://www.hpl.hp.com/personal/Hans_Boehm/gc/).  So, presumably, when
> dlopening the Guile module, the dynamic linker tries top open libgc.so
> but picks up the wrong one, hence the failure.
>
> Thanks,
> Ludo’.
>
>
>
>






^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: dynamic linking
@ 2010-02-08 12:41 Tomas By
  0 siblings, 0 replies; 6+ messages in thread
From: Tomas By @ 2010-02-08 12:41 UTC (permalink / raw)
  To: guile-user

On Mon, February 8, 2010 13:15, Tomas By wrote:
> I have now tried to link my Mercury library with the libgc that Guile
> uses instead of the Mercury one, and I asked about it on the Mercury
> mailing list, where I got this reply:
>
> "The version of libgc that Mercury uses contains Mercury specific
> modifications; I would be surprised if linking against the system
> wide one worked."
> [...]
> Is it generally possible to use two different libgc at the same time?

Just to be absolutely clear: these are both versions of the Boehm GC
library. Mercury uses a modified version located under /usr/local/mercury*
and Guile (afaik) uses a standard version in /usr/lib.

/Tomas






^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: dynamic linking
  2010-02-08 12:15 Tomas By
@ 2010-02-08 12:50 ` Ludovic Courtès
  2010-02-09 13:22   ` Tomas By
  0 siblings, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2010-02-08 12:50 UTC (permalink / raw)
  To: guile-user

Hi,

"Tomas By" <tomas@basun.net> writes:

> The version of Guile I am using is 1.8.7 -- is it worth trying 1.9
> instead?
>
> Is it generally possible to use two different libgc at the same time?

Guile 1.8 does *not* use libgc.  So there must be something else going on.

Looking at the strace(1) output you sent doesn’t really help.  Could you
instead send the strace(1) output starting at the first occurrence of
“libguile”?

Thanks,
Ludo’.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: dynamic linking
  2010-02-08 12:50 ` Ludovic Courtès
@ 2010-02-09 13:22   ` Tomas By
  0 siblings, 0 replies; 6+ messages in thread
From: Tomas By @ 2010-02-09 13:22 UTC (permalink / raw)
  To: guile-user

On Mon, February 8, 2010 13:50, Ludovic Courtès wrote:
> Looking at the strace(1) output you sent doesn’t really help.  Could you
> instead send the strace(1) output starting at the first occurrence of
> “libguile”?

It should be this bit I think:

open("/usr/lib/libguile.so.17", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0
r\2\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=942204, ...}) = 0
mmap2(NULL, 982172, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
= 0xcb2000
mmap2(0xd95000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3,
0xe3) = 0xd95000
mmap2(0xd98000, 40092, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS,
-1, 0) = 0xd98000
close(3)                                = 0

(from my original msg. this is with the Mercury libgc.so)

/Tomas






^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-02-09 13:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-08 12:41 dynamic linking Tomas By
  -- strict thread matches above, loose matches on Subject: below --
2010-02-08 12:15 Tomas By
2010-02-08 12:50 ` Ludovic Courtès
2010-02-09 13:22   ` Tomas By
2010-02-05 12:57 Tomas By
2010-02-05 13:57 ` Ludovic Courtès

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).