This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Jeffrey.Armstrong
Recipients Jeffrey.Armstrong
Date 2013-01-06.15:32:46
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1357486367.34.0.653712599224.issue16881@psf.upfronthosting.co.za>
In-reply-to
Content
The Py_ARRAY_LENGTH macro (Include/pymacro.h:36) checks to see if using GCC by simply looking for __GCC__ being defined.  If so, it uses the GCC extension function "__builtin_types_compatible_p."  However, this function was not introduced until GCC 3.1.  This simple check for a GCC compiler causes the Python build to fail on GCC < 3.1 (2.95 for example).

The check should actually be:

#if (defined(__GNUC__) && !defined(__STRICT_ANSI__) && \
    ((__GNUC__ == 3) && (__GNU_MINOR__) >= 1) || (__GNUC__ >= 4)))

Similar checks are made in other locations in the core library, just not here.  

This bug was discovered while attempting a build on m68k-atari-mint, which relies on GCC 2.95.3.  Other systems may also be using this compiler still.
History
Date User Action Args
2013-01-06 15:32:47Jeffrey.Armstrongsetrecipients: + Jeffrey.Armstrong
2013-01-06 15:32:47Jeffrey.Armstrongsetmessageid: <1357486367.34.0.653712599224.issue16881@psf.upfronthosting.co.za>
2013-01-06 15:32:47Jeffrey.Armstronglinkissue16881 messages
2013-01-06 15:32:46Jeffrey.Armstrongcreate