mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-26 01:20:25 +00:00
e88ca09609
With this update, we now use our custom `serenity` Clang target, which means that all system-specific compilation options (e.g. default PIE, header search paths) will be handled automatically. This port has been tested to build `Source/little` on all 4 toolchain-architecture pairs. Furthermore, `lib(std)c++` headers are picked up correctly and our AK headers can be included without any issues. Due to recent kernel fixes related to memory-mapped files, the LLD linker can now be used by default, so there's no need to also build the GCC port alongside this. Although our patches cover building libLLVM as a shared library, this is currently not enabled by default, as DynamicLoader is very slow in dealing with such a large number of relocations. |
||
---|---|---|
.. | ||
build-crt.patch | ||
insert-ifdef-serenity.patch | ||
ReadMe.md | ||
remove-version-script.patch | ||
remove-wstring.patch | ||
toolchain.patch |
Patches for LLVM on SerenityOS
build-crt.patch
This patch lets us use LLVM's crtbegin.o
/crtend.o
implementation.
Status
- Local?
- Should be merged to upstream?
- Resolves issue(s) with our side of things
- Hack
insert-ifdef-serenity.patch
This patch adds several defines in order to omit things not supported by SerenityOS.
Status
- Local?
- Should be merged to upstream?
- Resolves issue(s) with our side of things
- Hack
remove-version-script.patch
Instructs the linker to not build LLVM shared libraries (libclang.so
, libLTO.so
, etc.) with
symbol versioning, which our dynamic linker does not support.
Status
- Local?
- Should be merged to upstream?
- Resolves issue(s) with our side of things
- Hack
remove-wstring.patch
Removes std::wstring
s from the source code, as our libstdc++ does not support it.
Status
- Local?
- Should be merged to upstream?
- Resolves issue(s) with our side of things
- Hack
toolchain.patch
Adds support for the $arch-pc-serenity
target to the Clang front end. This makes the compiler
look for libraries and headers in the right places, and enables some security mitigations, like
stack-smashing protection and building position-independent executables by default.
Status
- Local?
- Should be merged to upstream?
- Resolves issue(s) with our side of things
- Hack