Patches to GCC and GNU binutils to add KarlOS as a target platform.
| .gitignore | ||
| binutils-karlos-target-2.37.diff | ||
| build-binutils.sh | ||
| build-gcc.sh | ||
| Dockerfile | ||
| gcc-karlos-target-11.2.0.diff | ||
| make-toolchain.sh | ||
| patch-binutils.sh | ||
| patch-gcc.sh | ||
| Readme.md | ||
| vars.sh | ||
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