[Cython] Bug: llabs not defined in vs2008

Christoph Gohlke cgohlke at uci.edu
Wed Sep 30 09:53:29 CEST 2015


Hi,

On 9/30/2015 12:13 AM, Stefan Behnel wrote:
> Hi!
>
> None of the core developers uses MSVC, so we generally rely on Windows
> users to do their own testing and provide fixes.
>
> Hogan, Christopher schrieb am 30.09.2015 um 00:03:
>> I was trying to compile numpy v1.9.2 with Visual Studio 2008 and Cython
>> 0.23.1.  This worked fine with Cython 0.22.x, but in 0.23.1 there are
>> some changes in Cython/Utility/TypeConversion.c that seem to cause this
>> error:
>>
>> mtrand.obj : error LNK2019: unresolved external symbol llabs referenced
>> in function __pyx_pf_6mtrand_11RandomState_24 choice
>>
>> llabs is not available in vs2008, but it ends up taking that "#elif"
>> branch in TypeConversion.c and defining __Pyx_sst_abs to be llabs.  I
>> was able to fix this by swapping the order of the "#elif defined
>> (_MSC_VER) ..."  block with the "#elif defined (__STDC_VERSION__) ... "
>> block.
>
> So, what you are saying is that VS-2008 is not C99 standards compliant
> (what a surprise) but claims to be? Are you passing any C compiler flags
> that requests C99 compliance?
>
> The last changes in this area were here:
>
> https://github.com/cython/cython/pull/403
>
> The contributor claimed to be using MSVC 2008, too, so I wonder why you run
> into this problem but he didn't.


I can't reproduce this either. Probably __STDC_VERSION__ is somehow 
defined on Christopher's system.

Christoph


>
>
>> That probably won't fix the problem in all cases though.
>
> To me, your proposed change seems a reasonable thing to do. What cases are
> you thinking of?
>
> Stefan
> _______________________________________________
> cython-devel mailing list
> cython-devel at python.org
> https://mail.python.org/mailman/listinfo/cython-devel
>
>


More information about the cython-devel mailing list