diff --git a/.github/workflows/llvmlite_linux-64_wheel_builder.yml b/.github/workflows/llvmlite_linux-64_wheel_builder.yml index 39e77f31b..57e7d1374 100644 --- a/.github/workflows/llvmlite_linux-64_wheel_builder.yml +++ b/.github/workflows/llvmlite_linux-64_wheel_builder.yml @@ -31,7 +31,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" jobs: linux-64-build: diff --git a/buildscripts/manylinux/build_llvmlite.sh b/buildscripts/manylinux/build_llvmlite.sh index 96ff7e7a0..0d4eabe57 100755 --- a/buildscripts/manylinux/build_llvmlite.sh +++ b/buildscripts/manylinux/build_llvmlite.sh @@ -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}" +fi + # Build wheel distdir=$outputdir/dist_$(uname -m)_$pyver rm -rf $distdir