Message324627
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. |
|
Date |
User |
Action |
Args |
2018-09-05 10:57:22 | rossburton | set | recipients:
+ rossburton |
2018-09-05 10:57:22 | rossburton | set | messageid: <1536145042.39.0.56676864532.issue34585@psf.upfronthosting.co.za> |
2018-09-05 10:57:22 | rossburton | link | issue34585 messages |
2018-09-05 10:57:22 | rossburton | create | |
|