serenity/Toolchain
Daniel Bertalan 06fc64be13 Toolchain+Meta: Update LLVM version to 13.0.0
This commit updates the Clang toolchain's version to 13.0.0, which comes
with better C++20 support and improved handling of new features by
clang-format. Due to the newly enabled `-Bsymbolic-functions` flag, our
Clang binaries will only be 2-4% slower than if we dynamically linked
them, but we save hundreds of megabytes of disk space.

The `BuildClang.sh` script has been reworked to build the entire
toolchain in just three steps: one for the compiler, one for GNU
binutils, and one for the runtime libraries. This reduces the complexity
of the build script, and will allow us to modify the CI configuration to
only rebuild the libraries when our libc headers change.

Most of the compile flags have been moved out to a separate CMake cache
file, similarly to how the Android and Fuchsia toolchains are
implemented within the LLVM repo. This provides a nicer interface than
the heaps of command-line arguments.

We no longer build separate toolchains for each architecture, as the
same Clang binary can compile code for multiple targets.

The horrible mess that `SERENITY_CLANG_ARCH` was, has been removed in
this commit. Clang happily accepts an `i686-pc-serenity` target triple,
which matches what our GCC toolchain accepts.
2021-10-17 17:09:58 +01:00
..
CMake Toolchain+Meta: Update LLVM version to 13.0.0 2021-10-17 17:09:58 +01:00
Patches Toolchain+Meta: Update LLVM version to 13.0.0 2021-10-17 17:09:58 +01:00
Stubs Toolchain: Introduce stubs for core system libraries 2021-10-17 17:09:58 +01:00
.dockerignore Build: Add Dockerfile 2020-05-22 01:19:15 +02:00
.gitignore Travis: Cache toolchain 2020-03-08 14:09:08 +01:00
BuildClang.sh Toolchain+Meta: Update LLVM version to 13.0.0 2021-10-17 17:09:58 +01:00
BuildFuseExt2.sh Toolchain: Make BuildFuseExt2.sh shellcheck compliant 2021-05-05 21:26:37 +02:00
BuildIt.sh Everywhere: Change from http to https where feasible 2021-10-05 02:08:08 +02:00
BuildPython.sh Ports: Change Python's auth_type to sha256 2021-08-03 21:01:07 +01:00
BuildQemu.sh Toolchain: Also build aarch64-softmmu in BuildQemu.sh 2021-08-28 21:51:30 +01:00
BuildRuby.sh Ports: Add Ruby 3.0.2 2021-09-24 10:04:47 +02:00
Dockerfile Toolchain: Allow containerized work with Serenity via Docker 2021-06-29 15:56:02 +02:00
README.md Toolchain: Update README to point to the current build instructions 2020-08-15 00:15:20 +02:00

Serenity Toolchain

This directory contains all toolchain related files. E.g. build scripts for the cross compilation toolchain and build toolchain for ports.

This document previously contained outdated build instructions. Click here for the latest build instructions.