Skip to content

Portable hysop binaries

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:

  1. build-anywhere uses GLIBC 2.13.
  2. Holy Build Box uses CentOS 6.0 with GLIBC 2.12.
  3. 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):

  • Create CentOS 6 docker image
  • Update build essentials
  • Build bootstrapped gcc 4.9.2 with C and C++ support
  • Build static gcc 10.2.0 dependencies
  • Build bootstrapped gcc 10.2.0 with C, C++ and Fortran support
  • Build static build essentials using up to date compiler
  • Build static hysop dependencies
  • Build shared hysop dependencies
  • Build all required python modules
  • Run docker image and build HySoP

Current documentation status in the wiki:

  • Describe how to build HySoP
  • Describe required dependencies
  • Documentation on hysop docker images
  • Documentation on hysop prebuilt binaries
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

  1. glibc 2.12: ld.so (interpreter), libc.so, libm.so, librt.so, libdl.so, libutil.so, libpthread.so
  2. gcc 10.2.0: libatomic.so, libgfortran.so, libgomp.so, libitm.so, libquadmath.so, libssp.so, libcc1.so, libstdc++.so
  3. 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
Edited by Jean-Baptiste Keck
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information