| Age | Commit message (Collapse) | Author | Files | Lines | |
|---|---|---|---|---|---|
| 2 days | build/x86_64: add missing -ffreestanding flagHEADdevelop | Felix Morgner | 1 | -0/+1 | |
| Enable the '-ffreestanding' flag in the x86_64 toolchain file to inform the compiler about the fact that it cannot rely on the presence of a standard library implementation, thereby suppressing some optimizations designed for regular user applications. GCC supports a number of clever optimizations, some of which rely on the presence of a standard library. One of them is "-ftree-loop-distribute-patterns". This optimization performs detection of certain loop patterns, replacing them with library calls when applicable. This is problematic for cases in which we implement the standard library functionality. Consider, a schematic, `memset``: ```c++ void memset(void * d, int v, size_t n) { for(auto i = 0uz; i < n: ++i) { d[i] = static_cast<std::byte>(v); } } ``` GCC recognizes this loop, and similar versions of it, as an implementation of `memset`. In a hosted implementation, this is an important optimization, since a standard library may be able to provide a specifically optimized version of `memset``. So the compiler replaces this `memset` loop with a call to `memset`, since it is not aware of the fact we are currently implementing `memset`. Interestingly, tail recursion optimization eliminates the call, transforming it into a jump to the start of `memset`. This leads to execution getting stuck inside `memset` with no way of exiting and no stack usage increase, thus causing an infinite lockup. While we could suppress the specific optimization, it is more effective to tell the compiler "why" it can emit a call to memset in those cases. | |||||
| 10 days | build: enable coverage in release test builds | Felix Morgner | 1 | -3/+3 | |
| 2026-09-04 | build: clean up available build types | Felix Morgner | 1 | -7/+4 | |
| 2026-08-29 | build: improve test failure reporting in CI | Felix Morgner | 1 | -0/+1 | |
| 2026-08-20 | build: upgrade to Catch2 3.15.3 | Felix Morgner | 1 | -0/+2 | |
| 2026-08-20 | build: improve linting exclusions for tests | Felix Morgner | 1 | -0/+8 | |
| 2026-07-26 | build: separate normal from stress tests | Felix Morgner | 1 | -10/+41 | |
| 2026-07-26 | kapi/devices: implement locking discipline | Felix Morgner | 1 | -0/+1 | |
| 2026-07-09 | cmake: extract test target creation | Felix Morgner | 1 | -0/+35 | |
| 2026-05-01 | ci: clean up coverage setup | Felix Morgner | 1 | -5/+5 | |
| 2026-04-11 | fix build when modules folder is missing | Lukas Oesch | 1 | -1/+9 | |
| 2026-03-23 | ci: enable test builds | Felix Morgner | 1 | -0/+9 | |
| 2026-03-17 | Copy modules to isofs folder | marcel.braun | 1 | -9/+0 | |
| 2026-03-17 | Save WIP | marcel.braun | 1 | -0/+12 | |
| 2025-12-15 | build: move kernel build configuration | Felix Morgner | 1 | -1/+1 | |
| 2025-10-30 | libs: begin ELF support implementation | Felix Morgner | 1 | -1/+1 | |
| 2025-10-29 | chore: configure clang-tidy | Felix Morgner | 1 | -0/+1 | |
| 2025-10-28 | build: simplify toolchain setup | Felix Morgner | 1 | -7/+9 | |
| 2025-07-24 | build: clean up x86_64 toolchain | Felix Morgner | 1 | -12/+2 | |
| 2025-07-24 | x86_64: implement high/low split | Felix Morgner | 1 | -20/+4 | |
| 2025-07-23 | build: fix iso generation dependencies | Felix Morgner | 1 | -1/+1 | |
| 2025-07-14 | cmake: introduce ELF utility module | Felix Morgner | 1 | -0/+36 | |
| 2025-07-14 | build: reintroduce bootable ISO | Felix Morgner | 1 | -0/+22 | |
| 2025-07-14 | ide: start large-scale restructuring | Felix Morgner | 1 | -1/+0 | |
| 2025-07-14 | build: upgrade x86-64 toolchain | Felix Morgner | 1 | -24/+54 | |
| 2025-07-13 | build: update toolchain | Felix Morgner | 1 | -4/+4 | |
| 2024-11-19 | build: disable RTTI | Felix Morgner | 1 | -1/+1 | |
| When using virtual functions while RTTI is enabled, the compiler generates code to support the use of dynamic_cast etc. This code requires the use of the free store (heap) which is not yet available. Disabling RTTI also disables the generation of the associated support code, thus making it possible for us to use virtual functions. | |||||
| 2024-09-17 | build: user no-red-zone CRT code | Felix Morgner | 1 | -1/+1 | |
| Even though it makes no difference, since the CRT code we pull in from the toolchain will never touch the red zone in the first place, it is a good idea to try to be consistent across the build. | |||||
| 2024-09-17 | build: migrate away from conan | Felix Morgner | 3 | -0/+55 | |
| 2023-10-07 | cmake: move modules to source | Felix Morgner | 1 | -23/+0 | |
| 2023-10-07 | x86_64: implement first bootable kernel | felix.morgner@ost.ch | 1 | -0/+23 | |
