summaryrefslogtreecommitdiff
path: root/Documentation
AgeCommit message (Collapse)Author
2021-08-18Documentation: Update FreeBSD prerequisitesMartin Åberg
FreeBSD comes with Clang as default host compiler and provides GCC in the package system. The commit adds a few dependencies to the pkg command line.
2021-08-15Documentation: Add genext2fs package for BuildInstructionsvdjagilev
2021-08-15Documentation: Amend FAQ about the system being 32-bit onlyAndreas Kling
People still ask about this all the time, so let's keep the question but amend it with the fact that we now have 64-bit support as well.
2021-08-13Documentation: Fix a few typos in the ProcFS Indexing documentLiav A
2021-08-12Kernel: Steer away from heap allocations for ProcFS process dataLiav A
Instead, use more static patterns to acquire that sort of data.
2021-08-12Userland: Fix PATH environment variable orderingJean-Baptiste Boric
2021-08-08Documentation: Add explanation for the Clang-based toolchainDaniel Bertalan
2021-08-04Meta: Automatically enable WHPX when possibleGunnar Beutner
2021-08-04Meta: Auto-detect where QEMU is installed on WindowsGunnar Beutner
2021-08-04Documentation: Add ImageMagick as dependency for macOSJelle Raaijmakers
2021-08-03Documentation: Make docs for CLionConfiguration more understandableMartin Janiczek
2021-07-30Documentation: Remove more potentially harmful Debian adviceThomas Wagenveld
Serenity build tooling autodetects gcc 10 so update-alternatives is not necessary. Also, switching apt repositories on the fly can cause issues with dependencies, package downgrades and leave the system in a broken state.
2021-07-30Documentation: Add BuildProfilingInstructions.mdSam Atkins
After discussing on Discord about how to speed up the build time, I received lots of helpful advice on measuring the build time, but none of it was easily accessible. I thought other people might find it useful, so I've written it down! :^) Thanks goes to @bgianfo and @nico.
2021-07-30Documentation: Update instructions for DebianThomas Wagenveld
Simply adding a 'testing' repo on a Debian stable system is destructive to the system. Add better hints on building Serenity on Debian.
2021-07-29Documentation: Always install e2fsprogs on MacOSJelle Raaijmakers
The `Meta/build-image-qemu.sh` script runs mke2fs in both the FUSE and genext2fs options, so always install e2fsprogs.
2021-07-27Documentation: Add preferred coding style options to CLion configurationLinus Groh
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-14Documentation: Remove '$' character from build instruction commandsKenneth Myhra
This removes the '$' character so that it is easier to copy commands directly from the build instructions and then executing them without first having to remove the '$' character.
2021-07-13Documentation: Make sure Windows have QEMU tools in their WSL2 systemGunnar Beutner
They don't need QEMU to run the VM but they do at least need the QEMU tools to build the image.
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-12Documentation: Shuffle around systems in the build instruction docsGunnar Beutner
The crowd has spoken and it's clear they want... Windows and Arch Linux.
2021-07-12Meta+Documentation: Remove unused -DDEBUG from buildAndrew Kaster
2021-07-10Documentation: Move the QEMU troubleshooting sectionGunnar Beutner
This is no longer relevant for most users because due to an unrelated change to Meta/run.sh the default display backend is now SDL which does not exhibit this problem.
2021-07-10Documentation: Add screenshot for WHPXGunnar Beutner
2021-07-10Documentation+Meta: Automatically add disable_virtio on WindowsGunnar Beutner
2021-07-10Documentation+Meta: Automatically set vmx=off on WindowsGunnar Beutner
2021-07-10Documentation: Remove another redundant chapterGunnar Beutner
Clearly nobody has used this in a while because cpuinfo.c for GCC 11 does not contain the code that's mentioned here.
2021-07-10Documentation: Remove redundant informationGunnar Beutner
These workarounds are already mentioned in the "Hardware acceleration" section.
2021-07-10Documentation: Suggest using x86_64 QEMU on WindowsGunnar Beutner
The x86_64 QEMU binary supports both i386 as well as x86_64 guests. By using the x86_64 binary users won't have to change anything when switching between i386 and x86_64 builds.
2021-07-10Meta: Automatically use WSL paths on WindowsGunnar Beutner
2021-07-10Documentation: Reorganize the build documentationGunnar Beutner
2021-07-09Documentation: Add a package manager section to the FAQnetworkException
People are commonly asking about a package manager in serenity. This patch adds an answer the FAQ, explaining why there is no need for packages as well as different possible ways to add or remove software installed on the system.
2021-07-09Documentation: Added build instructions for Void LinuxYori
2021-07-09Kernel: Stop booting and print if PAE is not supported by the processorLuke
We currently require PAE and not having it causes us to crash. This turns that crash into an error message.
2021-07-07Documentation: Add simple troubleshooting guideLiav A
In this guide, we explain two boot errors that can occur and what can be done to solve them.
2021-07-06Documentation: Document the ConfigureComponents utilityMax Wipfli
This adds documentation for the ConfigureComponents utility to the build instructions.
2021-07-03Documentation: Add git to the list of self-hosted runner requirementsIdan Horowitz
Github-hosted runners have this pre-installed, so our actions script do not install it themselves.
2021-07-03Documentation: Increase recommended amount of RAMGunnar Beutner
The VM won't boot with 32MB because GRUB won't be able to load the kernel which is about 114MB.
2021-07-03Documentation: Update VirtualBox documentation for x86_64Gunnar Beutner
The machine type "Other/Unknown (64-bit)" works for both the x86_64 as well as the i686 build architecture.
2021-07-03Documentation: Add instructions for setting up self-hosted runnersIdan Horowitz
2021-07-03Documentation: Add workaround for blackscreen using WSL+QEMU6.xTristan Menke
This workaround disables the in-kernel interrupt controller. This impacts the VM performance and should probably be removed when the workaround is no longer needed. This workaround was posed by stelar7. See #7523
2021-07-03Documentation: Add notes for first time setup of the project in CLionDiego Garza
Mention the "Open Project Wizard" where you can set the CMake options before making the cache. Remind users to use the "Default" build type and to build the Toolchain so CMake does not complain.
2021-06-29Documentation: Document changes to creating smart pointersDaniel Bertalan
Because of the added complexity of *non-throwing* `new`, helper methods for correctly constructing smart pointers were added in a previous commit. This commit changes the documentation to recommend using these, and adds examples to aid in correctly determining when to use non-throwing new when manually creating smart pointers.
2021-06-18Documentation/WSL: add a workaround for slow emulation on HiDPI screensStéphane Travostino
2021-06-17Meta: Add support for declaring componentsGunnar Beutner
Components are a group of build targets that can be built and installed separately. Whether a component should be built can be configured with CMake arguments: -DBUILD_<NAME>=ON|OFF, where <NAME> is the name of the component (in all caps). Components can be marked as REQUIRED if they're necessary for a minimally functional base system or they can be marked as RECOMMENDED if they're not strictly necessary but are useful for most users. A component can have an optional description which isn't used by the build system but may be useful for a configuration UI. Components specify the TARGETS which should be built when the component is enabled. They can also specify other components which they depend on (with DEPENDS). This also adds the BUILD_EVERYTHING CMake variable which lets the user build all optional components. For now this defaults to ON to make the transition to the components-based build system easier. The list of components is exported as an INI file in the build directory (e.g. Build/i686/components.ini). Fixes #8048.
2021-06-13Documentation: Move Ubuntu/Debian specific build instructionsAdam Hodgen
Ubuntu/Debian specific instructions should live under the Ubuntu/Debian header
2021-06-13Documentation: Fix QEMU 5 Ubuntu version confusionAdam Hodgen
PR #7970 added a line clarifying the requirement for QEMU 5. Unfortunately, this location this line was added changed the meaning of the following line, referencing the availability of GCC in Ubuntu 20.04. QEMU 5 is not available in Ubuntu 20.04, so this change is incorrect, as well as misleading.