bug-gmp
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

IA-64 GMP broken


From: John R. Daily
Subject: IA-64 GMP broken
Date: Tue, 18 Sep 2001 15:09:01 -0500

I've been trying to track down a problem with sawfish under Linux
on an Itanium machine, and I'm reasonably certain GMP is the
culprit.

I've already reported one problem I identified and "fixed" to the
Debian maintainer. On line 212 of mpn/generic/get_str.c, there is
a 'while (s != str)' loop that never terminates in certain
situations because s is less than str to begin with. Presumably,
that in itself is an error, but it seems better to be safe by
specifying s >= str.

We've been experiencing segfaults and sigills being generated by
free(). Here's a typical backtrace:
---
Program received signal SIGILL, Illegal instruction.
chunk_free (ar_ptr=0x2000000000aa2648, p=0x6000000000146370) at malloc.c:3225
3225    malloc.c: No such file or directory.
        in malloc.c
#0  chunk_free (ar_ptr=0x2000000000aa2648, p=0x6000000000146370)
    at malloc.c:3225
#1  0x200000000093ca00 in __libc_free (mem=0x6000000000146370) at malloc.c:3148
#2  0x200000000028bb30 in __gmp_default_free (blk_ptr=0x6000000000146380, 
    blk_size=4) at memory.c:159
#3  0x20000000002c4cb0 in __gmpz_clear (m=0x600000000010fa78) at clear.c:34
---

It finally occurred to me to run 'make check' against GMP, and I
received 19 failures out of the 21 tests.
---
make  check-TESTS
make[3]: Entering directory 
`/net/morimoto/home/jdaily/ia64-tests/gmp/gmp-3.1.1/mpz/tests'
FAIL: t-mul
FAIL: t-tdiv
ERROR
dividend = 3FFFFFFFFFFFFFFC0
divisor  = AE5EE6B3
FAIL: t-tdiv_ui
ERROR
dividend = 3FFFFFFFFFFFFFFC0
divisor  = -1000007FFFFFFFFFC00000000000000
FAIL: t-fdiv
ERROR
dividend = 3FFFFFFFFFFFFFFC0
divisor  = AE5EE6B3
FAIL: t-fdiv_ui
FAIL: t-gcd
FAIL: dive
FAIL: t-sqrtrem
FAIL: convert
ERROR
op1  = 3FFFFFFFFFFFFFFC0
op2  = 1GCB1AD4C‘8EB418FFFFFFC0
base = 24
FAIL: io
logic.c:73: GNU MP assertion failed: ((r2)->_mp_size) == 0 || 
((r2)->_mp_d)[(((r2)->_mp_size) >= 0 ? ((r2)->_mp_size) : -((r2)->_mp_size)) - 
1] != 0
FAIL: logic
PASS: bit
FAIL: t-powm
FAIL: t-powm_ui
FAIL: t-pow_ui
FAIL: t-2exp
FAIL: reuse
FAIL: t-root
FAIL: t-jac
FAIL: t-bin
PASS: t-misc
=====================
19 of 21 tests failed
=====================
---

Also, the kernel issued some memory alignment warnings during the check:
---
lt-t-tdiv(18068): unaligned access to 0x600000000000294c, ip=0x20000000002345c0
lt-t-tdiv(18068): unaligned access to 0x600000000000293c, ip=0x2000000000234dd1
lt-dive(18188): unaligned access to 0x6000000000001ccc, ip=0x20000000002345c0
lt-t-powm(18313): unaligned access to 0x60000000000025cc, ip=0x2000000000234590
---

I have various log and configuration files available if
needed. Please let me know how I can assist.

--                                                                  --
John R. Daily                                    Progeny Linux Systems
Consultant                                          address@hidden
               Master of the ephemeral epiphany



reply via email to

[Prev in Thread] Current Thread [Next in Thread]