guile-user
[Top][All Lists]
Advanced

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

Re: dynamic-link on libc


From: Matt Wette
Subject: Re: dynamic-link on libc
Date: Fri, 4 Aug 2017 14:44:49 -0700

> On Aug 4, 2017, at 2:15 PM, Jeff Mickey <address@hidden> wrote:
> 
> Hi guilers!
> 
> I cannot seem to call `dynamic-link' on libc.
> 
> I'm trying to write a simple, dumb wrapper around syslog using the (system 
> foreign) dynamic library to learn how to use the dynamic ffi.
> 
> (use-modules (system foreign))
> (define libcsyslog (dynamic-link "libc"))  (define syslog  (let ((f 
> (pointer->procedure           void (dynamic-func "syslog" libcsyslog) (list 
> int       '*))))    (lambda (level msg)      (let* ((clevel level)         
> (cmsg (string->pointer msg))) (f clevel cmsg)))))  (syslog 3 "hello there") 
> 
> This works when I symlink /lib/x86_64-linux-gnu/libc.so.6 to libc.so, but it 
> looks like the libtool library that is doing the load doesn't accept names 
> that end in ".6" as a library name, and when I used the full path it just 
> says "file not found".
> 
> Anyone have suggestions? I looked at the dynl.c sysdep_dynl_link function, 
> but I'm not sure I understand libtool well enough to know what lt_dlopenext 
> should be doing.
> 
> I should add I tested this on a debian system with a debian provided guile, 
> and a "user installed guix" guile install as well.
> 
> Thanks!
> 
> //  codemac
> 

I don’t think you need to dynamic-link libc; just use (dynamic-func "syslog" 
(dynamic-link)).




reply via email to

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