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 rossburton
Recipients rossburton
Date 2018-09-05.10:57:21
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1536145042.39.0.56676864532.issue34585@psf.upfronthosting.co.za>
In-reply-to
Content
Currently configure.ac uses AC_RUN_IFELSE to determine the byte order of floats and doubles.  This hurts when cross-compiling because a default is set, resulting in Python silently falling back to sub-optimal codepaths.

A partial improvement would be to not set a fallback, to force the user to set the right byte order explicitly.

However this test can be done without running anything.  autoconf-archive has a macro that uses a carefully constructed double that encodes to an ASCII string in the binary, which is then examined using grep.  Evil genius.

Attached is a POC using this.  Currently the autoconf-archive macro only handles big and little endian not the ARM OABI mixed-endian format, so configure.ac assumes if the byte order is unknown then it's the crazy mixed-endian.

To be honest OABI is so old now, I don't believe anyone actually uses it anymore: everyone still on ARMv4 should have moved to EABI many years ago, and the mixed-endian support could be removed from Py3 in the future.
History
Date User Action Args
2018-09-05 10:57:22rossburtonsetrecipients: + rossburton
2018-09-05 10:57:22rossburtonsetmessageid: <1536145042.39.0.56676864532.issue34585@psf.upfronthosting.co.za>
2018-09-05 10:57:22rossburtonlinkissue34585 messages
2018-09-05 10:57:22rossburtoncreate