astral-sh / astral-sh/python-build-standalone

Additional arch binaries for ppc64le

Open
#1,215 3 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
4.4k
Forks
314
Avg merge
1d 9h
Merged PRs (30d)
27

Description

Creating this issue for discussion as we're working on some PRs.

The existing standalone python binary is built optimized for the Power 9 family of processors, since it uses the gcc defaults inherited in the cross-compile base image (gcc6). We're looking at how to provide options for Power10 , Power11 and future users. Just switching the `-mtune` parameter and rebuilding isn't ideal since 1) it wouldn't be backwards compatible, and 2) power10 & power11 values were added in GCC 10+ and GCC 13+ respectively.

I'm thinking the simplest thing to do create processor binaries as is done for x86, e.g.
- ppc64le-unknown-linux-gnu
- ppc64le_power9-unknown-linux-gnu
- ppc64le_power10-unknown-linux-gnu
- ppc64le_power11-unknown-linux-gnu

Next we would have to also submit a PR to https://github.com/astral-sh/uv so that it checks the host version at install time and chooses the right processor-specific version.

Does this sound reasonable? Some of the team are working on changes to that affect but thought we should float it here first.

Also this may affect how bazel and other toolchains pull in the power python binary. It's been a while since I personally worked in that space so may no longer be a concern.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing how processor-specific x86 binaries are currently produced, then examine the cross-compile base image and GCC version constraints described in the issue. Confirm the compatibility and naming plan for ppc64le, Power 9, Power 10, and Power 11 builds, and coordinate the corresponding host-version selection changes in uv; the issue names no files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.