Ah, thanks for making progress with it. I'll see if I can chase it
through given what you've found.

Bill.

On 4 September 2010 13:43, Jason <[email protected]> wrote:
> On Saturday 04 September 2010 12:54:33 Jason wrote:
>> I can reproduce this error on boxen , which has gcc-4.2.4
>>
>> ./configure --enable-assert --build=core2-unknown-linux-gnu
>>
>> and just run the test case to get an assertion failure , therefore this
>> looks like a real error , although I could not the failure when I copied
>> the core param into the K8 directory and changed cflags , so I think this
>> also depends on which HAVE_NATIVE functions are availible
>>
>
> No , if I put the core2 params in the k8 directory and build on a k8 , I get
> the error(must of done something daft before).
> The error happens when mpn_divexact (which can accept denom limbs dn <= numer
> limbs nn) calls mpn_inv_divapprox_q (which requires just <) . With the k8
> thresholds it reduces that case properly , but with core2 params it does not.
> It's possible that the k8 params could also produce this error as it just have
> to find the right input size.
> Unfortunately I'm not at all familiar with the code , I only roughly know the
> algorithm.
>
>
>> On Saturday 04 September 2010 11:36:35 Jason wrote:
>> > On Saturday 04 September 2010 11:09:23 Jason wrote:
>> > > The problem is that the gmp-mparam.h for core2 and nehalem have some
>> > > bad values in , when I replaced it with the k8 version  it was OK. I
>> > > have to narrow down which values seem to be bad
>> >
>> > Actually thats not true , the values could be good , its just that it
>> > follows a different code path. Building with --enabel-assert we get this
>> > assertion failure when we run the code
>> >
>> > inv_divappr_q.c:46: GNU MP assertion failed: nn > dn
>> > Aborted
>> >
>> > > Jason
>> > >
>> > > On Saturday 04 September 2010 10:18:05 Jason wrote:
>> > > > Hi
>> > > >
>> > > > I can reproduce this error , I'm using gcc 4.4.4 , but only if I do a
>> > > > build for core2 or nehalem , the k8 build is OK , so perhaps it's the
>> > > > CFLAGS=- march=core2 that causes it?
>> > > > I'll change the flags and see if that makes a difference
>> > > >
>> > > > Jason
>> > > >
>> > > > On Friday 03 September 2010 23:49:14 Bill Hart wrote:
>> > > > > On 3 September 2010 23:44, Bill Hart <[email protected]>
>> >
>> > wrote:
>> > > > > > Hi Jeroen,
>> > > > > >
>> > > > > > I've tried a variety of things to replicate this bug, including
>> > > > > > valgrinding with symbols on in MPIR and various compiler
>> > > > > > optimisation flags, but at least on my machine, I can't replicate
>> > > > > > it.
>> > > > > >
>> > > > > > If you have time, could you possibly help by taking the following
>> > > > > > steps:
>> > > > > >
>> > > > > > 1) Download a fresh copy of MPIR 2.1.1 from our website:
>> > > > > > http://www.mpir.org/ 2) Run ./configure; make; make check to
>> > > > > > verify that the library
>> > > > > > appears to compile OK on your machine (you could also try
>> > > > > > building your program against this clean library again if you
>> > > > > > haven't already done this)
>> > > > > > 3) Run ./configure again until about 30 lines are showing. You'll
>> > > > > > see something like
>> > > > > >
>> > > > > >       CFLAGS="-O2 -m64 -march=k8 -mtune=k8"
>> > > > > >
>> > > > > > which will be indented (the string on your machine will be
>> > > > > > different). Copy the string that shows and alter the -O2 (or
>> > > > > > whatever you have) to -g, and pass to ./configure, e.g..:
>> > > > > > ./configure CFLAGS="-g -m64 -march=k8 -mtune=k8"
>> > > > > > 4) do
>> > > > > > make clean
>> > > > > > make
>> > > > > > 5) build your program against MPIR (to prevent it picking up a
>> > > > > > stray copy elsewhere, use -static when linking -- the library
>> > > > > > being in the .libs directory, the .h file in the top level
>> > > > > > directory of the MPIR source tree -- you'll have to set the -I
>> > > > > > and -L flags to gcc accordingly), e.g. I put the program in the
>> > > > > > top level mpir source directory and used:
>> > > > > > gcc -O2 mpirtest.c -o mpirtest -I. -L../.libs -lmpir -static
>> > > > >
>> > > > > Sorry, that should read:
>> > > > >
>> > > > > gcc -O2 mpirtest.c -o mpirtest -I. -L.libs -lmpir -static
>> > > > >
>> > > > > > 6) If you have valgrind installed on your machine, type:
>> > > > > > valgrind ./mpirtest
>> > > > > > and report to us the output. If not, a gdb backtrace, as you
>> > > > > > gave, may be sufficient.
>> > > > > > 7) If you have access to any other version of gcc on the same
>> > > > > > machine, it would also be useful to know if the same bug occurs
>> > > > > > with that version of gcc.
>> > > > > >
>> > > > > > This *may* be a compiler bug, but at this stage we have to assume
>> > > > > > it is more likely a bug in our code within MPIR.
>> > > > > >
>> > > > > > Bill.
>> > > > > >
>> > > > > > On 3 September 2010 22:10, Jeroen Demeyer
>> > > > > > <[email protected]>
>> > >
>> > > wrote:
>> > > > > >> Hello mpir-devel,
>> > > > > >>
>> > > > > >> I think I found a bug in MPIR 2.1.1 in mpz_divexact() (or I'm
>> > > > > >> doing something something very stupid).  Running the following
>> > > > > >> program gives a Segmentation Fault:
>> > > > > >>
>> > > > > >> #include <mpir.h>
>> > > > > >> int main()
>> > > > > >> {
>> > > > > >>
>> > > > > >>    mpz_t Z, R;
>> > > > > >>    mpz_init(Z);
>> > > > > >>    mpz_init(R);
>> > > > > >>    mpz_ui_pow_ui(Z, 10, 100000);
>> > > > > >>    mpz_divexact(R, Z, Z);
>> > > > > >>    return 0;
>> > > > > >>
>> > > > > >> }
>> > > > > >>
>> > > > > >>
>> > > > > >> gdb backtrace:
>> > > > > >>
>> > > > > >> Program received signal SIGSEGV, Segmentation fault.
>> > > > > >> 0x00007fa2f2b5245d in mpn_submul_1 () from
>> > > > > >> /usr/local/src/pari/local/lib/libmpir.so.8
>> > > > > >> (gdb) bt
>> > > > > >> #0  0x00007fa2f2b5245d in mpn_submul_1 () from
>> > > > > >> /usr/local/src/pari/local/lib/libmpir.so.8
>> > > > > >> #1  0x00007fa2f2b73e72 in __gmpn_sb_divappr_q () from
>> > > > > >> /usr/local/src/pari/local/lib/libmpir.so.8
>> > > > > >> #2  0x00007fa2f2b812f2 in __gmpn_inv_divappr_q () from
>> > > > > >> /usr/local/src/pari/local/lib/libmpir.so.8
>> > > > > >> #3  0x00007fa2f2b88765 in __gmpn_divexact () from
>> > > > > >> /usr/local/src/pari/local/lib/libmpir.so.8
>> > > > > >> #4  0x00007fa2f2b3fb4b in __gmpz_divexact () from
>> > > > > >> /usr/local/src/pari/local/lib/libmpir.so.8
>> > > > > >> #5  0x0000000000400741 in main () at mpirtest.c:8
>> > > > > >>
>> > > > > >>
>> > > > > >> My system is:
>> > > > > >>
>> > > > > >> $ uname -a
>> > > > > >> Linux arcanis 2.6.32-gentoo-r7 #5 SMP Thu Jun 10 23:07:26 CEST
>> > > > > >> 2010 x86_64 Intel(R) Core(TM)2 Duo CPU T5870 @ 2.00GHz
>> > > > > >> GenuineIntel GNU/Linux
>> > > > > >>
>> > > > > >> $ ./config.guess
>> > > > > >> core2-unknown-linux-gnu
>> > > > > >>
>> > > > > >> $ gcc --version
>> > > > > >> gcc-4.4.3 (Gentoo 4.4.3-r2 p1.2) 4.4.3
>> > > > > >>
>> > > > > >> This is with MPIR 2.1.1 configured with ./configure
>> > > > > >> --enable-gmpcompat
>> > > > > >>
>> > > > > >>
>> > > > > >> This bug was found thanks to Sage (see
>> > > > > >> http://trac.sagemath.org/sage_trac/ticket/9837)
>> > > > > >>
>> > > > > >>
>> > > > > >> Jeroen Demeyer.
>> > > > > >>
>> > > > > >> --
>> > > > > >> You received this message because you are subscribed to the
>> > > > > >> Google Groups "mpir-devel" group. To post to this group, send
>> > > > > >> email to [email protected]. To unsubscribe from this
>> > > > > >> group, send email to [email protected].
>> > > > > >> For more options, visit this group at
>> > > > > >> http://groups.google.com/group/mpir-devel?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "mpir-devel" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/mpir-devel?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/mpir-devel?hl=en.

Reply via email to