Toolchains#

Relenv uses toolchains to compile Python (and it’s dependencies) on Linux platforms. These toolchains consist of GCC, Binutils, and GLibc and are built using crosstool-ng. Relenv’s toolchains are pre-built. Users of Relenv will only need a toolchain when installing C extensions which need to re-main portable accross multiple Linux OSes. When working with pure python applications users should not need to concern themselves with toolchains.

Building Toolchains#

Building toolchains is a farily expensive and lengthy process. It’s recommended that you have 16GB of RAM and 40GB of free disk space. The example below is using Centos Stream 8.

sudo yum -y groupinstall "Development Tools"
sudo yum -y --enablerepo=powertools install vim python3 texinfo help2man ncurses-devel

Running Relenv’s toolchain build command will do the following

  • Download crosstool-ng

  • Configure and compile crosstool-ng

  • Use Relenv’s crosstool config files to compile the requests architectures

git clone git@github.com:saltstack/relenv.git
cd relenv
python3 -m relenv toolchain build --arch=x86_64 --arch=aarch64

Pre-Built Toolchains#

Under most circumstances using a pre-built toolchain is preffered over building the toolchain yourself.

python3 -m relenv toolchain download --arch=x86_64