[Numpy-discussion] Solaris Sparc build broken
David Cournapeau
cournape at gmail.com
Wed Nov 11 10:45:39 EST 2009
On Thu, Nov 12, 2009 at 12:33 AM, Michael Droettboom <mdroe at stsci.edu> wrote:
> Thanks. Behind that, however, it runs into this compiler shortcoming:
>
> cc: build/src.solaris-2.8-sun4u-2.5/numpy/core/src/npymath/npy_math.c
> "numpy/core/src/npymath/npy_math_private.h", line 229: invalid type for bit-field: manh
> "numpy/core/src/npymath/npy_math_private.h", line 230: invalid type for bit-field: manl
>
> It seems that Sun compilers (before Sun Studio 12, C compiler 5.9),
> don't support bit fields larger than 32-bits. Welcome to my world :)
Damn...
>
> The best solution I've been able to dream up is to use a macro to get at
> the manh bitfield on these older compilers. This fix does seem to pass
> the "test_umath.py" unit tests. It's not as clean as the bit-field
> method, but it should be more portable.
I think it is the only solution, actually. Actually, I wanted to use
bit mask at first, because I thought bitfield was a C99 feature, not
supported by MS compilers (although it actually is).
> Can you think of a better solution? If this is *the* solution, we may
> want to add getters/setters for all the members (sign, exp, manl) and
> fix nextafterl in terms of those, just for consistency.
I will implement this, but I would prefer using this method everywhere
for every compiler, it would be more robust.
David
More information about the NumPy-Discussion
mailing list