Hello all On Sat, 28 Jul 2007, Stefan van der Walt wrote:
> On Sat, Jul 28, 2007 at 12:54:52AM +0200, Pearu Peterson wrote: > > Ok, I have now enabled DISTUTILS_USE_SDK for > > AMD64 Windows platform and it seems working.. > > Fantastic, thanks! > > > However, the build still fails but now the > > reason seems to be related to numpy ticket 164: > > > > http://projects.scipy.org/scipy/numpy/ticket/164 > > I'll ask Albert whether he would have a look at it again. Let's see. Using this build log: http://buildbot.scipy.org/Windows%20XP%20x86_64%20MSVC/builds/31/step-shell/0 numpy\core\src\umathmodule.c.src(73) : warning C4273: 'logf' : inconsistent dll linkage numpy\core\src\umathmodule.c.src(74) : warning C4273: 'sqrtf' : inconsistent dll linkage Judging from the math.h on my 32-bit system, these declarations should look like this: float __cdecl logf(float); float __cdecl sqrtf(float); but they're missing the __cdecl in the NumPy code. Somewhere a macro needs to be defined to __cdecl on Windows (and left empty on other platforms) and including in the NumPy declarations. numpy\core\src\umathmodule.c.src(604) : warning C4013: 'fabsf' undefined; assuming extern returning int numpy\core\src\umathmodule.c.src(604) : warning C4013: 'hypotf' undefined; assuming extern returning int Judging from the patch attached to ticket #164, these functions aren't available for some reason. Maybe check the header to see if there's a way to turn them on using some preprocessor magic. If not, do what the patch does. numpy\core\src\umathmodule.c.src(604) : warning C4244: 'function' : conversion from 'int' to 'float', possible loss of data A cast should suppress this warning. numpy\core\src\umathmodule.c.src(625) : warning C4013: 'rintf' undefined; assuming extern returning int Add this function like the patch does. numpy\core\src\umathmodule.c.src(625) : warning C4244: '=' : conversion from 'int' to 'float', possible loss of data numpy\core\src\umathmodule.c.src(626) : warning C4244: '=' : conversion from 'int' to 'float', possible loss of data numpy\core\src\umathmodule.c.src(632) : warning C4244: 'initializing' : conversion from 'int' to 'float', possible loss of data numpy\core\src\umathmodule.c.src(641) : warning C4244: 'initializing' : conversion from 'int' to 'float', possible loss of data numpy\core\src\umathmodule.c.src(1107) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data numpy\core\src\umathmodule.c.src(1107) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data numpy\core\src\umathmodule.c.src(1107) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data numpy\core\src\umathmodule.c.src(1107) : warning C4244: '=' : conversion from 'double' to 'float', possible loss of data numpy\core\src\umathmodule.c.src(1349) : warning C4244: '=' : conversion from 'npy_longlong' to 'double', possible loss of data numpy\core\src\umathmodule.c.src(1350) : warning C4244: '=' : conversion from 'npy_longlong' to 'double', possible loss of data numpy\core\src\umathmodule.c.src(1349) : warning C4244: '=' : conversion from 'npy_ulonglong' to 'double', possible loss of data numpy\core\src\umathmodule.c.src(1350) : warning C4244: '=' : conversion from 'npy_ulonglong' to 'double', possible loss of data More casts probably. numpy\core\src\umathmodule.c.src(1583) : warning C4146: unary minus operator applied to unsigned type, result still unsigned numpy\core\src\umathmodule.c.src(1583) : warning C4146: unary minus operator applied to unsigned type, result still unsigned numpy\core\src\umathmodule.c.src(1583) : warning C4146: unary minus operator applied to unsigned type, result still unsigned Potential bugs. Look closely at these. numpy\core\src\umathmodule.c.src(1625) : warning C4244: '=' : conversion from 'int' to 'float', possible loss of data Cast. numpy\core\src\umathmodule.c.src(2013) : warning C4013: 'frexpf' undefined; assuming extern returning int Add this function. numpy\core\src\umathmodule.c.src(2013) : warning C4244: '=' : conversion from 'int' to 'float', possible loss of data Cast probably. numpy\core\src\umathmodule.c.src(2030) : warning C4013: 'ldexpf' undefined; assuming extern returning int Add this function. numpy\core\src\umathmodule.c.src(2030) : warning C4244: '=' : conversion from 'int' to 'float', possible loss of data Cast probably. build\src.win32-2.5\numpy\core\__umath_generated.c(15) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(21) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(27) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(30) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(45) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(45) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(51) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(54) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(63) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(72) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(72) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(78) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(114) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(153) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(174) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(177) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(189) : error C2099: initializer is not a constant build\src.win32-2.5\numpy\core\__umath_generated.c(192) : error C2099: initializer is not a constant For whatever reason, these function pointers aren't constant, so I think the initialization should be moved into the InitOperators function if that makes sense to do. numpy\core\src\ufuncobject.c(717) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data numpy\core\src\ufuncobject.c(1130) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data numpy\core\src\ufuncobject.c(1451) : warning C4244: '=' : conversion from 'npy_intp' to 'int', possible loss of data numpy\core\src\ufuncobject.c(1452) : warning C4244: '=' : conversion from 'npy_intp' to 'int', possible loss of data numpy\core\src\ufuncobject.c(2113) : warning C4244: '=' : conversion from 'npy_intp' to 'int', possible loss of data numpy\core\src\ufuncobject.c(2962) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data Potential bugs. Look closely at these. Otherwise cast to suppress the warnings. Hope this helped. Cheers, Albert _______________________________________________ Numpy-discussion mailing list [email protected] http://projects.scipy.org/mailman/listinfo/numpy-discussion
