[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
dynamic-link on libc
From: |
Jeff Mickey |
Subject: |
dynamic-link on libc |
Date: |
Fri, 04 Aug 2017 14:15:46 -0700 |
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
- dynamic-link on libc,
Jeff Mickey <=