Skip to content

gha/upgrade linux-64 manylinux image#1344

Open
swap357 wants to merge 3 commits intonumba:mainfrom
swap357:gha/upgrade_linux-64_manylinux_image
Open

gha/upgrade linux-64 manylinux image#1344
swap357 wants to merge 3 commits intonumba:mainfrom
swap357:gha/upgrade_linux-64_manylinux_image

Conversation

@swap357
Copy link
Contributor

@swap357 swap357 commented Oct 29, 2025

closes: #1342

The linux-64 wheel build fails with -

++ bash mini3.sh -b -f -p /root/miniconda3
Installer requires GLIBC >=2.28, but system has 2.17.

This is because miniconda now requires glibc version > glibc available on container image - manylinux2014_x86_64

Checking build practices for manylinux builds on -

The llvmdev build used by workflow is built using older manylinux2014_x86_64 container and hence there is ABI mismatch. To resolve that, conditionally update -
export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0 ${CXXFLAGS}"
for linux-64 builds.

Copy link
Member

@esc esc left a comment

Choose a reason for hiding this comment

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

One question one comment.

ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
# set old ABI for x86_64
export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0 ${CXXFLAGS}"
Copy link
Member

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, I actually got it from there. The python container image we use there has similar newer GLIBC and is ABI-incompatible to GLIBC on manylinux2014 image which was used to build llvmdev.

VALIDATION_PYTHON_VERSION: "3.12"
ARTIFACT_RETENTION_DAYS: 7
MANYLINUX_IMAGE: "manylinux2014_x86_64"
MANYLINUX_IMAGE: "manylinux_2_28_x86_64:2025.09.19-1"
Copy link
Member

Choose a reason for hiding this comment

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

question: do we need manylinux_2_28_x86_64:2025.09.19-1 explicitly or would it be ok to use just manylinux_2_28_x86_64?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I pinned it to version cibuildwheel uses. The pinning is mostly so that we won't have silent or hard to trace failures. If latest image updates to a newer toolchain with ABI changes, it could error llvmlite builds or silently break numba builds.

@esc
Copy link
Member

esc commented Oct 29, 2025

would it make sense to rebuild llvmdev?

@swap357
Copy link
Contributor Author

swap357 commented Oct 29, 2025

would it make sense to rebuild llvmdev?

Yes ideally. We should make the change to use new image for all 3 builds - llvmdev, llvmlite and numba. I can open PRs to update on all three. The condition to use older ABI is patch to make it work without re-building llvmdev.

@swap357
Copy link
Contributor Author

swap357 commented Oct 29, 2025

#1346 solves the main branch build issue with a cleaner way.
This PR would warrant more broader changes to llvmdev and numba builds as well and require testing llvmdev->llvmlite->numba. Hence, putting this change on hold for now until required.

@esc
Copy link
Member

esc commented Oct 30, 2025

#1346 solves the main branch build issue with a cleaner way. This PR would warrant more broader changes to llvmdev and numba builds as well and require testing llvmdev->llvmlite->numba. Hence, putting this change on hold for now until required.

OK, I merged #1346 and placed this one in the 0.47.0rc1 milestone.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

linux-64 wheel build workflow fails, requires newer GLIBC

2 participants