Issue
For now it is a pain to install HySoP on a cluster or even on its own machine with root privileges.
This is due to the large number of dependencies that have to be installed in the right order using the good versions and often obscure and/or broken build systems. Moreover, some dependencies are really long to compile and/or require huge amount of RAM (gcc, LLVM, boost, graphtool, ...). As an example, an headless build with all dependencies takes around 5.1h on an eight core i7-9700K CPU, and 3.6h for graphtool alone (graphtool requires around 16GB of RAM per build thread). This situation is not acceptable for newcomers even if they happen to be experts at building linux packages.
Docker support was the first step in order to provide the library more easily.
Nvidia GPU OpenCL support is also provided since docker 19.03.
However docker is not an option on many compute clusters as they do not provide any docker daemon.
In addition, docker is not MPI friendly in a multinode context (without proper server support) and is thus not adapted to current development efforts (see %MPI simulations with HySoP ).
This issue aims at providing portable hysop binaries for most platforms that support the x86_64 architecture. The main idea is to ship an embedded python implementation with all modules (like blender) and all necessary shared libraries. Most dependencies can be compiled statically. This is not always possible because python modules can only load shared libraries when relying on C, C++ or Fortran backends. Moreover the standard C library (libc, libm, libpthread, librt, ...) is always required and cannot be linked statically for many libraries that rely on dlopen. This is also the case for compiler specific libraries that are automatically linked during build (libstdc++, libgfortran, libgomp, libcc, ...) injected by gcc or clang when compiling. Moreover we need to allow the user to override some libraries (MPI, OpenCL, BLAS, ...).
Difficulties arising from standard system libraries
The standard C library is known to be a major source of incompatibilities between different platforms (see this link). The good news is that the C standard lib is mostly backward compatible. The easiest way to provide portable binaries and shared libraries is to build them with an old enough libc (older than target platforms libc, but not too old so that all dependencies compile). While the hysop package will look for the system provided C standard library, compiler specific libraries will be shipped within the package in their most recent version to avoid any problem with system libraries.
Existing solutions to build portable linux binaries:
-
build-anywhere uses GLIBC 2.13.
-
Holy Build Box uses CentOS 6.0 with GLIBC 2.12.
-
glibc_version_header can compile down to GLIBC 2.5.
Please note that other C standard libraries exist but at this time we only aim to support glibc.
See Alpine Linux as an example of musl libc based distribution that is not supported yet.
Development of portable hysop binaries
We follow PEP571 so that minimal target version of GLIBC is 2.12 starting from a clean CentOS 6 (manylinux2010) docker image. You can check the LIBC installed on your system using the following command: ldd --version
. We differ from PEP571 because we include gcc and associated shared libraries into the portable binaries (many of our dependencies cannot be compiled with old gcc compilers, moreover numba requires a recent gcc compiler to be present).
Closed-source OpenCL clients cannot be compiled, and thus, impose a minimal GLIBC version on their own.
You can find the minimum requirements of popular OpenCL implementations in the following table:
Vendor |
Client |
Package |
GLIBC |
Notes |
Intel |
Oclcpuexp - october 2020 |
oclcpuexp-2020.10.6.0.4_rel.tar.gz |
2.15 |
|
Nvidia |
Cuda 9.2 ubuntu runfile |
cuda_9.2.148_396.37_linux.run |
2.4 |
excluding driver |
Nvidia |
Cuda 10.2 ubuntu runfile |
cuda_10.2.89_440.33.01_linux.run |
>= 2.14 |
excluding driver |
Current implementation status (see corresponding build graph bellow):
Current documentation status in the wiki:
Current strategy (click to expand)
The current strategy to build portable hysop dependencies is approximately the following:
graph TB;
subgraph Dockerfile
Node[CentOS 6 <br> GCC 4.1.1 <br> GLIBC 2.12]
--> Node0[add tar.bz2 and tar.xz support <br> add HTTPS support to wget]
--> Node1[update build essentials]
--> Node2[build bootstrapped GCC 4.9.2<br>with C and C++ support]
end
subgraph "i"
Node3[build static GCC 10 dependencies]
--> Node4[build bootstrapped GCC 10.2.0<br>with C, C++ and Fortran support]
--> Node5[build static build essentials]
--> Node6[build static hysop dependencies and tools]
end
subgraph "l"
Node7[build shared dependencies:<br>OpenCL ICD, POCL, OpenMPI, Python 3.8]
--> Node8[build Python modules]
--> Node9[build HySoP module]
--> Node10[create hysop packages <br> hysop_portable_dev.tar.gz <br> hysop_portable.tar.gz]
end
Node2 -->|hysop-portable-dev| Node3
Node6 -->|hysop-portable| Node7
List of required shared libraries
-
glibc 2.12: ld.so (interpreter), libc.so, libm.so, librt.so, libdl.so, libutil.so, libpthread.so
-
gcc 10.2.0: libatomic.so, libgfortran.so, libgomp.so, libitm.so, libquadmath.so, libssp.so, libcc1.so, libstdc++.so
-
clang 10.0.1: libLTO.so, libOptRemarks.so, libclang.so
Software configuration of popular distributions
Here is the version of glibc, gcc and kernel provided by popular distributions.
Data have been collected from distrowatch using this simple python script. Theoretical linux distribution support is extracted from those data by comparing GLIBC versions. All distributions with GLIBC >= 2.12 (December 2010) should work, you can click on your target distribution to check if this is the case.
Debian based
Debian
Version |
Name |
Year |
GCC |
GLIBC |
Kernel |
10 |
Buster |
2019 |
8.3.0 |
2.28 |
4.19.37 |
9 |
Stretch |
2017 |
6.3.0 |
2.24 |
4.9.30 |
8.0 |
Jessie |
2015 |
4.9.2 |
2.19 |
3.16.7 |
7.0 |
Wheezy |
2013 |
4.7.2 |
2.13 |
3.2.41 |
6.0 |
Squeeze |
2011 |
4.4.5 |
2.11.2 |
2.6.32 |
5.0 |
Lenny |
2009 |
4.3.2 |
2.7 |
2.6.26 |
4.0 |
Etch |
2007 |
4.1.1 |
2.3.6 |
2.6.18 |
3.1 |
Sarge |
2005 |
3.3.5 |
2.3.2 |
2.4.27 |
3.0 |
Woody |
2002 |
2.95.4 |
2.2.5 |
2.2.20 |
2.2 |
Potato |
2000 |
2.95.2 |
2.1.3 |
2.2.16 |
2.1 |
Slink |
1999 |
2.7.2.3 |
2.0.7 |
2.0.36 |
2.0 |
Hamm |
1998 |
2.7.2.3 |
2.0.7t |
2.0.34 |
1.3 |
Bo |
1997 |
2.7.2.1 |
1.92 |
2.0.29 |
1.2 |
Rex |
1996 |
-- |
1.92 |
2.0.27 |
1.1 |
Buzz |
1996 |
2.7.2 |
-- |
2.0.0 |
Ubuntu
Version |
Name |
Year |
GCC |
GLIBC |
Kernel |
19.10 |
Eoan |
2019 |
9.2.1 |
2.30 |
5.3 |
19.04 |
Disco |
2019 |
8.3.0 |
2.29 |
5.0 |
18.10 |
Cosmic |
2018 |
8.2.0 |
2.28 |
4.18 |
18.04 LTS |
Bionic |
2018 |
7.3.0 |
2.27 |
4.15 |
17.10 |
Artful |
2017 |
7.2.0 |
2.26 |
4.13 |
17.04 |
Zesty |
2017 |
6.3.0 |
2.24 |
4.10 |
16.10 |
Yakkety |
2016 |
6.1.1 |
2.24 |
4.8 |
16.04 LTS |
Xenial |
2016 |
5.3.1 |
2.23 |
4.4 |
15.10 |
Wily |
2015 |
5.2.1 |
2.21 |
4.2 |
15.04 |
Vivid |
2015 |
4.9.2 |
2.21 |
3.19 |
14.10 |
Utopic |
2014 |
4.9.1 |
2.19 |
3.16 |
14.04 LTS |
Trusty |
2014 |
4.8.2 |
2.19 |
3.13 |
13.10 |
Saucy |
2013 |
4.8.1 |
2.17 |
3.11 |
13.04 |
Raring |
2013 |
4.7.3 |
2.17 |
3.8 |
12.10 |
Quantal |
2012 |
4.7.2 |
2.15 |
3.5 |
12.04 LTS |
Precise |
2012 |
4.6.3 |
2.15 |
3.2 |
11.10 |
Oneiric |
2011 |
4.6.1 |
2.13 |
3.0 |
11.04 |
Natty |
2011 |
4.5.2 |
2.13 |
2.6.38 |
10.10 |
Maverick |
2010 |
4.4.4 |
2.12.1 |
2.6.35 |
10.04 LTS |
Lucid |
2010 |
4.4.3 |
2.11.1 |
2.6.32 |
9.10 |
Karmic |
2009 |
4.4.1 |
2.10.1 |
2.6.31 |
9.04 |
Jaunty |
2009 |
4.3.3 |
2.9 |
2.6.28 |
8.10 |
Intrepid |
2008 |
4.3.1 |
2.8 |
2.6.27 |
8.04 LTS |
Hardy |
2008 |
4.2.3 |
2.7 |
2.6.24 |
7.10 |
Gutsy |
2007 |
4.1.2 |
2.6.1 |
2.6.22 |
7.04 |
Feisty |
2007 |
4.1.2 |
2.5 |
2.6.20 |
6.10 |
Edgy |
2006 |
4.1.1 |
2.4 |
2.6.17 |
6.06 LTS |
Dapper |
2006 |
4.0.3 |
2.3.6 |
2.6.15 |
5.10 |
Breezy |
2005 |
4.0.1 |
2.3.5 |
2.6.12 |
5.04 |
Hoary |
2005 |
3.3.5 |
2.3.2 |
2.6.10 |
4.10 |
Warty |
2004 |
3.3.4 |
2.3.2 |
2.6.8.1 |
Linux Mint
Version |
Name |
Year |
GCC |
GLIBC |
Kernel |
19.3 |
Tricia |
2019 |
7.4.0 |
2.27 |
5.0.0 |
18.3 |
Sylvia |
2017 |
5.3.1 |
2.23 |
4.10 |
17.3 |
Rosa |
2015 |
4.8.4 |
2.19 |
3.19 |
16 |
Petra |
2013 |
4.8.1 |
2.17 |
3.11 |
15 |
Olivia |
2013 |
4.7.3 |
2.17 |
3.8 |
14 |
Nadia |
2012 |
4.7.2 |
2.15 |
3.5 |
13 |
Maya |
2012 |
4.6.3 |
2.15 |
3.2 |
12 |
Lisa |
2011 |
4.6.1 |
2.13 |
3.0 |
11 |
Katya |
2011 |
4.5.2 |
2.13 |
2.6.38 |
10 |
Julia |
2010 |
4.4.4 |
2.12.1 |
2.6.35 |
9 |
Isadora |
2010 |
4.4.3 |
2.11.1 |
2.6.32 |
8 |
Helena |
2009 |
4.4.1 |
2.10.1 |
2.6.31 |
7 |
Gloria |
2009 |
4.3.3 |
2.9 |
2.6.28 |
6 |
Felicia |
2008 |
4.3.1 |
2.8 |
2.6.27 |
5 |
Elyssa |
2008 |
4.2.3 |
2.7 |
2.6.24 |
4.0 |
Daryna |
2007 |
4.1.2 |
2.6.1 |
2.6.22 |
3.1 |
Celena |
2007 |
4.1.2 |
2.5 |
2.6.20 |
3.0 |
Cassandra |
2007 |
4.1.2 |
2.5 |
2.6.20 |
2.2 |
Bianca |
2007 |
4.1.1 |
2.4 |
2.6.17 |
2.1 |
Bea |
2006 |
4.1.1 |
2.4 |
2.6.17 |
2.0 |
Barbara |
2006 |
4.1.1 |
2.4 |
2.6.17 |
MX Linux
Version |
Year |
GCC |
GLIBC |
Kernel |
19.1 |
2020 |
8.3.0 |
2.28 |
4.19.67 |
18.3 |
2019 |
6.3.0 |
2.24 |
4.19.37 |
17.1 |
2018 |
6.3.0 |
2.24 |
4.15.4 |
16.1 |
2017 |
4.9.2 |
2.19 |
4.7.8 |
Elementary OS
Version |
Name |
Year |
GCC |
GLIBC |
Kernel |
5.1.2 |
Hera |
2020 |
-- |
2.27 |
5.3.0 |
5.0 |
Juno |
2018 |
7.3.0 |
2.27 |
4.15 |
0.4.1 |
Loki |
2017 |
5.3.1 |
2.23 |
4.8 |
0.3.2 |
Freya |
2015 |
4.8.2 |
2.19 |
3.19 |
0.2 |
Luna |
2013 |
4.6.3 |
2.15 |
3.2 |
0.1 |
Jupiter |
2011 |
4.4.4 |
2.12.1 |
2.6.35 |
Zorin OS
Version |
Year |
GCC |
GLIBC |
Kernel |
15.2 |
2020 |
-- |
2.28 |
5.3 |
12.4 |
2018 |
5.3.1 |
2.23 |
4.15 |
11 |
2016 |
5.2.1 |
2.21 |
4.2 |
10 |
2015 |
4.9.2 |
2.21 |
3.19 |
9 |
2014 |
4.8.2 |
2.19 |
3.11 |
8.1 |
2014 |
4.8.1 |
2.17 |
3.11 |
7.1 |
2013 |
4.7.3 |
2.17 |
3.8 |
6.4 |
2013 |
4.6.3 |
2.15 |
3.2 |
5.2 |
2011 |
4.5.2 |
2.13 |
2.6.38 |
4 |
2010 |
4.4.4 |
2.12.1 |
2.6.35 |
3.2 |
2011 |
4.4.3 |
2.11.1 |
2.6.32 |
2 |
2010 |
4.4.1 |
2.10.1 |
2.6.31 |
1 |
2009 |
4.3.3 |
2.9 |
2.6.28 |
Deepin
Version |
Year |
GCC |
GLIBC |
Kernel |
15.11 |
2019 |
6.3.0 |
2.24 |
4.15.0 |
15.3 |
2016 |
5.3.1 |
2.22 |
4.4.6 |
2014.3 |
2015 |
4.8.2 |
2.19 |
3.13 |
2013 |
2013 |
4.7.3 |
2.17 |
3.8 |
12.12 |
2013 |
4.7.3 |
2.17 |
3.8 |
12.06 |
2012 |
4.6.3 |
2.15 |
3.2 |
11.12.1 |
2012 |
4.6.1 |
2.13 |
3.0 |
11.06.1 |
2011 |
4.5.2 |
2.13 |
2.6.38 |
10.12.1 |
2011 |
4.4.4 |
2.12.1 |
2.6.35 |
10.06 |
2010 |
4.4.3 |
2.11.1 |
2.6.32 |
9.12 |
2009 |
4.4.1 |
2.10.1 |
2.6.31 |
2.0 |
2008 |
4.3.1 |
2.8 |
2.6.27 |
1.0 |
2006 |
4.0.3 |
2.3.6 |
2.6.15 |
0.6 |
2005 |
3.3.5 |
2.3.2 |
2.6.8 |
0.55 |
2004 |
3.3.4 |
2.3.2 |
2.6.8 |
0.3 |
2004 |
3.3.4 |
2.3.2 |
2.4.26 |
Kali Linux
Version |
Year |
GCC |
GLIBC |
Kernel |
2020.1 |
2020 |
9.2.1 |
2.29 |
5.4.8 |
2019.4 |
2019 |
9.2.1 |
2.29 |
5.3.9 |
2018.4 |
2018 |
8.1.0 |
2.27 |
4.18.10 |
2017.3 |
2017 |
7.2.0 |
2.24 |
4.13.10 |
2016.2 |
2016 |
6.1.1 |
2.23 |
4.6.4 |
2.0 |
2015 |
4.9.2 |
2.19 |
4.0.4 |
1.1.0 |
2015 |
4.7.2 |
2.13 |
3.18.3 |
5 |
2012 |
4.4.3 |
2.11.1 |
3.2.6 |
4 |
2010 |
4.3.1 |
2.11.1 |
2.6.35.8 |
3 |
2008 |
4.1.2 |
2.5 |
2.6.21.5 |
2 |
2007 |
3.4.6 |
2.3.6 |
2.6.20 |
1.0 |
2006 |
3.3.5 |
2.3.5 |
2.6.15.6 |
200605 |
2005 |
3.3.5 |
2.3.2 |
2.6.11 |
150405 |
2005 |
3.3.5 |
2.3.2 |
2.6.9 |
081004 |
2004 |
3.3.2 |
2.3.2 |
2.6.7 |
KDE Neon
Version |
Year |
GCC |
GLIBC |
Kernel |
20200326 |
2020 |
-- |
2.27 |
5.3 |
20191226 |
2019 |
-- |
2.27 |
5.0 |
20180906 |
2018 |
-- |
2.23 |
4.15 |
20171228 |
2017 |
-- |
2.23 |
4.10 |
Red Hat based
Red Hat Enterprise Linux (RHEL)
Version |
Year |
GCC |
GLIBC |
Kernel |
RHEL-8.x |
2019 |
8.3.1 |
2.28 |
4.18.0 |
RHEL-7.x |
2013 |
4.8.5 |
2.17 |
3.10.0 |
RHEL-6.x |
2010 |
4.4.7 |
2.12 |
2.6.32 |
RHEL-5.x |
2007 |
4.1.2 |
2.5 |
2.6.18 |
RHEL-4.x |
2005 |
3.4.6 |
2.3.4 |
2.6.9 |
RHEL-3.x |
2003 |
3.2.3 |
2.3.2 |
2.4.21 |
RHEL-2.x |
2002 |
2.96 |
2.2.4 |
2.4.9 |
Red Hat Linux
Version |
Name |
Year |
GCC |
GLIBC |
Kernel |
9 |
Shrike |
2003 |
3.2.2 |
2.3.2 |
2.4.20 |
8.0 |
Psyche |
2002 |
3.2 |
2.2.93 |
2.4.18 |
7.3 |
Valhalla |
2002 |
2.96 |
2.2.5 |
2.4.18 |
7.2 |
Enigma |
2001 |
2.96 |
2.2.4 |
2.4.7 |
7.1 |
Seawolf |
2001 |
2.96 |
2.2.2 |
2.4.2 |
7.0 |
Guiness |
2000 |
2.96 |
2.1.92 |
2.2.16 |
6.2 |
Zoot |
2000 |
-- |
2.1.3 |
2.2.14 |
6.1 |
Cartman |
1999 |
-- |
2.1.2 |
2.2.12 |
6.0 |
Hedwig |
1999 |
-- |
2.1.1 |
2.2.5 |
5.2 |
Apollo |
1998 |
2.7.2.3 |
2.0.7 |
2.0.36 |
5.1 |
Manhattan |
1998 |
2.7.2.3 |
2.0.7 |
2.0.34 |
5.0 |
Hurricane |
1997 |
2.7.2.3 |
2.0.5c |
2.0.32 |
4.2 |
Biltmore |
1997 |
2.7.2.1 |
-- |
2.0.30 |
CentOS
Version |
Year |
GCC |
GLIBC |
Kernel |
8.1 |
2020 |
8.3.1 |
2.28 |
4.18 |
7.7 |
2019 |
4.8.5 |
2.17 |
3.10 |
6.10 |
2018 |
4.4.7 |
2.12 |
2.6.32 |
5.11 |
2014 |
4.1.2 |
2.5 |
2.6.18 |
4.8 |
2009 |
3.4.6 |
2.3.4 |
2.6.9 |
3.9 |
2007 |
3.2.3 |
2.3.2 |
2.4.21 |
2.0 |
2004 |
2.96 |
2.2.4 |
2.4.9 |
Fedora
Version |
Name |
Year |
GCC |
GLIBC |
Kernel |
31 |
|
2019 |
9.2.1 |
2.30 |
5.3.7 |
30 |
|
2019 |
9.0.1 |
2.29 |
5.0.9 |
29 |
|
2018 |
8.2.1 |
2.28 |
4.18.16 |
28 |
|
2018 |
8.0.1 |
2.27 |
4.16.3 |
27 |
|
2017 |
-- |
2.26 |
4.13.9 |
26 |
|
2017 |
7.1.1 |
2.25 |
4.11.8 |
25 |
|
2016 |
6.2.1 |
2.24 |
4.8.6 |
24 |
|
2016 |
6.1.1 |
2.23.1 |
4.5.5 |
23 |
|
2015 |
-- |
2.22 |
4.2.3 |
22 |
|
2015 |
-- |
2.21 |
4.0.4 |
21 |
|
2014 |
4.9.2 |
2.20 |
3.17.4 |
20 |
Heisenbug |
2013 |
4.8.2 |
2.18 |
3.11.10 |
19 |
Schrodingers |
2013 |
4.8.1 |
2.17 |
3.9.5 |
18 |
Spherical |
2013 |
4.7.2 |
2.16.0 |
3.6.10 |
17 |
Beefy |
2012 |
4.7.0 |
2.15 |
3.3.4 |
16 |
Verne |
2011 |
4.6.2 |
2.14.90 |
3.1 |
15 |
Lovelock |
2011 |
4.6.0 |
2.13.90 |
2.6.38.6 |
14 |
Laughlin |
2010 |
4.5.1 |
2.12.90 |
2.6.35.6 |
13 |
Goddard |
2010 |
4.4.4 |
2.12 |
2.6.33.3 |
12 |
Constantine |
2009 |
4.4.2 |
2.11 |
2.6.31.5 |
11 |
Leonidas |
2009 |
4.4.0 |
2.10.1 |
2.6.29.4 |
10 |
Cambridge |
2008 |
4.3.2 |
2.9 |
2.6.27.5 |
9 |
Sulphur |
2008 |
4.3.0 |
2.8 |
2.6.25 |
8 |
Werewolf |
2007 |
4.1.2 |
2.7 |
2.6.23.1 |
7 |
Moonshine |
2007 |
4.1.2 |
2.6 |
2.6.21 |
6 |
Zod |
2006 |
4.1.1 |
2.5 |
2.6.18 |
5 |
Bordeaux |
2006 |
4.1.0 |
2.4 |
2.6.15 |
4 |
Stentz |
2005 |
4.0.0 |
2.3.5 |
2.6.11 |
3 |
Heidelberg |
2004 |
3.4.2 |
2.3.3 |
2.6.9 |
2 |
Tettnang |
2004 |
3.3.3 |
2.3.3 |
2.6.5 |
1 |
Yarrow |
2003 |
3.3.2 |
2.3.2 |
2.4.22 |
SUSE based
OpenSUSE
Version |
Year |
GCC |
GLIBC |
Kernel |
15.1 |
2019 |
-- |
2.26 |
4.12.14 |
15 |
2018 |
-- |
2.26 |
4.12.14 |
42.3 |
2017 |
4.8.5 |
2.22 |
4.4.76 |
42.2 |
2016 |
4.8.5 |
2.22 |
4.4.27 |
42.1 |
2015 |
4.8.5 |
2.19 |
4.1.12 |
13.2 |
2014 |
4.8.3 |
2.19 |
3.16.6 |
13.1 |
2013 |
4.8.1 |
2.18 |
3.11.6 |
12.3 |
2013 |
4.7.2 |
2.17 |
3.7.10 |
12.2 |
2012 |
4.7.1 |
2.15 |
3.4.6 |
12.1 |
2011 |
4.6.2 |
2.14.1 |
3.1 |
11.4 |
2011 |
4.5.1 |
2.11.3 |
2.6.37.1 |
11.3 |
2010 |
4.5.0 |
2.11.2 |
2.6.34 |
11.2 |
2009 |
4.4.1 |
2.10.1 |
2.6.31.5 |
11.1 |
2008 |
4.3.3 |
2.9 |
2.6.27.7 |
11.0 |
2008 |
4.3.1 |
2.8 |
2.6.25.5 |
10.3 |
2007 |
4.2.1 |
2.6.1 |
2.6.22.5 |
10.2 |
2006 |
4.1.3 |
2.5 |
2.6.18.2 |
10.1 |
2006 |
4.1.0 |
2.4 |
2.6.16.13 |
10.0 |
2005 |
4.0.2 |
2.3.5 |
2.6.13 |
9.3 |
2005 |
3.3.5 |
2.3.4 |
2.6.11.4 |
9.2 |
2004 |
3.3.4 |
2.3.3 |
2.6.8 |
9.1 |
2004 |
3.3.3 |
2.3.3 |
2.6.4 |
9.0 |
2003 |
3.3.1 |
2.3.2 |
2.4.21 |
8.2 |
2003 |
3.3pre |
2.3.2 |
2.4.20 |
8.1 |
2002 |
3.2 |
2.2.5 |
2.4.19 |
8.0 |
2002 |
2.95.3 |
2.2.5 |
2.4.18 |
7.3 |
2001 |
2.95.3 |
2.2.4 |
2.4.9 |
7.2 |
2001 |
2.95.3 |
2.2.2 |
2.4.4 |
7.1 |
2001 |
2.95.2 |
2.2 |
2.2.18 |
7.0 |
2000 |
2.95.2 |
2.1.3 |
2.2.16 |
6.4 |
2000 |
2.95.2 |
2.1.3 |
2.2.14 |
6.3 |
1999 |
2.7.2.3 |
2.1.2 |
2.2.13 |
6.2 |
1999 |
2.7.2.3 |
2.1.1 |
2.2.10 |
6.1 |
1999 |
2.7.2.3 |
99.4.14 |
2.2.6 |
6.0 |
1998 |
2.7.2.1 |
2.0.7 |
2.0.36 |
5.3 |
1998 |
2.7.2.1 |
-- |
2.0.35 |
5.2 |
1998 |
2.7.2.1 |
-- |
2.0.33 |
SUSE Linux Enterprise Server (SLES)
Version |
Year |
GCC |
GLIBC |
Kernel |
15 |
2018 |
7.3.1 |
2.26 |
4.12.14 |
12 p5 |
2019 |
4.8 |
2.22 |
4.12.14 |
11 Sp3 |
2013 |
4.3.4 |
2.11.3 |
3.0.76 |
10 Sp3 |
2009 |
4.1.2 |
2.4 |
2.6.16.60 |
9 |
2004 |
3.3.3 |
2.3.3 |
2.6.5 |
Arch based
Archlinux
Version |
Year |
GCC |
GLIBC |
Kernel |
2011.08 |
2011 |
-- |
2.14 |
3.0.3 |
2010.05 |
2010 |
4.5.0 |
2.11.1 |
2.6.33.4 |
2009.08 |
2009 |
4.4.1 |
2.10.1 |
2.6.30.4 |
2009.02 |
2009 |
-- |
2.9 |
2.6.28.4 |
2008.06 |
2008 |
4.3.1 |
2.8 |
2.6.25.6 |
2007.08 |
2007 |
4.2.1 |
2.6 |
2.6.22.1 |
0.8 |
2007 |
4.1.2 |
2.5 |
2.6.20.4 |
0.7 |
2005 |
3.4.3 |
2.3.4 |
2.6.10 |
0.6 |
2004 |
3.3.3 |
2.3.2 |
2.6.3 |
0.5 |
2003 |
3.3 |
2.3.2 |
2.4.21 |
0.4 |
2002 |
3.2.1 |
2.3.1 |
2.4.20 |
0.3 |
2002 |
2.95.3 |
2.2.5 |
2.4.19 |
0.2 |
2002 |
2.95.3 |
2.2.5 |
2.4.18i |
0.1 |
2002 |
2.95.3 |
2.2.5 |
2.4.18 |
Manjaro
Version |
Year |
GCC |
GLIBC |
Kernel |
19.0 |
2020 |
9.3.0 |
2.30 |
5.4.18 |
18.1.0 |
2019 |
9.1.0 |
2.29 |
5.2.11 |
17.1.12 |
2018 |
8.2.0 |
2.28 |
4.17.11 |
16.10.3 |
2016 |
-- |
2.24 |
4.4.33 |
15.12 |
2015 |
-- |
2.22 |
4.1.15 |
0.8.11 |
2014 |
4.9.0 |
2.19 |
3.12.20 |
0.8.8 |
2013 |
4.8.2 |
2.18 |
3.10.20 |
ArcoLinux
Version |
Year |
GCC |
GLIBC |
Kernel |
20.3.4 |
2020 |
9.2.1 |
2.31 |
5.5.7 |
19.12.17 |
2019 |
9.2.0 |
2.30 |
5.4.6 |
18.12.7 |
2018 |
8.2.1 |
2.28 |
4.19.4 |
Independent distributions
Slackware
Version |
Year |
GCC |
GLIBC |
Kernel |
14.2 |
2016 |
5.3.0 |
2.23 |
4.4.14 |
14.1 |
2013 |
4.8.2 |
2.17 |
3.10.17 |
14.0 |
2012 |
4.7.1 |
2.15 |
3.2.29 |
13.37 |
2011 |
4.5.2 |
2.13 |
2.6.37.6 |
13.1 |
2010 |
4.4.4 |
2.11.1 |
2.6.33.4 |
13.0 |
2009 |
4.3.3 |
2.9 |
2.6.29.6 |
12.2 |
2008 |
4.2.4 |
2.7 |
2.6.27.7 |
12.1 |
2008 |
4.2.3 |
2.7 |
2.6.24.5 |
12.0 |
2007 |
4.1.2 |
2.5 |
2.6.21.5 |
11.0 |
2006 |
3.4.6 |
2.3.6 |
2.4.33.3 |
10.2 |
2005 |
3.3.6 |
2.3.5 |
2.4.31 |
10.1 |
2005 |
3.3.4 |
2.3.4 |
2.4.29 |
10.0 |
2004 |
3.3.4 |
2.3.2 |
2.4.26 |
9.1 |
2003 |
3.2.3 |
2.3.2 |
2.4.22 |
9.0 |
2003 |
3.2.2 |
2.3.1 |
2.4.20 |
8.1 |
2002 |
2.95.3 |
2.2.5 |
2.4.18 |
8.0 |
2001 |
2.95.3 |
2.2.3 |
2.2.19 |
7.1 |
2000 |
-- |
2.1.3 |
2.2.16 |
7.0 |
1999 |
-- |
2.1.2 |
2.2.13 |
4.0 |
1999 |
2.7.2.3 |
2.0.7pre6 |
2.2.6 |
3.9 |
1999 |
2.7.2.3 |
2.0.7pre6 |
2.0.37pre10 |
3.6 |
1998 |
2.7.2.3 |
2.0.7pre6 |
2.0.35 |
3.5 |
1998 |
-- |
-- |
2.0.34 |
3.4 |
1997 |
2.7.2.3 |
-- |
2.0.30 |
3.3 |
1997 |
2.7.2.2 |
-- |
2.0.30 |
3.2 |
1997 |
2.7.2.1 |
-- |
2.0.29 |
3.1 |
1996 |
2.7.2 |
-- |
2.0.0 |
3.0 |
1995 |
2.7.0 |
-- |
1.2.13 |
2.3 |
1995 |
2.6.3 |
-- |
1.2.8 |
2.2.0 |
1995 |
2.6.3 |
-- |
1.2.1 |
PCLinuxOS
Version |
Year |
GCC |
GLIBC |
Kernel |
2020.03 |
2020 |
9.3.0 |
2.31 |
5.5.10 |
2019.12 |
2019 |
9.2.0 |
2.30 |
5.4.3 |
2018.06 |
2018 |
7.3.0 |
2.26 |
4.16.13 |
2017.11 |
2017 |
7.2.1 |
2.26 |
4.12.14 |
2016.03 |
2016 |
4.9.2 |
2.20 |
4.4.4 |
2014.12 |
2014 |
4.7.2 |
2.16 |
3.18.1 |
2013.10 |
2013 |
4.7.2 |
2.16 |
3.4.64 |
2012.08 |
2012 |
4.5.2 |
2.13 |
3.2.18 |
2011.09 |
2011 |
4.5.2 |
2.12.1 |
2.6.38.8 |
2010.12 |
2010 |
4.4.1 |
2.10.1 |
2.6.33.7 |
2010.07 |
2010 |
4.4.1 |
2.10.1 |
2.6.33.5 |
2010.1 |
2010 |
4.4.1 |
2.10.1 |
2.6.32.12 |
2009.2 |
2009 |
4.1.1 |
2.4 |
2.6.26.8 |
2009.1 |
2009 |
4.1.1 |
2.4 |
2.6.18.8 |
2007 |
2007 |
3.3.1 |
2.3.2 |
2.6.16.27 |
0.92 |
2006 |
3.3.1 |
2.3.2 |
2.6.12 |
0.91 |
2005 |
3.3.1 |
2.3.2 |
2.6.11.12 |
Solus
Version |
Year |
GCC |
GLIBC |
Kernel |
4.1 |
2020 |
9.2.0 |
2.29 |
5.4.12 |
4.0 |
2019 |
-- |
2.29 |
4.20.16 |
3.9999 |
2018 |
-- |
2.27 |
4.18.5 |
3 |
2017 |
-- |
2.25 |
4.12.7 |
2017.04.18.0 |
2017 |
-- |
2.25 |
4.9.22 |
1.2.1 |
2016 |
-- |
2.24 |
4.8.2 |
Mageia
Version |
Year |
GCC |
GLIBC |
Kernel |
7.1 |
2019 |
8.3.1 |
2.29 |
5.1.14 |
6 |
2017 |
5.4.0 |
2.22 |
4.9.35 |
5.1 |
2016 |
4.9.2 |
2.20 |
4.4.30 |
4.1 |
2014 |
4.8.2 |
2.18 |
3.12.21 |
3 |
2013 |
4.7.2 |
2.17 |
3.8.13 |
2 |
2012 |
4.6.3 |
2.14.1 |
3.3.6 |
1 |
2011 |
4.5.2 |
2.12.1 |
2.6.38.7 |