https://github.com/dimkr/toolchains
Toolchains for ultra-portable static binaries
https://github.com/dimkr/toolchains
Last synced: about 1 year ago
JSON representation
Toolchains for ultra-portable static binaries
- Host: GitHub
- URL: https://github.com/dimkr/toolchains
- Owner: dimkr
- License: mit
- Created: 2019-12-14T15:19:19.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2025-03-02T03:17:17.000Z (over 1 year ago)
- Last Synced: 2025-05-06T21:47:55.434Z (over 1 year ago)
- Language: Shell
- Homepage:
- Size: 68.4 KB
- Stars: 14
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
```
_ _ _ _
| |_ ___ ___ | | ___| |__ __ _(_)_ __ ___
| __/ _ \ / _ \| |/ __| '_ \ / _` | | '_ \/ __|
| || (_) | (_) | | (__| | | | (_| | | | | \__ \
\__\___/ \___/|_|\___|_| |_|\__,_|_|_| |_|___/
```
[](https://github.com/dimkr/toolchains/actions)
## Overview
This repository is a CI/CD pipeline for a collection of cross-compilation C/C++ toolchains that produce static binaries, carefully optimized for maximum hardware compatibility and small size.
These toolchains are ideal for training, research, debugging, CI and development of cross-platform software.
## Usage
Pre-built toolchains are available [here](https://github.com/dimkr/toolchains/releases).
To install a toolchain, extract it to /opt/x-tools, e.g.:
```
curl -L https://github.com/dimkr/toolchains/releases/latest/download/arm-any32-linux-musleabi.tar.gz | sudo tar -xzvf - -C /
```
Each toolchain is accompanied by a [venv](https://docs.python.org/3/library/venv.html#creating-virtual-environments)-style "activation" script that sets environment variables.
For example, to build static [strace](https://strace.io) binaries for ARM:
```
HOST=arm-any32-linux-musleabi
. /opt/x-tools/$HOST/activate
curl https://strace.io/files/5.4/strace-5.4.tar.xz | tar -xJvf-
cd strace-5.4
./configure --host=$HOST
make
```
Another way to use the toolchains is using the [Meson](https://mesonbuild.com) build system: each toolchain has a matching cross-file under /usr/local/share/meson/cross.
For example, to build [papaw](https://github.com/dimkr/papaw) for ARM:
```
HOST=arm-any32-linux-musleabi
git clone --recursive https://github.com/dimkr/papaw
cd papaw
meson --cross-file=$HOST build
ninja -C build
```
## Legal Information
This is free and unencumbered software released under the terms of the MIT license; see COPYING for the license text.
The ASCII art logo at the top was made using [FIGlet](http://www.figlet.org/).