Patches to GCC and GNU binutils to add KarlOS as a target platform.
Find a file
2026-01-21 21:38:54 +01:00
.gitignore Reproducible toolchain build inside docker container 2026-01-21 21:38:54 +01:00
binutils-karlos-target-2.37.diff Some fixes to make patched GCC+binutils build cleanly 2026-01-14 20:54:40 +01:00
build-binutils.sh Reproducible toolchain build inside docker container 2026-01-21 21:38:54 +01:00
build-gcc.sh Reproducible toolchain build inside docker container 2026-01-21 21:38:54 +01:00
Dockerfile Reproducible toolchain build inside docker container 2026-01-21 21:38:54 +01:00
gcc-karlos-target-11.2.0.diff Adapted dabble's GCC patches for KarlOS 2026-01-14 19:30:05 +01:00
make-toolchain.sh Reproducible toolchain build inside docker container 2026-01-21 21:38:54 +01:00
patch-binutils.sh Adapted dabble's GCC patches for KarlOS 2026-01-14 19:30:05 +01:00
patch-gcc.sh Adapted dabble's GCC patches for KarlOS 2026-01-14 19:30:05 +01:00
Readme.md Reproducible toolchain build inside docker container 2026-01-21 21:38:54 +01:00
vars.sh Reproducible toolchain build inside docker container 2026-01-21 21:38:54 +01:00

KarlOS Toolchain

We have a customized version of GCC and GNU binutils that support KarlOS as a compilation target platform. Additionally, everybody working on KarlOS needs a couple of other development tools such as mkbootimg.

This repository contains the sources for a Docker container that can build a (somewhat) portable release of our development tools.

To compile our toolchain from source, you first need to create the container image like this:

docker buildx build -t build-karlos-toolchain:latest .

Then, you can run the container like this:

docker container run --rm -it -v $(pwd)/final:/final build-karlos-toolchain

You can then bundle the toolchain into a tarball like this:

tar cJ -C final -f x86_64-karlos-toolchain.tar.xz .

ToDos

  • Verify signatures of downloaded tarballs (keep signatures in git repo)
  • Use shell variables to make it easier to change GCC/binutils versions
  • Add mkbootimg to the toolchain so members don't have to install it manually
  • Document the toolchain process more
  • Port patches to latest versions of GCC & binutils