FXRuby on Mandrake 8.2

Hi, could someone help a beginner rubyer please ?

I’m trying to test FXRuby on Mandrake 8.2
I compile a fox library version 1.0.26 with no problem
Then compile the FXRuby-1.0.16 without problem
but when I try irb …

irb(main):001:0> require 'fox’
LoadError: /usr/lib/libcrypto.so.0: shared object not open -
/home/coquelle//lib/ruby/site_ruby/1.6/i686-linux/fox.so
from (irb):1:in `require’
from (irb):1

I’ve read some non soluced identical problem … and I don’t know what
to do now …
Anybody could advice please ???

chao / Ludo

LoadError: /usr/lib/libcrypto.so.0: shared object not open -
/home/coquelle//lib/ruby/site_ruby/1.6/i686-linux/fox.so

What give ldd for these libraries ?

Guy Decoux

Ludo wrote:

LoadError: /usr/lib/libcrypto.so.0: shared object not open -
/home/coquelle//lib/ruby/site_ruby/1.6/i686-linux/fox.so
from (irb):1:in `require’
from (irb):1

This post:

http://www.ruby-talk.org/44338

suggests that you may be able to alter your LD_LIBRARY_PATH setting to
fix it.

Hope this helps,

Lyle

What give ldd for these libraries ?

all seems ok :frowning:
and libcrypto.so.0 seems ok too !
really I don’t understand …
could it be a(nother) Mandrake problem ?

    libFOX-1.0.so.0 => /usr/lib/libFOX-1.0.so.0 (0x40585000)
    libGLU.so.1 => /usr/X11R6/lib/libGLU.so.1 (0x40826000)
    libGL.so.1 => /usr/lib/libGL.so.1 (0x408e2000)
    libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4092b000)
    libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x409f2000)
    libtiff.so.3 => /usr/lib/libtiff.so.3 (0x40a01000)
    libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x40a47000)
    libz.so.1 => /lib/libz.so.1 (0x40a68000)
    libpng12.so.0 => /usr/lib/libpng12.so.0 (0x40a77000)
    libstdc++.so.3 => /usr/lib/libstdc++.so.3 (0x40a9e000)
    libc.so.6 => /lib/libc.so.6 (0x40b43000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40c7f000)
    libpng.so.3 => /usr/lib/libpng.so.3 (0x40c88000)
    libm.so.6 => /lib/libm.so.6 (0x40c8a000)
    libcups.so.2 => /usr/lib/libcups.so.2 (0x40cac000)
    libnsl.so.1 => /lib/libnsl.so.1 (0x40cc8000)
    libGLcore.so.1 => /usr/lib/libGLcore.so.1 (0x40cde000)
    libdl.so.2 => /lib/libdl.so.2 (0x41078000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
    libssl.so.0 => /usr/lib/libssl.so.0 (0x4107b000)
    libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0x410ac000)
···

On Mon, 2002-11-25 at 18:28, ts wrote:

> LoadError: /usr/lib/libcrypto.so.0: shared object not open -
> /home/coquelle//lib/ruby/site_ruby/1.6/i686-linux/fox.so

LoadError: /usr/lib/libcrypto.so.0: shared object not open -

and libcrypto.so.0 seems ok too !
really I don't understand ...

Well apparently the error message suggest that it has a problem with
libcrypto.so.0 but why ???

Guy Decoux

Well apparently the error message suggest that it has a problem with
libcrypto.so.0 but why ???

Guy Decoux

I have recompiled openssl (libcrypto is in it) but no change.
I do not understand the message “shared object not open” !!!

···

On Mon, 2002-11-25 at 18:43, ts wrote:

> LoadError: /usr/lib/libcrypto.so.0: shared object not open -

> and libcrypto.so.0 seems ok too !
> really I don't understand ...

I have recompiled openssl (libcrypto is in it) but no change.
I do not understand the message "shared object not open" !!!

Try

   export LD_DEBUG=symbols

Look for the last lookup before dl_signal_error

Guy Decoux

I have recompiled openssl (libcrypto is in it) but no change.
I do not understand the message “shared object not open” !!!

 Try

   export LD_DEBUG=symbols

 Look for the last lookup before dl_signal_error

I don’t knew this possibility … and I have some difficulties to
understand all the messages that gives the linker … I will look more
in details later :wink:
(strange that I can’t pipe all the logs in a file by 'ruby test.rb 2>&1

lib_lookup.txt’ …)
but thanks a lot !

···

On Mon, 2002-11-25 at 19:00, ts wrote:

Try

   export LD_DEBUG=symbols

 Look for the last lookup before dl_signal_error

with a file test.rb just containing " require ‘fox’ ", I do this
$ export LD_DEBUG=symbols
$ ruby test.rb > lib_lookup.txt 2>&1

the error should be in this lines … but what could I do ?

sorry to insist you, but I’m near to abandon GUI with Ruby :((
… or maybe change to another distribution of linux :slight_smile:

19192: symbol=_ZN5FXApp9metaClassE; lookup in file=ruby
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/lib/libdl.so.2
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/lib/libcrypt.so.1
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/lib/libm.so.6
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/lib/libc.so.6
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/lib/ld-linux.so.2
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/home/coquelle//lib/ruby/site_ruby/1.6/i686-linux/fox.so
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/lib/libFOX-1.0.so.0
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/X11R6/lib/libGLU.so.1
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/usr/lib/libGL.so.1
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/X11R6/lib/libX11.so.6
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/X11R6/lib/libXext.so.6
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/lib/libtiff.so.3
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/lib/libjpeg.so.62
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/lib/libz.so.1
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/lib/libpng12.so.0
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/lib/libstdc++.so.3
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/lib/libc.so.6
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/lib/libgcc_s.so.1
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/lib/libpng.so.3
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/lib/libm.so.6
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/lib/libcups.so.2
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/lib/libnsl.so.1
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/lib/libGLcore.so.1
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/lib/libdl.so.2
19192: symbol=_ZN5FXApp9metaClassE; lookup in file=/lib/ld-linux.so.2
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/lib/libssl.so.0
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/lib/libcrypto.so.0
19192: symbol=_dl_unload_cache; lookup in file=ruby
19192: symbol=_dl_unload_cache; lookup in file=/lib/libdl.so.2
19192: symbol=_dl_unload_cache; lookup in file=/lib/libcrypt.so.1
19192: symbol=_dl_unload_cache; lookup in file=/lib/libm.so.6
19192: symbol=_dl_unload_cache; lookup in file=/lib/libc.so.6
19192: symbol=_dl_unload_cache; lookup in file=/lib/ld-linux.so.2
19192: symbol=_dl_close; lookup in file=ruby
19192: symbol=_dl_close; lookup in file=/lib/libdl.so.2
19192: symbol=_dl_close; lookup in file=/lib/libcrypt.so.1
19192: symbol=_dl_close; lookup in file=/lib/libm.so.6
19192: symbol=_dl_close; lookup in file=/lib/libc.so.6
19192: symbol=_dl_debug_state; lookup in file=ruby
19192: symbol=_dl_debug_state; lookup in file=/lib/libdl.so.2
19192: symbol=_dl_debug_state; lookup in file=/lib/libcrypt.so.1
19192: symbol=_dl_debug_state; lookup in file=/lib/libm.so.6
19192: symbol=_dl_debug_state; lookup in file=/lib/libc.so.6
19192: symbol=_dl_debug_state; lookup in file=/lib/ld-linux.so.2

19192: symbol=_dl_signal_error; lookup in file=ruby
19192: symbol=_dl_signal_error; lookup in file=/lib/libdl.so.2
19192: symbol=_dl_signal_error; lookup in file=/lib/libcrypt.so.1
19192: symbol=_dl_signal_error; lookup in file=/lib/libm.so.6
19192: symbol=_dl_signal_error; lookup in file=/lib/libc.so.6
19192: symbol=_dl_signal_error; lookup in file=/lib/ld-linux.so.2

19192: symbol=dlerror; lookup in file=ruby
19192: symbol=dlerror; lookup in file=/lib/libdl.so.2
19192: symbol=strerror; lookup in file=ruby
19192: symbol=strerror; lookup in file=/lib/libdl.so.2
19192: symbol=strerror; lookup in file=/lib/libcrypt.so.1
19192: symbol=strerror; lookup in file=/lib/libm.so.6
19192: symbol=strerror; lookup in file=/lib/libc.so.6
19192: symbol=__strerror_r; lookup in file=ruby
19192: symbol=__strerror_r; lookup in file=/lib/libdl.so.2
19192: symbol=__strerror_r; lookup in file=/lib/libcrypt.so.1
19192: symbol=__strerror_r; lookup in file=/lib/libm.so.6
19192: symbol=__strerror_r; lookup in file=/lib/libc.so.6
19192: symbol=__dcgettext; lookup in file=ruby
19192: symbol=__dcgettext; lookup in file=/lib/libdl.so.2
19192: symbol=__dcgettext; lookup in file=/lib/libcrypt.so.1
19192: symbol=__dcgettext; lookup in file=/lib/libm.so.6
19192: symbol=__dcgettext; lookup in file=/lib/libc.so.6
19192: symbol=getenv; lookup in file=ruby
19192: symbol=getenv; lookup in file=/lib/libdl.so.2
19192: symbol=getenv; lookup in file=/lib/libcrypt.so.1
19192: symbol=getenv; lookup in file=/lib/libm.so.6
19192: symbol=getenv; lookup in file=/lib/libc.so.6
19192: symbol=setlocale; lookup in file=ruby
19192: symbol=setlocale; lookup in file=/lib/libdl.so.2
19192: symbol=setlocale; lookup in file=/lib/libcrypt.so.1
19192: symbol=setlocale; lookup in file=/lib/libm.so.6
19192: symbol=setlocale; lookup in file=/lib/libc.so.6
19192: symbol=__mempcpy; lookup in file=ruby
19192: symbol=__mempcpy; lookup in file=/lib/libdl.so.2
19192: symbol=__mempcpy; lookup in file=/lib/libcrypt.so.1
19192: symbol=__mempcpy; lookup in file=/lib/libm.so.6
19192: symbol=__mempcpy; lookup in file=/lib/libc.so.6
19192: symbol=__dcgettext; lookup in file=ruby
19192: symbol=__dcgettext; lookup in file=/lib/libdl.so.2
19192: symbol=__dcgettext; lookup in file=/lib/libcrypt.so.1
19192: symbol=__dcgettext; lookup in file=/lib/libm.so.6
19192: symbol=__dcgettext; lookup in file=/lib/libc.so.6
19192: symbol=__asprintf; lookup in file=ruby
19192: symbol=__asprintf; lookup in file=/lib/libdl.so.2
19192: symbol=__asprintf; lookup in file=/lib/libcrypt.so.1
19192: symbol=__asprintf; lookup in file=/lib/libm.so.6
19192: symbol=__asprintf; lookup in file=/lib/libc.so.6
19192: symbol=free; lookup in file=ruby
19192: symbol=free; lookup in file=/lib/libdl.so.2
19192: symbol=free; lookup in file=/lib/libcrypt.so.1
19192: symbol=free; lookup in file=/lib/libm.so.6
19192: symbol=free; lookup in file=/lib/libc.so.6
19192: symbol=free; lookup in file=/lib/ld-linux.so.2
19192: symbol=vsnprintf; lookup in file=ruby
19192: symbol=vsnprintf; lookup in file=/lib/libdl.so.2
19192: symbol=vsnprintf; lookup in file=/lib/libcrypt.so.1
19192: symbol=vsnprintf; lookup in file=/lib/libm.so.6
19192: symbol=vsnprintf; lookup in file=/lib/libc.so.6
19192: symbol=vsnprintf; lookup in file=/lib/ld-linux.so.2
19192: symbol=sigprocmask; lookup in file=ruby
19192: symbol=sigprocmask; lookup in file=/lib/libdl.so.2
19192: symbol=sigprocmask; lookup in file=/lib/libcrypt.so.1
19192: symbol=sigprocmask; lookup in file=/lib/libm.so.6
19192: symbol=sigprocmask; lookup in file=/lib/libc.so.6
19192: symbol=sigprocmask; lookup in file=/lib/ld-linux.so.2
19192: symbol=longjmp; lookup in file=ruby
19192: symbol=longjmp; lookup in file=/lib/libdl.so.2
19192: symbol=longjmp; lookup in file=/lib/libcrypt.so.1
19192: symbol=longjmp; lookup in file=/lib/libm.so.6
19192: symbol=longjmp; lookup in file=/lib/libc.so.6
19192: symbol=longjmp; lookup in file=/lib/ld-linux.so.2
19192: symbol=fwrite; lookup in file=ruby
19192: symbol=fwrite; lookup in file=/lib/libdl.so.2
19192: symbol=fwrite; lookup in file=/lib/libcrypt.so.1
19192: symbol=fwrite; lookup in file=/lib/libm.so.6
19192: symbol=fwrite; lookup in file=/lib/libc.so.6
19192: symbol=fwrite; lookup in file=/lib/ld-linux.so.2
19192: symbol=__write; lookup in file=ruby
19192: symbol=__write; lookup in file=/lib/libdl.so.2
19192: symbol=__write; lookup in file=/lib/libcrypt.so.1
19192: symbol=__write; lookup in file=/lib/libm.so.6
19192: symbol=__write; lookup in file=/lib/libc.so.6
19192: symbol=__write; lookup in file=/lib/ld-linux.so.2
test.rb:1:in `require’: /usr/lib/libcrypto.so.0: shared object not open

  • /home/
    coquelle//lib/ruby/site_ruby/1.6/i686-linux/fox.so (LoadError)
···

On Mon, 2002-11-25 at 19:00, ts wrote:

> I have recompiled openssl (libcrypto is in it) but no change.
> I do not understand the message "shared object not open" !!!

Try:
ruby test.rb >lib_lookup.txt 2>&1

( 2>&1 means “redirect 2 to where 1 is currently redirected to” )

···

----- Original Message -----
From: Ludo
To: ruby-talk ML
Sent: Monday, November 25, 2002 10:34 AM
Subject: Re: FXRuby on Mandrake 8.2

On Mon, 2002-11-25 at 19:00, ts wrote:

I have recompiled openssl (libcrypto is in it) but no change.
I do not understand the message “shared object not open” !!!

Try

export LD_DEBUG=symbols

Look for the last lookup before dl_signal_error
I don’t knew this possibility … and I have some difficulties to understand all the messages that gives the linker … I will look more in details later :wink:
(strange that I can’t pipe all the logs in a file by ‘ruby test.rb 2>&1 >lib_lookup.txt’ …)

but thanks a lot !

Try

       export LD_DEBUG=symbols
    
     Look for the last lookup before dl_signal_error

with a file test.rb just containing " require 'fox' ", I do this 
$ export LD_DEBUG=symbols 
$ ruby test.rb > lib_lookup.txt 2>&1 

the error should be in this lines ... but what could I do ? 

sorry to insist you, but I'm near to abandon GUI with Ruby :(( 
... or maybe change to another distribution of linux :) 

j’ai upgrade au glibc de la Mandrake 9.0,
le message est plus clair … mais je ne sais toujours pas quoi en faire
:frowning: ???

test.rb:1:in `require’:
/home/coquelle//lib/ruby/site_ruby/1.6/i686-linux/fox.so: undefined
symbol: _ZN5FXApp9metaClassE -
/home/coquelle//lib/ruby/site_ruby/1.6/i686-linux/fox.so (LoadError)

···

On Tue, 2002-11-26 at 09:43, Ludo wrote:

On Mon, 2002-11-25 at 19:00, ts wrote: 


    
    > I have recompiled openssl (libcrypto is in it) but no change.
    > I do not understand the message "shared object not open" !!!

19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/home/coquelle//lib/ruby/site_ruby/1.6/i686-linux/fox.so
19192: symbol=_ZN5FXApp9metaClassE; lookup in
file=/usr/lib/libFOX-1.0.so.0

Well, it seems to have a conflict between these 2 versions but why ???

Guy Decoux

I

ts wrote:

Well, it seems to have a conflict between these 2 versions but why ???

Is it possible that the FOX library (libFOX.so) and the FXRuby extension
(fox.so) were compiled with different versions of g++? I know that for
Red Hat 8.0 and Mandrake 9.0 they upgraded to g++ 3.2 as the default
compiler.

Is it possible that the FOX library (libFOX.so) and the FXRuby extension
(fox.so) were compiled with different versions of g++?

Yes, this was this.

Guy Decoux

It was exactly my problem !

I had 2 libFOX.so, and the one dynamicaly loaded was compile with
gcc-2.96, wheras my lib FXRuby (fox.so) was compile with gcc-3.2 (even
if I have just Mandrake8.2)
so there was a problem of symbols (FXApp.metaClass from libFOX.so under
gcc-2.96 is named FXApp9metaCLassE under gcc-3.2) … but the error
message from the linker at execution time wasn’t really clear :)) seems
to be clearer under glibc-2.2.5 …

thanks a lot to every body who guided my research ! ;))

ludo

ts wrote:

>  Well, it seems to have a conflict between these 2 versions but why ???

Is it possible that the FOX library (libFOX.so) and the FXRuby extension 
(fox.so) were compiled with different versions of g++? I know that for 
Red Hat 8.0 and Mandrake 9.0 they upgraded to g++ 3.2 as the default 
compiler.
···

On Tue, 2002-11-26 at 15:46, Lyle Johnson wrote: