On Tuesday, March 23, 2021 at 10:19:46 PM UTC+11, Paul Edwards wrote:
> Objects/exceptions.c: ADD_ERRNO(ConnectionRefusedError, ECONNREFUSED);
>
> Those errno are non-standard (non-C90) and I assume
> other platforms can't cope with that either. But I can't
> see how other platforms are circumventing that problem.
> (ie I did a grep -R of the whole source code).
>
> I could define a stack of constants in pyconfig.h to allow
> the compile to go through, but I don't see anyone else
> doing the same thing.
I defined a stack of E* in pyconfig.h and here is my
latest problem:
../Objects/longobject.c:940:5: #error "PyLong_FromVoidPtr: sizeof(void*) >
sizeof(long), but no long long"
/* Create a new long int object from a C pointer */
PyObject *
PyLong_FromVoidPtr(void *p)
{
#ifndef HAVE_LONG_LONG
# error "PyLong_FromVoidPtr: sizeof(void*) > sizeof(long), but no long long"
#endif
That to me sounds like having "long long" is compulsory,
but the error it is showing is not correct. My "void *" is
he same as "long", ie 32 bits. Everything I do is 32 bits
unless I'm doing the occasional MSDOS build which is
16 bits.
What's the point of having a variable HAVE_LONG_LONG
if it's compulsory?
"long long" is not C90. I don't have support for that. The
"i370" target of GCC 3.2.3 doesn't have DI instructions
working. Just 32 bits. Everything is 32 bits.
Any suggestions?
Thanks. Paul.
--
https://mail.python.org/mailman/listinfo/python-list