karlos-toolchain/Readme.md

1.1 KiB

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