ruby CVS can't use shared libs on NetBSD

Discussion in 'Ruby' started by Dick Davies, Apr 30, 2004.

  1. Dick Davies

    Dick Davies Guest

    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=0xbfbff4c8) 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
    Dick Davies, Apr 30, 2004
    #1
    1. Advertising

  2. Dick Davies

    ts Guest

    >>>>> "D" == Dick Davies <> 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
    ts, Apr 30, 2004
    #2
    1. Advertising

  3. Dick Davies

    Dick Davies Guest

    * ts <> [0419 16:19]:
    > >>>>> "D" == Dick Davies <> 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=0x81cd818) 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=0x81c9d08) 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=0x818d448) at eval.c:2770
    #59 0x8054c5c in eval_node (self=135502304, node=0x818d448) 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=0xbfbf2598) 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=0x8129798) 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=0x8120b48) 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=0x812a788) at eval.c:2943
    #80 0x8054c5c in eval_node (self=135502304, node=0x812a788) 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
    Dick Davies, Apr 30, 2004
    #3
  4. 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
    Elias Athanasopoulos, Apr 30, 2004
    #4
  5. Dick Davies

    Dick Davies Guest

    * Elias Athanasopoulos <> [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
    Dick Davies, Apr 30, 2004
    #5
  6. On Sat, May 01, 2004 at 05:32:39AM +0900, Dick Davies wrote:
    > * Elias Athanasopoulos <> [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
    Elias Athanasopoulos, Apr 30, 2004
    #6
  7. Dick Davies

    Dick Davies Guest

    * Dick Davies <> [0411 18:11]:
    > * ts <> [0419 16:19]:
    > > >>>>> "D" == Dick Davies <> 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
    Dick Davies, May 1, 2004
    #7
  8. Dick Davies

    ts Guest

    >>>>> "D" == Dick Davies <> 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
    ts, May 1, 2004
    #8
  9. Dick Davies

    Dick Davies Guest

    * Dick Davies <> [0515 00:15]:
    > * Dick Davies <> [0411 18:11]:
    > > * ts <> [0419 16:19]:
    > > > >>>>> "D" == Dick Davies <> 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
    Dick Davies, May 3, 2004
    #9
  10. Dick Davies

    ts Guest

    >>>>> "D" == Dick Davies <> 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
    ts, May 3, 2004
    #10
  11. Dick Davies

    Dick Davies Guest

    * ts <> [0549 09:49]:
    > >>>>> "D" == Dick Davies <> 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 ?


    I could if I had the first clue what all the line noise in a
    configure script did, but I don't, and I don't really want to.

    libtool/configure/m4 and to a lesser extent make are the sendmails
    of the development world, and being a mortal, I don't want to
    learn them. I turned 30 this week, so will probably be dead soon.

    --
    Tell me, O Octopus, I begs,
    Is those things arms, or is they legs?
    I marvel at thee, Octopus;
    If I were thou, I'd call me us.
    -- Ogden Nash
    Rasputin :: Jack of All Trades - Master of Nuns
    Dick Davies, May 4, 2004
    #11
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Christoph
    Replies:
    2
    Views:
    518
    Richard Bos
    Sep 17, 2003
  2. Phil Tomson
    Replies:
    0
    Views:
    115
    Phil Tomson
    May 10, 2004
  3. David Ross
    Replies:
    5
    Views:
    144
    Nicholas Van Weerdenburg
    Dec 5, 2004
  4. Greg Hauptmann
    Replies:
    4
    Views:
    187
    Stefano Crocco
    Feb 7, 2009
  5. Replies:
    0
    Views:
    208
Loading...

Share This Page