[Numpy-discussion] complex roots() segfault on Solaris 10/x86 with numpy 1.2.rc1 using python 2.5.2

Michael Abshoff michael.abshoff@googlemail....
Tue Sep 23 03:37:57 CDT 2008


David Cournapeau wrote:
> Michael Abshoff wrote:

Hi David,

>> Sorry for not being precise: Both python and numpy have been build with
>>
>> OPT=-DNDEBUG -g -O0 -fwrapv -Wall -Wstrict-prototypes
> 
> Hm, strange. I don't know why you can't get any debug info, then.

well, it looks like some sort of stack corruption.

>> i.e. "-O0" instead of "-O3". I am using ATLAS and netlib.org Lapack, so 
>> I will rebuild everything and run the BLAS as well as Lapack testers to 
>> make 100% sure everything is on working correctly. Since the above 
>> python is part of a Sage build and passes 99% of Sage's doctests I am 
>> pretty sure that ATLAS and Lapack do work, but one never knows. Since I 
>> am sleepy I will do all that tomorrow.
> 
> It is indeed very likely the problem is there: typically, problem when
> passing complex number at the C/Fortran, this kind of thing.
> 
>> Ok. Which compiler did you use?
> 
> gcc 3.4 (the one give by open solaris by default), no blas/lapack. I
> actually would try this configuration first (no blas/lapack at all), to
> be sure it is blas/lapack or us.

I had a second wind and I just build python+numpy without blas and 
lapack and low and behold it works:

Python 2.5.2 (r252:60911, Sep 23 2008, 04:25:09)
[GCC 4.2.4] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
 >>> from numpy import *
 >>> a = array([1,0,0,0,0,-1],dtype=complex)
 >>> a
array([ 1.+0.j,  0.+0.j,  0.+0.j,  0.+0.j,  0.+0.j, -1.+0.j])
 >>> roots(a)
array([-0.80901699+0.58778525j, -0.80901699-0.58778525j,
         0.30901699+0.95105652j,  0.30901699-0.95105652j, 
1.00000000+0.j        ])
 >>> ^D

So it looks like gfortran 4.2.4 on Solaris + "-O3" miscompiles lapack, 
which is honestly unbelievable considering netlib.org lapack+BLAS are 
the yard stick for any Fortran compiler.

Sorry for the noise and thanks for your help.

> cheers,
> 
> David


Cheers,

Michael

> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion@scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
> 



More information about the Numpy-discussion mailing list