This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: can't dynamic load guile-gtk+ bindings


>>>>> "VM" == Vollmer Marius <mvo@zagadka.ping.de> writes:

    VM> Jens-Ulrik Petersen <petersen@kurims.kyoto-u.ac.jp> writes:
    >> Hmmm, it has never worked for me as far as I can remember...
    >> Do you have any suggestions (for a C idiot like me) about what
    >> I can do to investigate my problem further?

    VM> Not many, I dont know anything about shared libs on Solaris
    VM> myself.  You might want to try some minimal tests like

    guile> (define d (dynamic-link "libX11.so")) d
    VM>     #<dynamic-object "libX11.so">
    guile> (dynamic-func "XOpenDisplay" d)
    VM>     4014519492

Hmmm, I get:

petersen[boron]~% guile
guile> (define d (dynamic-link "libX11.so"))
guile> d
#<dynamic-object "libX11.so">
guile> (dynamic-func "XOpendisplay" d)

Backtrace:
0* [dynamic-func "XOpendisplay" #<dynamic-object "libX11.so">]

ERROR: In procedure dynamic-func in expression (dynamic-func "XOpendisplay" d):
ERROR: ld.so.1: guile: fatal: XOpendisplay: can't find symbol
ABORT: (misc-error)

    VM> Wait I just noticed something...

    VM> guile> (define d (dynamic-link "libgtk.so"))
    VM>     ERROR: In procedure dynamic-link in expression
    VM>     (dynamic-link "libgtk.so"): ERROR: ld.so.1: guile: fatal:
    VM>     relocation error: symbol not found: g_strcasecmp:
    VM>     referenced in /homes/vollmer/lib/libgtk.so ABORT:
    VM>     (misc-error)

    VM>     Type "(backtrace)" to get more information.

    VM> This is analogous to your problem, right?

Probably.  I have:

guile> (define d (dynamic-link "libgtk.so"))

Backtrace:
0* (define d (dynamic-link "libgtk.so"))
1* [define (define d (#@dynamic-link "libgtk.so")) (#<procedure (symbol define?)>)]
2* [dynamic-link "libgtk.so"]

ERROR: In procedure dynamic-link in expression (dynamic-link "libgtk.so"):
ERROR: ld.so.1: guile: fatal: relocation error: file /proj2/lang/mule-unsupported/solaris/lib/libgtk.so: symbol gdk_font_equal: referenced symbol not found
ABORT: (misc-error)

    VM> I can only speculate here that libgtk.so needs libglib.so but
    VM> does not contain enough information to have the dynloader load
    VM> it automatically.  This might be an instance of the
    VM> interlibrary dependency stuff that libtool has some problems
    VM> with.

    VM> But libguilegtk.so loads fine:

    guile> (define d (dynamic-link "libguilegtk.so")) d
    VM>     #<dynamic-object "libguilegtk.so">

    VM> It looks like as if libguilegtk.so contains enough information
    VM> about its dependencies on other libraries.

I get:

guile> (define d (dynamic-link "libguilegtk.so"))

Backtrace:
0* (define d (dynamic-link "libguilegtk.so"))
1* [define (define d (#@dynamic-link "libguilegtk.so")) (#<procedure (symbol define?)>)]
2* [dynamic-link "libguilegtk.so"]

ERROR: In procedure dynamic-link in expression (dynamic-link "libguilegtk.so"):
ERROR: ld.so.1: guile: fatal: relocation error: file /proj2/lang/mule-unsupported/solaris/lib/libguilegtk.so: symbol gtk_style_unref: referenced symbol not found
ABORT: (misc-error)

    VM> You might want to try a recent gnome-guile snapshot.
    >> Should that make a big difference?  Maybe I will try later, if
    >> I have time.

    VM> Yes, it is likely that in later versions libguilegtk.so is
    VM> build differently, so as to include this extra information on
    VM> library dependencies.

Ok.  Thanks, Marius.
-- 
Jens-Ulrik Petersen	<http://www.kurims.kyoto-u.ac.jp/~petersen/>
---
Today is a good day to bribe a high-ranking public official.