New submission from Ross Burton <r...@burtonini.com>:
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. ---------- components: Build files: 0001-Don-t-do-runtime-test-to-get-float-byte-order.patch keywords: patch messages: 324627 nosy: rossburton priority: normal severity: normal status: open title: Don't use AC_RUN_IFELSE to determine float endian versions: Python 3.8 Added file: https://bugs.python.org/file47788/0001-Don-t-do-runtime-test-to-get-float-byte-order.patch _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue34585> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com