gmp-4.2.4 failures with Solaris 10 AMD64 and Studio Express 03/09

Dennis Clarke dclarke at blastwave.org
Mon Apr 6 08:05:21 CEST 2009


>> Everything was going well until I ran make check.
>
> it seems to be a big-endian vs little-endian issue. Maybe the configure
> script
> was fooled by the combination Solaris - AMD64.

Why would that be a problem? Solaris has been 64-bit on AMD64 for years.

I just did a full re-compile again. No optimization and nothing fancy.
Same code segfaults and dumps core over and over.

$ ./tests/mpz/t-io_raw
check_in: result wrong
  i=1 zeros=0 neg=0
  got_ret  5
  want_ret 5
  got      =0x8100000000000000
  want     =0x81
Abort(coredump)
$ find . -type f | grep core
./tests/mpz/core.t-io_raw.isis_global_i86pc.16411:101.1238997336.20116
./tests/mpz/core.t-import.isis_global_i86pc.16411:101.1238997336.20136
./tests/mpz/core.t-export.isis_global_i86pc.16411:101.1238997337.20156
./core.t-io_raw.isis_global_i86pc.16411:101.1238997763.20239
$

I can generate core files on demand and I am thinking I should go back and
recompile such that I can single step into this until the fault occurs.
There must be a way to find the root cause here.

$ file ./tests/mpz/.libs/t-io_raw
./tests/mpz/.libs/t-io_raw: ELF 64-bit LSB executable AMD64 Version 1
[SSE2 SSE FXSR FPU], dynamically linked, not stripped
$ ldd ./tests/mpz/.libs/t-io_raw
        libgmp.so.3 =>  
/export/medusa/dclarke/build/libgmp/i386/CXX/gmp-4.2.4-build-amd64/.libs/libgmp.so.3
        libthread.so.1 =>        /lib/64/libthread.so.1
        libc.so.1 =>     /lib/64/libc.so.1
        libm.so.2 =>     /lib/64/libm.so.2

I have LD_LIBRARY_PATH set to find the correct libs.

$ dbx ./tests/mpz/.libs/t-io_raw
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.7' in your
.dbxrc
Reading t-io_raw
Reading ld.so.1
Reading libgmp.so.3.4.4
Reading libthread.so.1
Reading libc.so.1
(dbx) run
Running: t-io_raw
(process id 20265)
check_in: result wrong
  i=1 zeros=0 neg=0
  got_ret  5
  want_ret 5
  got      =0x8100000000000000
  want     =0x81
t at 1 (l at 1) signal ABRT (Abort) in __lwp_kill at 0xfffffd7fff27c94a
0xfffffd7fff27c94a: __lwp_kill+0x000a:  jae      __lwp_kill+0x18        [
0xfffffd7fff27c958, .+0xe ]
(dbx) where
current thread: t at 1
=>[1] __lwp_kill(0x1, 0x6, 0xffffffff89dde400, 0x3, 0x0, 0x0), at
0xfffffd7fff27c94a
  [2] _thr_kill(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff275223
  [3] raise(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff221c39
  [4] abort(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff2011c0
  [5] check_in(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x403b73
  [6] main(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x40462b
(dbx) quit
$

I'll try to focus on one test at a time and see if I cna single step into
this.

Dennis




More information about the gmp-bugs mailing list