python: don't use runtime checks to identify float endianism

Python uses AC_RUN_IFELSE to determine the byte order for floats and doubles,
and falls back onto "I don't know" if it can't run code.  This results in
crippled floating point numbers in Python, and the regression tests fail.

Instead of running code, take a macro from autoconf-archive which compiles C
with a special double in which has an ASCII representation, and then greps the
binary to identify the format.

This is essentially a backport of the Python 3 patch in oe-core 1781b87.

(From OE-Core rev: 94cea72a23a374eb616d5642977b45172537beac)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2018-10-12 14:44:03 +01:00
committed by Richard Purdie
parent 64ff0a5e6c
commit cd9b883f96
2 changed files with 217 additions and 0 deletions

View File

@@ -30,6 +30,7 @@ SRC_URI += "\
file://add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \
file://pass-missing-libraries-to-Extension-for-mul.patch \
file://support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch \
file://float-endian.patch \
"
S = "${WORKDIR}/Python-${PV}"