Conversation
| ARCH=$(uname -m) | ||
| if [ "$ARCH" = "x86_64" ]; then | ||
| # set old ABI for x86_64 | ||
| export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0 ${CXXFLAGS}" |
There was a problem hiding this comment.
numba-hatchery uses this too: https://github.com/numba/numba-hatchery/blob/main/compile.sh#L50
There was a problem hiding this comment.
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" |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
|
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. |
|
#1346 solves the main branch build issue with a cleaner way. |
OK, I merged #1346 and placed this one in the 0.47.0rc1 milestone. |
closes: #1342
The
linux-64wheel build fails with -This is because miniconda now requires glibc version > glibc available on container image -
manylinux2014_x86_64Checking build practices for manylinux builds on -
found that they use newer
manylinux_2_28_x86_64forx86_64builds.This PR replaces
manylinux2014_x86_64withmanylinux_2_28_x86_64:2025.09.19-1onlinux-64wheel build workflow.The
llvmdevbuild used by workflow is built using oldermanylinux2014_x86_64container and hence there is ABI mismatch. To resolve that, conditionally update -export CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0 ${CXXFLAGS}"for
linux-64builds.