diff --git a/pep-0513.txt b/pep-0513.txt index 894f5b3f3..b20fe60b6 100644 --- a/pep-0513.txt +++ b/pep-0513.txt @@ -244,6 +244,7 @@ This is a rather complex and subtle issue that extends beyond the scope of ``manylinux1``; for more discussion see: [9]_, [10]_, [11]_. + UCS-2 vs UCS-4 builds --------------------- @@ -282,10 +283,30 @@ But you should never have a wheel with a name like:: PKG-VERSION-cp27-none-manylinux1_x86_64.whl ^^^^ BAD! Don't do this! +This wheel claims to be simultaneously compatible with *both* ucs2 and +ucs4 builds, which is bad. + We note for information that the ``ucs4`` ABI appears to be much more widespread among Linux CPython distributors. +fpectl builds vs. no fpectl builds +---------------------------------- + +All extant versions of CPython can be built either with or without the +``--with-fpectl`` flag to ``configure``. It turns out that this +changes the CPython ABI: extensions that are built against a +no-``fpectl`` CPython are always compatible with yes-``fpectl`` +CPython, but the reverse is not necessarily true. (Symptom: errors at +import time complaining about ``undefined symbol: PyFPE_jbuf``.) See: +[16]_. + +For maximum compatibility, therefore, the CPython used to build +manylinux1 wheels must be compiled *without* the ``--with-fpectl`` +flag, and manylinux1 extensions must not reference the symbol +``PyFPE_jbuf``. + + Compilation of Compliant Wheels =============================== @@ -600,6 +621,8 @@ References (https://fedoraproject.org/wiki/Bundled_Software_policy) .. [15] Debian Policy Manual -- 4.13: Convenience copies of code (https://www.debian.org/doc/debian-policy/ch-source.html#s-embeddedfiles) +.. [16] numpy bug report: + https://github.com/numpy/numpy/issues/8415#issuecomment-269095235 Copyright