Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > ruby CVS can't use shared libs on NetBSD

Reply
Thread Tools

ruby CVS can't use shared libs on NetBSD

 
 
Dick Davies
Guest
Posts: n/a
 
      04-30-2004

This is probably a platform thing, I'm using cvs ruby
on NetBSD 1.6Z ...

I can use most ruby libs ok, but there's a coredump whenever
I try to use a shared library
(seen it so far in ruby-ldap and ruby-postgresql)

My guess is there's a problem in my build of ruby itself, does
anyone know if there's something I missed?

I just did a bog standard
'./configure --prefix=/data/ruby;make;make install'
to get ruby in, and a
'ruby extconf.rb --with-pgsql=/usr/pkg;make;make install'
to add ruby-postgresql

The only thing I can think of is that you often need to add
a '-Wl,R/lib/dir' to gcc compiles on NetBSD, but I noticed
the ruby-postgresql lib does figure that out, so I guess extconf.rb
is at least aware of it?

Example backtrace below:

rasputin@lb:lib$ ruby -rpostgres -e ""
Abort trap (core dumped)
rasputin@lb:lib$ gdb /data/ruby/bin/ruby ruby.core
GNU gdb 5.0nb1
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386--netbsdelf"...Deprecated bfd_read called at /usr/src/gnu/dist/toolchain/gdb/dbxread.c line 2638 in elfstab_build_psymtabs
Deprecated bfd_read called at /usr/src/gnu/dist/toolchain/gdb/dbxread.c line 976 in fill_symbuf

Core was generated by `ruby'.
Program terminated with signal 6, Abort trap.
Reading symbols from /usr/libexec/ld.elf_so...done.
Loaded symbols for /usr/libexec/ld.elf_so
Reading symbols from /usr/lib/libcrypt.so.0...done.
Loaded symbols for /usr/lib/libcrypt.so.0
Reading symbols from /usr/lib/libm387.so.0...done.
Loaded symbols for /usr/lib/libm387.so.0
Reading symbols from /usr/lib/libm.so.0...done.
Loaded symbols for /usr/lib/libm.so.0
Reading symbols from /usr/lib/libc.so.12...done.
Loaded symbols for /usr/lib/libc.so.12
Reading symbols from /data/ruby/lib/ruby/site_ruby/1.9/i386-netbsdelf/postgres.so...done.
Loaded symbols for /data/ruby/lib/ruby/site_ruby/1.9/i386-netbsdelf/postgres.so
Reading symbols from /usr/pkg/lib/libpq.so.3...done.
Loaded symbols for /usr/pkg/lib/libpq.so.3
Reading symbols from /usr/lib/libssl.so.3...done.
Loaded symbols for /usr/lib/libssl.so.3
Reading symbols from /usr/lib/libcrypto.so.2...done.
Loaded symbols for /usr/lib/libcrypto.so.2
Reading symbols from /usr/lib/libresolv.so.1...done.
Loaded symbols for /usr/lib/libresolv.so.1
Reading symbols from /usr/lib/libintl.so.0...done.
Loaded symbols for /usr/lib/libintl.so.0
Reading symbols from /usr/lib/libpthread.so.0...done.
Loaded symbols for /usr/lib/libpthread.so.0
#0 0x4814669f in kill () from /usr/lib/libc.so.12
(gdb) bt
#0 0x4814669f in kill () from /usr/lib/libc.so.12
#1 0x4814871b in __libc_mutex_unlock () from /usr/lib/libc.so.12
#2 0x481b8b7b in malloc () from /usr/lib/libc.so.12
#3 0x806bd84 in ruby_xmalloc (size=380) at gc.c:116
#4 0x80ce635 in onig_alloc_init (reg=0xbfbff0c4, option=0, enc=0x80f7940, syntax=0x80f5b00) at regcomp.c:4833
#5 0x80a1d88 in re_alloc_pattern (reg=0xbfbff0c4) at reggnu.c:114
#6 0x8099977 in make_regexp (s=0x481e05e9 "([\\t\\n\\\\])", len=10, flags=0) at re.c:636
#7 0x809a5eb in rb_reg_initialize (obj=135436308, s=0x481e05e9 "([\\t\\n\\\\])", len=10, options=0) at re.c:1368
#8 0x809a6a7 in rb_reg_new (s=0x481e05e9 "([\\t\\n\\\\])", len=10, options=0) at re.c:1401
#9 0x481df5a0 in Init_postgres () from /data/ruby/lib/ruby/site_ruby/1.9/i386-netbsdelf/postgres.so
#10 0x80c50f1 in dln_load (file=0x815e300 "/data/ruby/lib/ruby/site_ruby/1.9/i386-netbsdelf/postgres.so") at dln.c:1336
#11 0x805f8b3 in rb_require_safe (fname=135436488, safe=0) at eval.c:6757
#12 0x805f9af in rb_require (fname=0x815dbe0 "postgres") at eval.c:6789
#13 0x80a81d4 in require_libraries () at ruby.c:360
#14 0x80a8e98 in proc_options (argc=0, argv=0xbfbff4c4) at ruby.c:781
#15 0x80a9638 in ruby_process_options (argc=4, argv=0xbfbff4b4) at ruby.c:1137
#16 0x8054b20 in ruby_options (argc=4, argv=0xbfbff4b4) at eval.c:1370
#17 0x8053329 in main (argc=4, argv=0xbfbff4b4, envp=0xbfbff4c at main.c:49
#18 0x80530f4 in ___start ()
(gdb) quit

--
Those who can't write, write manuals.
Rasputin :: Jack of All Trades - Master of Nuns


 
Reply With Quote
 
 
 
 
ts
Guest
Posts: n/a
 
      04-30-2004
>>>>> "D" == Dick Davies <(E-Mail Removed)> writes:

D> Reading symbols from /usr/lib/libpthread.so.0...done.
D> Loaded symbols for /usr/lib/libpthread.so.0

PostgreSQL was compiled with -lpthread ?

In this case, you need to compile ruby with --enable-pthread


Guy Decoux



 
Reply With Quote
 
 
 
 
Dick Davies
Guest
Posts: n/a
 
      04-30-2004
* ts <(E-Mail Removed)> [0419 16:19]:
> >>>>> "D" == Dick Davies <(E-Mail Removed)> writes:

>
> D> Reading symbols from /usr/lib/libpthread.so.0...done.
> D> Loaded symbols for /usr/lib/libpthread.so.0
>
> PostgreSQL was compiled with -lpthread ?
>
> In this case, you need to compile ruby with --enable-pthread


Ah, that falls over when miniruby dumps core trying to build digest-md5...

rasputin@lb:ruby$ make
compiling digest/md5
[1] Illegal instruction (core dumped) ./miniruby ./ext...
*** Error code 132

Stop.
make: stopped in /home/rasputin/rubybits/cvs/ruby
rasputin@lb:ruby$ gdb miniruby ext/digest/md5/miniruby.core
GNU gdb 5.0nb1
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386--netbsdelf"

Core was generated by `miniruby'.
Program terminated with signal 4, Illegal instruction.
Reading symbols from /usr/libexec/ld.elf_so...done.
Loaded symbols for /usr/libexec/ld.elf_so
Reading symbols from /usr/lib/libpthread.so.0...done.
Loaded symbols for /usr/lib/libpthread.so.0
Reading symbols from /usr/lib/libcrypt.so.0...done.
Loaded symbols for /usr/lib/libcrypt.so.0
Reading symbols from /usr/lib/libm387.so.0...done.
Loaded symbols for /usr/lib/libm387.so.0
Reading symbols from /usr/lib/libm.so.0...done.
Loaded symbols for /usr/lib/libm.so.0
Reading symbols from /usr/lib/libc.so.12...done.
Loaded symbols for /usr/lib/libc.so.12
#0 0x80572d5 in rb_eval (self=135502304, n=0x81d1864) at eval.c:2638
2638 }
(gdb) bt
#0 0x80572d5 in rb_eval (self=135502304, n=0x81d1864) at eval.c:2638
#1 0x805df5b in rb_call0 (klass=135507224, recv=135502304, id=11369, oid=11369, argc=0, argv=0xbfbc3638, body=0x81d0f2c,
nosuper=0) at eval.c:5584
#2 0x805e458 in rb_call (klass=135507224, recv=135502304, mid=11369, argc=2, argv=0xbfbc3638, scope=1) at eval.c:5696
#3 0x80590a0 in rb_eval (self=135502304, n=0x81d011c) at eval.c:3238
#4 0x8058f0f in rb_eval (self=135502304, n=0x81d00cc) at eval.c:3233
#5 0x8062911 in block_pass (self=135502304, node=0x81d00e0) at eval.c:8336
#6 0x8057d78 in rb_eval (self=135502304, n=0x81d01d0) at eval.c:2929
#7 0x805dfdf in rb_call0 (klass=135507224, recv=135502304, id=11481, oid=11481, argc=0, argv=0xbfbc7e88, body=0x81d01d0,
nosuper=0) at eval.c:5603
#8 0x805e458 in rb_call (klass=135507224, recv=135502304, mid=11481, argc=2, argv=0xbfbc7e88, scope=1) at eval.c:5696
#9 0x80590a0 in rb_eval (self=135502304, n=0x81cfeec) at eval.c:3238
#10 0x8062911 in block_pass (self=135502304, node=0x81cff00) at eval.c:8336
#11 0x8057d78 in rb_eval (self=135502304, n=0x81cff00) at eval.c:2929
#12 0x805855a in rb_eval (self=135502304, n=0x81cff8c) at eval.c:3079
#13 0x805dfdf in rb_call0 (klass=135507224, recv=135502304, id=11489, oid=11489, argc=0, argv=0xbfbcc6c8, body=0x81cff8c,
nosuper=0) at eval.c:5603
#14 0x805e458 in rb_call (klass=135507224, recv=135502304, mid=11489, argc=2, argv=0xbfbcc6c8, scope=1) at eval.c:5696
#15 0x80590a0 in rb_eval (self=135502304, n=0x81cd5ac) at eval.c:3238
#16 0x8062911 in block_pass (self=135502304, node=0x81cd5c0) at eval.c:8336
#17 0x8057d78 in rb_eval (self=135502304, n=0x81cd5c0) at eval.c:2929
#18 0x805991e in rb_eval (self=135502304, n=0x81cd81 at eval.c:3379
#19 0x805dfdf in rb_call0 (klass=135507224, recv=135502304, id=11609, oid=11609, argc=0, argv=0xbfbd0f08, body=0x81cd818,
nosuper=0) at eval.c:5603
#20 0x805e458 in rb_call (klass=135507224, recv=135502304, mid=11609, argc=2, argv=0xbfbd0f08, scope=1) at eval.c:5696
#21 0x80590a0 in rb_eval (self=135502304, n=0x81c93d0) at eval.c:3238
#22 0x8062911 in block_pass (self=135502304, node=0x81c93e4) at eval.c:8336
#23 0x8057d78 in rb_eval (self=135502304, n=0x81c93e4) at eval.c:2929
#24 0x8057792 in rb_eval (self=135502304, n=0x81c9254) at eval.c:2770
#25 0x805bce1 in rb_yield_0 (val=6, self=135502304, klass=0, flags=0, avalue=0) at eval.c:4687
#26 0x80582e3 in rb_eval (self=135502304, n=0x81c9dbc) at eval.c:3019
#27 0x8059996 in rb_eval (self=135502304, n=0x81c9d0 at eval.c:3393
#28 0x805bce1 in rb_yield_0 (val=6, self=135502304, klass=0, flags=0, avalue=0) at eval.c:4687
#29 0x80582e3 in rb_eval (self=136011656, n=0x81d2e94) at eval.c:3019
#30 0x805bce1 in rb_yield_0 (val=6, self=136011656, klass=0, flags=0, avalue=0) at eval.c:4687
#31 0x80582e3 in rb_eval (self=136011656, n=0x81d3b00) at eval.c:3019
#32 0x805855a in rb_eval (self=136011656, n=0x81d386c) at eval.c:3079
#33 0x805dfdf in rb_call0 (klass=136005336, recv=136011656, id=7001, oid=7001, argc=0, argv=0x0, body=0x81d386c, nosuper=0)
at eval.c:5603
#34 0x805e458 in rb_call (klass=136005336, recv=136011656, mid=7001, argc=0, argv=0x0, scope=1) at eval.c:5696
#35 0x80590a0 in rb_eval (self=136011656, n=0x81d2e6c) at eval.c:3238
#36 0x8057f41 in rb_eval (self=136011656, n=0x81d2e80) at eval.c:2943
#37 0x8058ca3 in rb_eval (self=136011656, n=0x81d2df4) at eval.c:3218
#38 0x805855a in rb_eval (self=136011656, n=0x81d2a5c) at eval.c:3079
#39 0x805bce1 in rb_yield_0 (val=6, self=136011656, klass=0, flags=0, avalue=0) at eval.c:4687
#40 0x80582e3 in rb_eval (self=136011656, n=0x81d3b00) at eval.c:3019
#41 0x805855a in rb_eval (self=136011656, n=0x81d386c) at eval.c:3079
#42 0x805dfdf in rb_call0 (klass=136005336, recv=136011656, id=7001, oid=7001, argc=0, argv=0x0, body=0x81d386c, nosuper=0)
at eval.c:5603
#43 0x805e458 in rb_call (klass=136005336, recv=136011656, mid=7001, argc=0, argv=0x0, scope=1) at eval.c:5696
#44 0x80590a0 in rb_eval (self=136011656, n=0x81d2a34) at eval.c:3238
#45 0x8057f41 in rb_eval (self=136011656, n=0x81d2a20) at eval.c:2943
#46 0x805dfdf in rb_call0 (klass=136005336, recv=136011656, id=11265, oid=11265, argc=0, argv=0x0, body=0x81d2a20,
nosuper=0) at eval.c:5603
#47 0x805e458 in rb_call (klass=136005336, recv=136011656, mid=11265, argc=0, argv=0x0, scope=0) at eval.c:5696
---Type <return> to continue, or q <return> to quit---
#48 0x8058e43 in rb_eval (self=135502304, n=0x81c9e0c) at eval.c:3223
#49 0x8057f41 in rb_eval (self=135502304, n=0x81ca000) at eval.c:2943
#50 0x805dfdf in rb_call0 (klass=135507224, recv=135502304, id=11753, oid=11753, argc=0, argv=0xbfbead38, body=0x81ca000,
nosuper=0) at eval.c:5603
#51 0x805e458 in rb_call (klass=135507224, recv=135502304, mid=11753, argc=1, argv=0xbfbead38, scope=1) at eval.c:5696
#52 0x80590a0 in rb_eval (self=135502304, n=0x81c95c4) at eval.c:3238
#53 0x8057f41 in rb_eval (self=135502304, n=0x81c98e4) at eval.c:2943
#54 0x805dfdf in rb_call0 (klass=135507224, recv=135502304, id=11769, oid=11769, argc=0, argv=0xbfbedd28, body=0x81c98e4,
nosuper=0) at eval.c:5603
#55 0x805e458 in rb_call (klass=135507224, recv=135502304, mid=11769, argc=1, argv=0xbfbedd28, scope=1) at eval.c:5696
#56 0x80590a0 in rb_eval (self=135502304, n=0x818ca34) at eval.c:3238
#57 0x8058602 in rb_eval (self=135502304, n=0x818ca20) at eval.c:3094
#58 0x8057792 in rb_eval (self=135502304, n=0x818d44 at eval.c:2770
#59 0x8054c5c in eval_node (self=135502304, node=0x818d44 at eval.c:1285
#60 0x805fa59 in rb_load (fname=135847256, wrap=0) at eval.c:6443
#61 0x805fcd3 in rb_f_load (argc=1, argv=0xbfbf259 at eval.c:6511
#62 0x805d9b2 in rb_call0 (klass=135507104, recv=135502304, id=9225, oid=9225, argc=1, argv=0xbfbf2598, body=0x812c024,
nosuper=0) at eval.c:5357
#63 0x805e458 in rb_call (klass=135507104, recv=135502304, mid=9225, argc=1, argv=0xbfbf2598, scope=1) at eval.c:5696
#64 0x80590a0 in rb_eval (self=135502304, n=0x8128230) at eval.c:3238
#65 0x805842c in rb_eval (self=135502304, n=0x8127f74) at eval.c:3054
#66 0x805855a in rb_eval (self=135502304, n=0x81270ec) at eval.c:3079
#67 0x805991e in rb_eval (self=135502304, n=0x8129284) at eval.c:3379
#68 0x805855a in rb_eval (self=135502304, n=0x812979 at eval.c:3079
#69 0x805dfdf in rb_call0 (klass=135507224, recv=135502304, id=10097, oid=10097, argc=0, argv=0xbfbf92e8, body=0x8129798,
nosuper=0) at eval.c:5603
#70 0x805e458 in rb_call (klass=135507224, recv=135502304, mid=10097, argc=1, argv=0xbfbf92e8, scope=1) at eval.c:5696
#71 0x80590a0 in rb_eval (self=135502304, n=0x8120b70) at eval.c:3238
#72 0x805991e in rb_eval (self=135502304, n=0x8120b4 at eval.c:3379
#73 0x805bce1 in rb_yield_0 (val=135870956, self=135502304, klass=0, flags=0, avalue=0) at eval.c:4687
#74 0x805bfcd in rb_yield (val=135870956) at eval.c:4769
#75 0x80bcb3a in rb_ary_each (ary=135870976) at array.c:1155
#76 0x805d979 in rb_call0 (klass=135479044, recv=135870976, id=3849, oid=3849, argc=0, argv=0x0, body=0x8133ae0, nosuper=0)
at eval.c:5348
#77 0x805e458 in rb_call (klass=135479044, recv=135870976, mid=3849, argc=0, argv=0x0, scope=0) at eval.c:5696
#78 0x8058e43 in rb_eval (self=135502304, n=0x8120bfc) at eval.c:3223
#79 0x8057f41 in rb_eval (self=135502304, n=0x812a78 at eval.c:2943
#80 0x8054c5c in eval_node (self=135502304, node=0x812a78 at eval.c:1285
#81 0x80551bd in ruby_exec () at eval.c:1454
#82 0x8055219 in ruby_run () at eval.c:1475
#83 0x805358e in main () at main.c:50
#84 0x8053354 in ___start ()
(gdb) quit
--
This sentence contradicts itself -- no actually it doesn't.
-- Hofstadter
Rasputin :: Jack of All Trades - Master of Nuns


 
Reply With Quote
 
Elias Athanasopoulos
Guest
Posts: n/a
 
      04-30-2004
On Sat, May 01, 2004 at 12:13:22AM +0900, Dick Davies wrote:
> This is probably a platform thing, I'm using cvs ruby
> on NetBSD 1.6Z ...
>
> I can use most ruby libs ok, but there's a coredump whenever
> I try to use a shared library
> (seen it so far in ruby-ldap and ruby-postgresql)


Actually, I had also some ruby coredumps while developing an
extension on Linux. Apparently, it was my fault; while I was
tweaking my code, it seems that a simple 'make' resulted to
a broken shared lib.

This happened quite a few times. The solution was to do a
'make clean' and then rebuild my extension.

Apart from the above, what I wanted to say here is: should ruby
coredump?

I think it should not for any reason.

I may be bogus on that, but I believe there must be some way
to abort on dlopen() when something seems to go wrong. ANW, I
can offer my help and my time to fix the problem if it is
something that can be achieved.

Last but not least, I tried to reproduce the coredump with no
avail.

Regards,
--
University of Athens I bet the human brain
Physics Department is a kludge --Marvin Minsky




 
Reply With Quote
 
Dick Davies
Guest
Posts: n/a
 
      04-30-2004
* Elias Athanasopoulos <(E-Mail Removed)> [0436 18:36]:
> On Sat, May 01, 2004 at 12:13:22AM +0900, Dick Davies wrote:
> > This is probably a platform thing, I'm using cvs ruby
> > on NetBSD 1.6Z ...
> >
> > I can use most ruby libs ok, but there's a coredump whenever
> > I try to use a shared library
> > (seen it so far in ruby-ldap and ruby-postgresql)

>
> Actually, I had also some ruby coredumps while developing an
> extension on Linux. Apparently, it was my fault; while I was
> tweaking my code, it seems that a simple 'make' resulted to
> a broken shared lib.
>
> This happened quite a few times. The solution was to do a
> 'make clean' and then rebuild my extension.
>
> Apart from the above, what I wanted to say here is: should ruby
> coredump?
>
> I think it should not for any reason.


Not ideally, but it's a CVS build - and it's a C library issue
at the end of the day.

> I may be bogus on that, but I believe there must be some way
> to abort on dlopen() when something seems to go wrong.


But if it didn't dump core. how would you find out why it failed?

> Last but not least, I tried to reproduce the coredump with no
> avail.


Like I said, it's almost certainly a platform issue. The fact that
using pthreads breaks the build is a bit of a giveaway..

--
Right now I'm having amnesia and deja vu at the same time.
-- Steven Wright
Rasputin :: Jack of All Trades - Master of Nuns


 
Reply With Quote
 
Elias Athanasopoulos
Guest
Posts: n/a
 
      04-30-2004
On Sat, May 01, 2004 at 05:32:39AM +0900, Dick Davies wrote:
> * Elias Athanasopoulos <(E-Mail Removed)> [0436 18:36]:
> >
> > Apart from the above, what I wanted to say here is: should ruby
> > coredump?
> >
> > I think it should not for any reason.

>
> Not ideally, but it's a CVS build - and it's a C library issue
> at the end of the day.


In my case it was ruby 1.8/1.8.1. Even if it's the case of an
extension Ruby, IMHO, should never core dump. The core is produced
in the Ruby load code; not inside the extension.

> > I may be bogus on that, but I believe there must be some way
> > to abort on dlopen() when something seems to go wrong.

>
> But if it didn't dump core. how would you find out why it failed?


The core was dumped because Ruby had received a SEGV and not the
code inside in the extension. I.e., you could force Ruby to
segfault by:

% ruby -rfoo -e ''

Regards,
--
University of Athens I bet the human brain
Physics Department is a kludge --Marvin Minsky




 
Reply With Quote
 
Dick Davies
Guest
Posts: n/a
 
      04-30-2004
* Dick Davies <(E-Mail Removed)> [0411 18:11]:
> * ts <(E-Mail Removed)> [0419 16:19]:
> > >>>>> "D" == Dick Davies <(E-Mail Removed)> writes:

> >
> > D> Reading symbols from /usr/lib/libpthread.so.0...done.
> > D> Loaded symbols for /usr/lib/libpthread.so.0
> >
> > PostgreSQL was compiled with -lpthread ?
> >
> > In this case, you need to compile ruby with --enable-pthread

>
> Ah, that falls over when miniruby dumps core trying to build digest-md5...
>
> rasputin@lb:ruby$ make
> compiling digest/md5
> [1] Illegal instruction (core dumped) ./miniruby ./ext...
> *** Error code 132


Ack. Scrub that, that box has a ropey pthread install.
Sorry for the noise, I'll try an --enable-pthread install of ruby again...

--
Life is like a buffet; it's not good but there's plenty of it.
Rasputin :: Jack of All Trades - Master of Nuns


 
Reply With Quote
 
ts
Guest
Posts: n/a
 
      05-01-2004
>>>>> "D" == Dick Davies <(E-Mail Removed)> writes:

D> Ah, that falls over when miniruby dumps core trying to build digest-md5...

Well, I really dont know : I don't have NetBSD

obsd% ruby -vrmd5 -e 'p MD5.new()'
ruby 1.9.0 (2004-04-30) [sparc-openbsd3.4]
d41d8cd98f00b204e9800998ecf8427e
obsd%

obsd% ldd ruby
ruby:
Start End Type Ref Name
00000000 00000000 exe 1 ruby
08f9a000 095b4000 rlib 1 /usr/lib/libpthread.so.2.1
095b4000 09be3000 rlib 1 /usr/lib/libm.so.1.0
088da000 08f9a000 rlib 1 /usr/lib/libc.so.30.1
082d0000 082d0000 rtld 1 /usr/libexec/ld.so
obsd%



Guy Decoux


 
Reply With Quote
 
Dick Davies
Guest
Posts: n/a
 
      05-03-2004
* Dick Davies <(E-Mail Removed)> [0515 00:15]:
> * Dick Davies <(E-Mail Removed)> [0411 18:11]:
> > * ts <(E-Mail Removed)> [0419 16:19]:
> > > >>>>> "D" == Dick Davies <(E-Mail Removed)> writes:
> > >
> > > D> Reading symbols from /usr/lib/libpthread.so.0...done.
> > > D> Loaded symbols for /usr/lib/libpthread.so.0
> > >
> > > PostgreSQL was compiled with -lpthread ?
> > >
> > > In this case, you need to compile ruby with --enable-pthread

> >
> > Ah, that falls over when miniruby dumps core trying to build digest-md5...
> >
> > rasputin@lb:ruby$ make
> > compiling digest/md5
> > [1] Illegal instruction (core dumped) ./miniruby ./ext...
> > *** Error code 132

>
> Ack. Scrub that, that box has a ropey pthread install.
> Sorry for the noise, I'll try an --enable-pthread install of ruby again...


Just for the record, this is all working great now - ruby was linking against
gnu pthread instead of the system one.

On NetBSD, you need to change all the '-lpthread' flags in configure to just
'-pthread' - i.e. it's a compiler flag rather than a library.

Thanks for all the pointers.

--
If a 6600 used paper tape instead of core memory, it would use up tape
at about 30 miles/second.
-- Grishman, Assembly Language Programming
Rasputin :: Jack of All Trades - Master of Nuns


 
Reply With Quote
 
ts
Guest
Posts: n/a
 
      05-03-2004
>>>>> "D" == Dick Davies <(E-Mail Removed)> writes:

D> On NetBSD, you need to change all the '-lpthread' flags in configure to just
D> '-pthread' - i.e. it's a compiler flag rather than a library.

Well, you can submit perhaps a patch for configure.in, no ?


Guy Decoux





 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
do I need "ruby-libs" as a prerequisite to install/run ruby? what is"ruby-libs" exactly? Greg Hauptmann Ruby 4 02-07-2009 11:12 AM
How to eliminate multiple declaration error for a symbol present inboth libs( without modifying libs) Raman C Programming 5 05-09-2008 06:12 AM
[ANN] Ruby CVS IRC bot, and Ruby CVS RSS feed David Ross Ruby 5 12-05-2004 03:48 AM
including libs by #pragma comment -> order of libs Christoph C Programming 2 09-17-2003 01:29 PM
Compile report: ruby 1 8 pv 4 @ netbsd - current (success) Martin Weber Ruby 0 07-25-2003 06:28 PM



Advertisments