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

Reply via email to