bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FFI on OS X?


From: Michael Ellis
Subject: Re: FFI on OS X?
Date: Thu, 3 Mar 2011 11:53:31 -0500

On Thu, Mar 3, 2011 at 9:36 AM, Andreas Rottmann <address@hidden> wrote:
> Hans Aberg <address@hidden> writes:

>>> Why does this fail? �Can you strace it?
>>
>> If you tell me how. :-)
>>
> Apparently, on OS X, "dtruss" does fulfill the role of "strace":
> <http://humberto.digi.com.br/blog/2008/02/25/strace-on-mac-os-x-leopard/>.

Thanks for the tip about dtruss.  Very useful to know about.

For the record, here's some dtruss output  created when I try to
dynamic-link a library that doesn't have a .so softlink, ie
(dynamic-link "libf77lapack").  As you can see it's trying
'open_nocancel', 'access', and 'stat64' looking for .la and .so in all
all the right places before giving up.


89795/0x1bfacf:  open_nocancel("/usr/local/lib/libf77lapack.la\0",
0x0, 0x1B6)              = -1 Err#2
89795/0x1bfacf:  open_nocancel("/usr/local/lib/libf77lapack.la\0",
0x0, 0x1B6)              = -1 Err#2
89795/0x1bfacf:  open_nocancel("/lib/libf77lapack.la\0", 0x0, 0x1B6)            
= -1 Err#2
89795/0x1bfacf:  open_nocancel("/usr/lib/libf77lapack.la\0", 0x0,
0x1B6)           = -1 Err#2
89795/0x1bfacf:  open_nocancel("libf77lapack.la\0", 0x0, 0x1B6)          = -1 
Err#2
89795/0x1bfacf:  access("/usr/local/lib/libf77lapack.so\0", 0x4,
0x10060A800)             = -1 Err#2
89795/0x1bfacf:  access("/usr/local/lib/libf77lapack.so\0", 0x4,
0x10060A800)             = -1 Err#2
89795/0x1bfacf:  access("/lib/libf77lapack.so\0", 0x4, 0x10060A800)             
 = -1 Err#2
89795/0x1bfacf:  access("/usr/lib/libf77lapack.so\0", 0x4,
0x10060A800)             = -1 Err#2
89795/0x1bfacf:  stat64("libf77lapack.so\0", 0x7FFF5FBFE630,
0x7FFF5FBFEC70)          = -1 Err#2
89795/0x1bfacf:  stat64("/Users/mellis/lib/libf77lapack.so\0",
0x7FFF5FBFEA10, 0x7FFF5FBFEC70)          = -1 Err#2
89795/0x1bfacf:  stat64("/usr/local/lib/libf77lapack.so\0",
0x7FFF5FBFEA10, 0x7FFF5FBFEC70)          = -1 Err#2
89795/0x1bfacf:  stat64("/usr/lib/libf77lapack.so\0", 0x7FFF5FBFEA20,
0x7FFF5FBFEC70)          = -1 Err#2
89795/0x1bfacf:  sigprocmask(0x1, 0x0, 0x7FFF5FBFEEC0)           = 0x0 0
89795/0x1bfacf:  sigaltstack(0x0, 0x7FFF5FBFEEB0, 0x0)           = 0 0
89795/0x1bfacf:  write(0x1, "ERROR: In procedure dynamic-link:\nERROR:
In procedure dynamic-link: file: \"libf77lapack\", message: \"file not
found\"\n\0", 0x74)              = 116 0

If I try to specify the .dylib extension, dtruss shows that it fails
because the standard extensions are being appended, e.g.

open_nocancel("/usr/local/lib/libf77lapack.dylib.la\0", 0x0, 0x1B6)

Is this something that can be fixed within Guile?

Cheers,
Mike



reply via email to

[Prev in Thread] Current Thread [Next in Thread]