mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-11 05:25:32 +03:00
Apart from bumping the toolchain Clang's and port's version, this commit completely overhauls the way LLVM toolchain is built. First, it gets rid of a complicated two-stage process of first compiling clang and compiler-rt builtins and then building libunwind, libc++abi, and libc++ -- it is possible to create a complete cross-compilation toolchain in a single CMake invocation with a modern LLVM. Moreover, the old method was inherently unsupported and subtly broken. Next, it utilizes full potential of the Stubs "framework". Now we are even able to compile Clang with -Wl,-z,defs which makes one of the patches obsolete and the whole installation less error-prone. Note that it comes at a cost of complicating the bootstrap process on a completely novel architecture but this hopefully won't happen often. Lastly, it fixes handling of the -no*lib* family of flags in the Serenity LLVM driver and correctly uses -nostartfiles in conjunction with stubs to make necessary CMake configure-time checks succeed. |
||
---|---|---|
.. | ||
CMake | ||
Patches | ||
Stubs | ||
.dockerignore | ||
.gitignore | ||
BuildClang.sh | ||
BuildCMake.sh | ||
BuildFuseExt2.sh | ||
BuildGDB.sh | ||
BuildGN.sh | ||
BuildGNU.sh | ||
BuildMold.sh | ||
BuildPython.sh | ||
BuildQemu.sh | ||
BuildRuby.sh | ||
default.nix | ||
Dockerfile | ||
README.md |
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.