Test t-tdiv aborts (6.0.0a)
tg at gmplib.org
tg at gmplib.org
Thu Mar 26 10:49:19 UTC 2015
"Ludwig, Mark" <ludwig.mark at siemens.com> writes:
Greetings,
I am working to bootstrap GCC on Solaris, and having trouble with GMP 6.0.0a.
The failure is in check-TESTS in directory mpz:
bash: line 5: 17152 Segmentation Fault (core dumped) ${dir}$tst
FAIL: t-tdiv
Traceback from dbx:
> dbx t-tdiv core
program terminated by signal SEGV (no mapping at the fault address) (fault address is just beyond end of stack)
0x0001b620: __gmpn_mul+0x0228: ld [%l6], %i3
(dbx) t
=>[1] __gmpn_mul(0xffbfad98, 0xffbfb308, 0x8e7, 0x0, 0xfffffa11, 0xffffe844), at 0x1b620
[2] __gmpn_dcpi1_divappr_q(0x1, 0xffbfe284, 0xffbfbee8, 0xffbfb308, 0xffbfb308, 0xffbfcc78), at 0x38dd4
[3] __gmpn_div_q(0xffffffff, 0x10ddc4, 0x0, 0xffbfb308, 0x1ff, 0xffffffff), at 0x209d0
[4] __gmpz_tdiv_q(0xffbfef44, 0xffbfef74, 0x10000, 0x9b35c, 0x83a14, 0x2f7), at 0x1841c
[5] main(0xffbfef68, 0xffbfef74, 0xffbfef50, 0xace4, 0xffbfef5c, 0xffbfef80), at 0x13260
(dbx)
Configured with:
CC=cc CXX=CC ./configure --enable-cxx --build=sparc-sun-solaris2.10
> cc -V
cc: Sun C 5.12 SunOS_sparc 2011/11/16
> uname -a
SunOS myhost 5.10 Generic_Virtual sun4v sparc sun4v
> ./config.guess
ultrasparc-sun-solaris2.10
> ./configfsf.guess
sparc-sun-solaris2.10
Note that I am explicitly using the 32-bit form, because the GCC bootstrap
recommendation is to use 32-bit.
Did you pass ABI=32 somehow, but forgot to show it above? Using the
--build argument in the hope that it will restrict the ABI choices is
not supported.
I have no idea if that is related to the present problem.
I sort of assume this is exposing a subtle compiler bug, but need help working
around it or whatever. Since all I want to do is bootstrap GCC with this (not
use it for any general computations), I suppose it's possible I can ignore this
particular failure, but I have no idea which parts of GMP get exercised in GCC
under what conditions. Once I get GCC bootstrapped, I intend to rebuild GMP
using the bootstrapped GCC, because I have the impression that will generate a
64-bit version of GCC, which is what I want, ultimately.
This is what I'll do:
1. Try to find an older gcc, use that.
2. Try "configure ABI=32 && make && make check" and see if that works
3. Pass explicit CFLAGS. Start with the value GMP figures out (see
perhaps 30 lines down the "configure" output) and change them to see
if you can avoid the compiler bug. Changing -O2 to -O1 might be an
initial attempt.
4. Cross compile from a known-good compiler.
--
Torbjörn
Please encrypt, key id 0xC8601622
More information about the gmp-bugs
mailing list