Skip to content

Commit 89c6555

Browse files
ADKasterspholz
authored andcommitted
Documentation: Promote aarch64 to more supported in the docs
1 parent ee89146 commit 89c6555

File tree

4 files changed

+20
-14
lines changed

4 files changed

+20
-14
lines changed

Documentation/AdvancedBuildInstructions.md

+13-1
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,23 @@ cp /somewhere/on/your/system/file.txt mnt/home/anon
2222

2323
This will configure your keymap to German (`de`) instead of US English. See [`Base/res/keymaps/`](../Base/res/keymaps/) for a full list. Note that the `keymap` program itself will also modify the `/etc/Keyboard.ini` config file, but this way the change will persist across image rebuilds.
2424

25+
## Selecting an architecture
26+
27+
By default, the build script will build for the architecture of your host system.
28+
If you want to build for a different architecture, you can specify it with the `SERENITY_ARCH` environment variable.
29+
For example, force a build build for `aarch64`, you can run:
30+
31+
```sh
32+
SERENITY_ARCH=aarch64 Meta/serenity.sh run
33+
```
34+
35+
Supported values for `SERENITY_ARCH` are `x86_64`, `aarch64`, and `riscv64`.
36+
2537
## Ninja build targets
2638

2739
The `Meta/serenity.sh` script provides an abstraction over the build targets which are made available by CMake. The
2840
following build targets cannot be accessed through the script and have to be used directly by changing the current
29-
directory to `Build/x86_64` and then running `ninja <target>`:
41+
directory to `Build/<architecture>` and then running `ninja <target>`:
3042

3143
- `ninja limine-image`: Builds a disk image (`limine_disk_image`) with Limine
3244
- `ninja grub-image`: Builds a disk image (`grub_disk_image`) with GRUB

Documentation/BuildInstructions.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,9 @@ Run the following command to build and run SerenityOS:
109109
Meta/serenity.sh run
110110
```
111111

112-
This will compile all of SerenityOS and install the built files into the `Build/x86_64/Root` directory inside your Git
113-
repository. It will also build a disk image and start SerenityOS using QEMU.
112+
This will compile all of SerenityOS and install the built files into the `Build/<architecture>/Root` directory inside your Git
113+
repository. It will also build a disk image and start SerenityOS using QEMU. The chosen architecture defaults to
114+
your host architecture. Supported architectures are x86_64, aarch64 and riscv64.
114115

115116
The first time this command is executed, it will also download some required database files from the internet and build
116117
the SerenityOS cross-compiler toolchain. These steps only have to be done once, so the next build will go much faster.

Documentation/BuildInstructionsMacOS.md

+2-9
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,8 @@ brew install gcc@13
3838

3939
# Notes
4040

41-
You can use both Intel and Apple Silicon Macs to run the x86-64 version of SerenityOS. You do not
42-
need to install Rosetta for this. An emulator is used when running on an Apple Silicon, so Serenity
43-
will be slower compared to running natively with hardware-assisted virtualization on an Intel machine.
44-
45-
If you're building on M1 Mac and have Homebrew installed in both Rosetta and native environments,
46-
you have to make sure that required packages are installed only in one of the environments. Otherwise,
47-
these installations can conflict during the build process, which is manifested in hard to diagnose issues.
48-
Building on M1 natively without Rosetta is recommended, as the build process should be faster without Rosetta
49-
overhead.
41+
You can use both Intel and Apple Silicon Macs to run a native architecture version of SerenityOS.
42+
If Rosetta 2 is installed on an Apple Silicon Mac, it should be disabled in order to build the native aarch64 version.
5043

5144
Installing macfuse for the first time requires enabling its system extension in System Preferences and then restarting your machine. The output from installing macfuse with brew says this, but it's easy to miss.
5245

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SerenityOS
22

3-
Graphical Unix-like operating system for x86-64 computers.
3+
Graphical Unix-like operating system for x86-64 and aarch64 computers.
44

55
[![GitHub Actions Status](https://github.com/SerenityOS/serenity/workflows/Build,%20lint,%20and%20test/badge.svg)](https://github.com/SerenityOS/serenity/actions?query=workflow%3A"Build%2C%20lint%2C%20and%20test")
66
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/serenity.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:serenity)
@@ -26,7 +26,7 @@ You can watch videos of the system being developed on YouTube:
2626

2727
## Features
2828

29-
- Modern x86 64-bit kernel with pre-emptive multi-threading
29+
- Modern 64-bit kernel with pre-emptive multi-threading
3030
- [Browser](Userland/Applications/Browser/) with JavaScript, WebAssembly, and more (check the spec compliance for [JS](https://serenityos.github.io/libjs-website/test262/), [CSS](https://css.tobyase.de/), and [Wasm](https://serenityos.github.io/libjs-website/wasm/))
3131
- Security features (hardware protections, limited userland capabilities, W^X memory, `pledge` & `unveil`, (K)ASLR, OOM-resistance, web-content isolation, state-of-the-art TLS algorithms, ...)
3232
- [System services](Userland/Services/) (WindowServer, LoginServer, AudioServer, WebServer, RequestServer, CrashServer, ...) and modern IPC

0 commit comments

Comments
 (0)