571: Describe fallback platform checking using glibc version (#597)
This commit is contained in:
parent
9ae6b6c739
commit
d43b984e02
25
pep-0571.rst
25
pep-0571.rst
|
@ -261,6 +261,31 @@ the ``_manylinux`` module described in PEP 513. A platform is
|
||||||
considered incompatible with ``manylinux2010`` if the attribute is
|
considered incompatible with ``manylinux2010`` if the attribute is
|
||||||
``False``.
|
``False``.
|
||||||
|
|
||||||
|
If the ``_manylinux`` module is not found, or it does not have the attribute
|
||||||
|
``manylinux2010_compatible``, tools may fall back to checking for glibc. If the
|
||||||
|
platform has glibc 2.12 or newer, it is assumed to be compatible unless the
|
||||||
|
``_manylinux`` module says otherwise.
|
||||||
|
|
||||||
|
Specifically, the algorithm we propose is::
|
||||||
|
|
||||||
|
def is_manylinux2010_compatible():
|
||||||
|
# Only Linux, and only x86-64 / i686
|
||||||
|
from distutils.util import get_platform
|
||||||
|
if get_platform() not in ["linux-x86_64", "linux-i686"]:
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Check for presence of _manylinux module
|
||||||
|
try:
|
||||||
|
import _manylinux
|
||||||
|
return bool(_manylinux.manylinux2010_compatible)
|
||||||
|
except (ImportError, AttributeError):
|
||||||
|
# Fall through to heuristic check below
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Check glibc version. CentOS 6 uses glibc 2.12.
|
||||||
|
# PEP 513 contains an implementation of this function.
|
||||||
|
return have_compatible_glibc(2, 12)
|
||||||
|
|
||||||
|
|
||||||
Backwards compatibility with ``manylinux1`` wheels
|
Backwards compatibility with ``manylinux1`` wheels
|
||||||
==================================================
|
==================================================
|
||||||
|
|
Loading…
Reference in New Issue