summaryrefslogtreecommitdiff
path: root/Documentation/AdvancedBuildInstructions.md
AgeCommit message (Collapse)Author
2023-03-13Documentation: Update VS Code docs for tone, add query-driver directionsAndrew Kaster
2023-03-10Documentation: Reorganize Lagom README and update fuzzer documentationAndrew Kaster
Add some prose to the introduction of Lagom about how we use it. Also, move the section on including Lagom in other projects above the fuzzer documentation. Remove the explicit cmake commands from the Fuzzer documentation, as the script should be the source of truth.
2022-12-28Documentation: Remove i686 supportLiav A
2022-12-27Documentation: Fix a few typosNico Weber
2022-12-10Documentation: Describe extra clang tools built alongside BuildClang.shAndrew Kaster
Also rephrase some of the information on updated clang-format binaries
2022-12-05Documentation: Fix typo in AdvancedBuildInstructions.mdAgustin Gianni
Fixes a small typo where the word `are` was missing.
2022-12-04Meta: Update all references of clang-format-14 to clang-format-15Liav A
Also, we add a section that describes how to get an updated clang-format with multiple possible options to do that.
2022-09-02Meta+Tests: Allow running FLAC spec testskleines Filmröllchen
The FLAC "spec tests", or rather the test suite by xiph that exercises weird FLAC features and edge cases, can be found at https://github.com/ietf-wg-cellar/flac-test-files and is a good challenge for our FLAC decoder to become more spec compliant. Running these tests is similar to LibWasm spec tests, you need to pass INCLUDE_FLAC_SPEC_TESTS to CMake. As of integrating these tests, 23 out of 63 fail. :yakplus:
2022-05-23Meta+Userland: Add jakt as an optional Lagom ToolAndrew Kaster
We can now use ENABLE_JAKT to pull jakt as a host tool and use it to pre-process .jakt files into .cpp files for use in serenity applications
2022-05-21Meta: Add option to disable Kernel Address SanitizerTimon Kruiper
By default we enable the Kernel Undefined Behavior Sanitizer, which checks for undefined behavior at runtime. However, sometimes a developer might want to turn that off, so now there is a easy way to do that.
2022-05-02Meta+Userland: Add ENABLE_USERSPACE_COVERAGE_COLLECTION CMake optionAndrew Kaster
This option sets -fprofile-instr-generate -fcoverage-mapping for Clang builds only on almost all of Userland. Loader and LibTimeZone are exempt. This can be used for generating code coverage reports, or even PGO in the future.
2022-03-31CMake: Allow building fuzzing targets without libFuzzer or OSS-FuzzTim Schumacher
2022-03-31Meta: Rename Fuzzer flags to `ENABLE_FUZZERS_{LIBFUZZER,OSSFUZZ}`Tim Schumacher
2022-02-14Documentation: Add information about the limine-image targetczapek1337
2022-02-03Documentation: Update reference to obsolete config optionRummskartoffel
2022-01-24Toolchain: Add support for building the userland with the mold linkerDaniel Bertalan
This commit adds support for building the SerenityOS userland with the new [mold linker]. This is not enabled by default yet; to link using mold, run the `Toolchain/BuildMold.sh` script to build the latest release of mold, and set the `ENABLE_MOLD_LINKER` CMake variable to ON. This option relies on toolchain support that has been added just recently, so you might need to rebuild your toolchain for mold to work. [mold linker]: https://github.com/rui314/mold
2021-12-22Meta: Add a cmake flag for building for compiler explorerAli Mohammad Pur
We don't need to build tests/binaries for CE.
2021-12-16Kernel: Build with -O2 by defaultAndreas Kling
We used to build with -Os in order to fit within a certain size, but there isn't really a good reason for that kind of restriction. Switching to -O2 yields a significant improvement in throughput, for example `test-js` is roughly 20% faster on my machine. :^)
2021-12-02Documentation: Update instructions for using the Clang toolchainSam Atkins
The note that `Meta/serenity.sh` is incompatible with Clang is no longer true.
2021-09-27Documentation: Add build file copy instructionEdward Palmer
2021-09-15Documentation: Document new SuperBuild build infrastructureAndrew Kaster
Add additional clarification for the CMake cache, and add missing extra targets as well.
2021-08-08Documentation: Add explanation for the Clang-based toolchainDaniel Bertalan
2021-07-26Kernel: Add option to build with coverage instrumentation and KCOVPatrick Meyer
GCC and Clang allow us to inject a call to a function named __sanitizer_cov_trace_pc on every edge. This function has to be defined by us. By noting down the caller in that function we can trace the code we have encountered during execution. Such information is used by coverage guided fuzzers like AFL and LibFuzzer to determine if a new input resulted in a new code path. This makes fuzzing much more effective. Additionally this adds a basic KCOV implementation. KCOV is an API that allows user space to request the kernel to start collecting coverage information for a given user space thread. Furthermore KCOV then exposes the collected program counters to user space via a BlockDevice which can be mmaped from user space. This work is required to add effective support for fuzzing SerenityOS to the Syzkaller syscall fuzzer. :^) :^)
2021-07-12Meta+CI: Use wabt version 1.0.23 for all CI jobsAndrew Kaster
The WASM spec tests caused a stack overflow when generated with wat2wasm version 1.0.23, which ships with homebrew. To give feature parity, manually download the same version from GitHub packages for Ubuntu. Document the dependencies of the WASM spec tests option, as well.
2021-07-12Documentation: Condense the Windows build instructions some moreGunnar Beutner
2021-07-12Documentation: Remove obsolete CMake optionGunnar Beutner
2021-07-12Documentation: Show users how to build specific ninja targets directlyGunnar Beutner
2021-07-10Documentation: Reorganize the build documentationGunnar Beutner