[Numpy-discussion] Segfault in mingw in test_arrayprint.TestComplexArray

Ondřej Čertík ondrej.certik@gmail....
Thu Jul 19 05:46:22 CDT 2012


On Thu, Jul 19, 2012 at 2:24 AM, Ondřej Čertík <ondrej.certik@gmail.com> wrote:
> Hi Ralf,
>
> On Wed, Jul 18, 2012 at 7:25 PM, Ralf Gommers
> <ralf.gommers@googlemail.com> wrote:
>>
>>
>> On Wed, Jul 18, 2012 at 1:24 PM, Ondřej Čertík <ondrej.certik@gmail.com>
>> wrote:
>>>
>>> Hi,
>>>
>>> I managed to compile NumPy in MinGW under Wine in Ubuntu 11.10 and
>>> here is a full log of the tests:
>>>
>>> https://gist.github.com/3135607
>>>
>>> It fails at the test test_str (test_arrayprint.TestComplexArray) with
>>> a segfault like this:
>>>
>>>
>>> test_str (test_arrayprint.TestComplexArray) ... wine: Unhandled page
>>> fault on read access to 0x00000000 at address (nil) (thread 0009),
>>> starting debugger...
>>> Unhandled exception: page fault on read access to 0x00000000 in 32-bit
>>> code (0x00000000).
>>> Register dump:
>>>  CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
>>>  EIP:00000000 ESP:0041c230 EBP:00000000 EFLAGS:00010202(  R- --  I   - - -
>>> )
>>>  EAX:00000000 EBX:1e00807f ECX:00000000 EDX:0041c208
>>>  ESI:00f46de0 EDI:00000000
>>>
>>> ...
>>>
>>> See the gist for the full log. Any ideas? I downloaded Python from
>>> python.org, is it supposed to work with numpy compiled using mingw?
>>
>>
>> It is. I have Python 2.5 ... 3.2 from Python.org, with MinGW from
>> http://prdownloads.sourceforge.net/mingw/MinGW-5.0.3.exe?download and ATLAS
>> binaries from https://github.com/numpy/vendor.
>>
>> Then I normally build numpy/scipy with "paver bdist_wininst_simple" or
>> "paver bdist_wininst_superpack". This also requires MakeNSIS and the CpuId
>> plugin for it, as documented at
>> https://github.com/numpy/numpy/blob/master/doc/HOWTO_RELEASE.rst.txt
>
> Thanks for the details. I'll try to reproduce it. I have no idea why
> my setup doesn't work.
> I've nailed it to:
>
>>>> import numpy as np
>>>> np.array([complex(0, 1)], np.complex64)
> wine: Unhandled page fault on read access to 0x00000000 at address
> (nil) (thread 0009), starting debugger...
> ...
>
> So it is something with the complex types.

I've also tried these compilers:

http://tdm-gcc.tdragon.net/

Those are gcc 4.6.1:

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw32/bin/../libexec/gcc/mingw32/4.6.1/lto-wrapper.exe
Target: mingw32
Configured with: ../../src/gcc-4.6.1/configure --build=mingw32
--enable-languages=c,c++,ada,fortran,objc,obj-c++
--enable-threads=win32 --enable-libgomp --enable-lto
--enable-fully-dynamic-string --enable-libstdcxx-debug
--enable-version-specific-runtime-libs --with-gnu-ld --disable-nls
--disable-win32-registry --disable-symvers --disable-werror
--prefix=/mingw32tdm --with-local-prefix=/mingw32tdm
--enable-cxx-flags='-fno-function-sections -fno-data-sections'
--with-pkgversion=tdm-1 --enable-sjlj-exceptions
--with-bugurl=http://tdm-gcc.tdragon.net/bugs
Thread model: win32
gcc version 4.6.1 (tdm-1)



and I use Python from python.org, I use the following installer:
python-2.7.3.msi, that is, a 32bit one. The tdm-gcc is also 32 bit.
And the same segfault.

Ralf, I am going to try your setup now.


Ondrej


More information about the NumPy-Discussion mailing list