Skip to content

Commit 77ab201

Browse files
committed
Clarify macOS version number and arch specifications.
1 parent 608a6bb commit 77ab201

File tree

1 file changed

+28
-10
lines changed

1 file changed

+28
-10
lines changed

source/specifications/platform-compatibility-tags.rst

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -196,20 +196,38 @@ macOS
196196

197197
macOS uses the ``macosx`` family of tags (the ``x`` suffix is a historical
198198
artefact of Apple's official macOS naming scheme). The schema for compatibility
199-
tags is :file:`macosx_{x}_{y}_{arch}``, indicating that the wheel is compatible with
200-
macOS ``x.y`` or later on the architecture ``arch``. The version number always
201-
includes a major and minor version, even if Apple's official version numbering
202-
only refers to the major value. For example, a ``macosx_11_0_arm64`` indicates
203-
compatibility with macOS 11 or later, on arm64 (i.e., Apple Silicon) hardware.
204-
205-
macOS also supports the use of a combined, or "fat" architecture specification.
206-
For example, specifying an architecture of ``universal2`` indicates that
207-
binaries support *both* x86_64 *and* arm64.
199+
tags is :file:`macosx_{x}_{y}_{arch}``, indicating that the wheel is compatible
200+
with macOS ``x.y`` or later on the architecture ``arch``.
201+
202+
The value of ``x`` and ``y`` correspond to the major and minor version number of
203+
the macOS release, respectively. They must both be positive integers, with the
204+
``x`` value being ``>= 10``. The version number always includes a major *and*
205+
minor version, even if Apple's official version numbering only refers to
206+
the major value. For example, a ``macosx_11_0_arm64`` indicates compatibility
207+
with macOS 11 or later.
208+
209+
macOS binaries can be compiled for a single architecture, or can include support
210+
for multiple architectures in the same binary (sometimes called "fat" binaries).
211+
To indicate support for a single architecture, the value of ``arch`` must match
212+
the value of :py:func:`sysconfig.get_platform()` on the system. To indicate
213+
support multiple architectures, the ``arch`` tag should be an identifier from
214+
the following list that describes the set of supported architectures:
215+
216+
============== ========================================
217+
``arch`` Architectures supported
218+
============== ========================================
219+
``universal2`` ``arm64``, ``x86-64``
220+
``universal`` ``ppc64``, ``i386``, ``x86-64``
221+
``intel`` ``i386``, ``x86-64``
222+
``fat`` ``ppc``, ``ppc64``, ``i386``, ``x86-64``
223+
``fat32`` ``ppc``, ``i386``
224+
``fat64`` ``ppc64``, ``x86-64``
225+
============== ========================================
208226

209227
The minimum supported macOS version may also be constrained by architecture. For
210228
example, macOS 11 (Big Sur) was the first release to support arm64. These
211229
additional constraints are enforced transparently by the macOS compilation
212-
toolchain when building a ``universal2`` binary.
230+
toolchain when building binaries that support multiple architectures.
213231

214232
.. _android:
215233

0 commit comments

Comments
 (0)