Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/llvmlite_linux-64_wheel_builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
pull_request:
paths:
- .github/workflows/llvmlite_linux-64_wheel_builder.yml
- buildscripts/manylinux/build_llvmlite.sh
workflow_dispatch:
inputs:
llvmdev_run_id:
Expand All @@ -25,7 +26,7 @@ env:
CONDA_CHANNEL_NUMBA: numba/label/llvm20-wheel
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.


jobs:
linux-64-build:
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/llvmlite_linux-aarch64_wheel_builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
pull_request:
paths:
- .github/workflows/llvmlite_linux-aarch64_wheel_builder.yml
- buildscripts/manylinux/build_llvmlite.sh
workflow_dispatch:
inputs:
llvmdev_run_id:
Expand Down
10 changes: 10 additions & 0 deletions buildscripts/manylinux/build_llvmlite.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,16 @@ python setup.py clean
# Configure build via env vars
export LLVMLITE_PACKAGE_FORMAT="wheel"

# Set C++ ABI based on architecture
# x86_64 llvmdev used manylinux2014 image, which uses old ABI,
# aarch64 uses manylinux_2_28 image, which uses new ABI
# llvmlite now uses manylinux_2_28 image for both architectures, which uses new ABI
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.

fi

# Build wheel
distdir=$outputdir/dist_$(uname -m)_$pyver
rm -rf $distdir
Expand Down
Loading