Skip to content

Add ppc64le power9, power10, and power11 optimized build targets - #1220

Open
veenious wants to merge 6 commits into
astral-sh:mainfrom
veenious:ppc64le-power9-power10-power11
Open

Add ppc64le power9, power10, and power11 optimized build targets#1220
veenious wants to merge 6 commits into
astral-sh:mainfrom
veenious:ppc64le-power9-power10-power11

Conversation

@veenious

Copy link
Copy Markdown

Adds three new ppc64le architecture variant targets, mirroring the existing
x86_64_v2/v3/v4 pattern:

  • ppc64le_power9-unknown-linux-gnu — compiled with -mcpu=power9 -mtune=power9
  • ppc64le_power10-unknown-linux-gnu — compiled with -mcpu=power10 -mtune=power10
  • ppc64le_power11-unknown-linux-gnu — compiled with -mcpu=power11 -mtune=power11

The existing generic ppc64le-unknown-linux-gnu artifact is untouched.

Power9 support is based on Christy Norman's work (clnperez#1).
Power10 and Power11 build on top of that using Debian Bookworm (GCC 12), which
supports both -mcpu=power10 and -mcpu=power11.

Closes #1215

christy and others added 6 commits July 29, 2026 10:33
Signed-off-by: christy <christy@christy-dell-14-pp.ibm.com>
Signed-off-by: Christy Norman <christy@linux.vnet.ibm.com>
Build on top of Christy's ppc64le-currency branch (power9 support).
- ci-targets.yaml: add ppc64le_power10 and ppc64le_power11 CI entries
- cpython-unix/targets.yml: add build configs with -mcpu=power10/11 -mtune=power10/11
- cpython-unix/build.py: normalize power10/11 triples for autoconf
- cpython-unix/build.cross-ppc64le_power11.Dockerfile: new Bookworm Dockerfile
  (GCC 12 supports both -mcpu=power10 and -mcpu=power11)

Closes: astral-sh#1215
@jjhelmus

Copy link
Copy Markdown
Contributor

As mentioned in #1215 before considering adding these targets I would like to see benchmarks which should that there is a benefit to building this microarchitecture specific distributions.

Additional the change to bookworm likely raises the minimum glibc version required to consume these distributions from 2.24 (Debian 9 Stretch) to 2.36 (Debian 12 Bookworm).

A better approach that is more maintainable in the long term to to use the LLVM toolchain to cross-compile these targets using a sysroot. This was mentioned in #1215.

Comment thread src/validation.rs
Comment on lines +205 to +208
versions.insert(
"ppc64le_power9-unknown-linux-gnu",
version_compare::Version::from("2.17").unwrap(),
);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are no validators for power10 and 11. A minimum glibc version should be defined and the allowed set of libraries.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Additional arch binaries for ppc64le

3 participants