guile-user
[Top][All Lists]
Advanced

[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



reply via email to

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