linux-x64: upgrade OS and therefore minimum glibc, removing support for RHEL7
lovell opened this issue · comments
The minimum version of glibc required by the linux-x64 binaries is currently 2.17 (released December 2012), which is set by the use of Centos 7 in the build container.
sharp-libvips/linux-x64/Dockerfile
Line 1 in c5add8a
There have been many improvements to glibc in the ten years since then. Of use to libvips is the addition of __builtin_cpu_is
in glibc 2.23, which allows for intrinsic-specific (e.g. AVX) implementations of "hot" functions. Performance gains of ~10% are not uncommon.
A possible OS to use might be Amazon Linux 2 (EOL June 2025) that provides glibc 2.26 (released August 2017).
Also consider upgrading Alpine containers to 3.15, which would make musl 1.2.2 (released January 2021) the minimum supported version.
WIP for this at main...upgrade-linux-containers
Building the Linux x64 binaries with Amazon Linux 2 sounds good to me. Looks like we could do similar for the Linux ARM64 binaries, see e.g. commit kleisauke@965ef43.
When Amazon Linux 2 reaches EOL we could consider to build these binaries with Rocky Linux 8 (or any other RHEL 8 derivative) that provides glibc 2.28, which would correspond to Node's >= 18.x minimum glibc requirement (an advantage of this is that it also provides GCC 12 via gcc-toolset-12
).
Thanks, have added your commit via ca1eed9