0001-clang-Add-support-for-Minerva.patchAdd support for Minerva
Adds support for the $arch-pc-minerva 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 position-independent code by default.
Co-authored-by: kleines Filmröllchen filmroellchen@serenityos.org Co-authored-by: Andrew Kaster akaster@serenityos.org Co-authored-by: Daniel Bertalan dani@danielbertalan.dev Co-authored-by: Dan Klishch danilklishch@gmail.com
0002-llvm-Add-support-for-building-LLVM-on-Minerva.patchAdd support for building LLVM on Minerva
Adds Minerva #ifdefs for platform-specific code.
We stub out wait4, as Minerva doesn't support querying a child process's resource usage information.
POSIX shm is not supported by Minerva yet, so disable it in Orc.
Minerva gives each thread a default of 1MiB of stack. Increase the default stack size for llvm applications when running on Minerva.
0003-tools-Support-building-shared-libLLVM-and-libClang-f.patchSupport building shared libLLVM and libClang for Minerva
This patch tells CMake that the --whole-archive linker option should be used for specifying the archives whose members will constitute these shared libraries.
Symbol versioning is disabled, as the Minerva loader doesn't support it, and the ELF sections that store version data would just waste space.
0004-compiler-rt-Enable-profile-instrumentation-for-Seren.patchEnable profile instrumentation for Minerva
Treat Minerva the same as other *NIX platforms that behave close enough to linux to use the pre-canned InstrProfiling implementation.
0005-libcxx-Add-support-for-Minerva.patchAdd support for Minerva
This commit teaches libc++ about what features are available in our LibC, namely:
ELAST macro.0006-RISCV-Implement-__init_riscv_feature_bits-for-Sereni.patchImplement __init_riscv_feature_bits for Minerva
The Minerva dynamic linker provides a magic function "get_riscv_feature_bits" that populates riscv_feature_bits and __riscv_cpu_model.