serenity/Toolchain/CMake
Dan Klishch fa1eef8bbe Toolchain: Update LLVM to 18.1.3
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.
2024-04-18 13:14:33 -06:00
..
ClangToolchain.txt.in Everywhere: Add RISC-V 64 target to the build system 2023-08-18 08:37:43 -06:00
GNUToolchain.txt.in Everywhere: Add RISC-V 64 target to the build system 2023-08-18 08:37:43 -06:00
LLVMConfig.cmake Toolchain: Update LLVM to 18.1.3 2024-04-18 13:14:33 -06:00
meson-cross-file-Clang.txt.in Meta+Ports: Automatically generate a meson cross file that we can use 2022-07-13 21:22:52 +01:00
meson-cross-file-GNU.txt.in Meta+Ports: Automatically generate a meson cross file that we can use 2022-07-13 21:22:52 +01:00