1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 04:47:34 +00:00

Everywhere: Require version >= 12 for GCC host compiler

So far we've gotten away with using GCC 11 for Lagom and to compile the
toolchain, but via #15795 we discovered a compiler bug that has been
fixed in the latest version but would error the build with CI's GCC 11.
Time for an upgrade :^)

We already use ubuntu-22.04 images in most places, so this is pretty
straightforward. The only exception is Idan's self-hosted runner, which
uses Ubuntu Focal. LibJS should build fine with GCC 11, still.
This commit is contained in:
Linus Groh 2022-10-25 20:28:09 +01:00
parent 28bc3a76d9
commit bc2ebcadc0
11 changed files with 40 additions and 44 deletions

View file

@ -11,13 +11,10 @@ sudo apt install build-essential cmake curl libmpfr-dev libmpc-dev libgmp-dev e2
```
Optional: `fuse2fs` for [building images without root](https://github.com/SerenityOS/serenity/pull/11224).
#### GCC 11
#### GCC 12
On Ubuntu gcc-11 is available in the repositories of 21.04 (Hirsuite) and later - add the `ubuntu-toolchain-r/test` PPA if you're running an older version:
```console
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
```
On Ubuntu gcc-12 is available in the repositories of 22.04 (Jammy) and later.
If you are running an older version, you will either need to upgrade, or find an alternative installation source.
Next, update your local package information from this repository:
@ -25,10 +22,10 @@ Next, update your local package information from this repository:
sudo apt update
```
Now on Ubuntu or Debian you can install gcc-11 with apt like this:
Now on Ubuntu or Debian you can install gcc-12 with apt like this:
```console
sudo apt install gcc-11 g++-11
sudo apt install gcc-12 g++-12
```
#### QEMU 6.2 or later

View file

@ -14,20 +14,19 @@ As for recommended requirements, listed below are the specifications of the curr
## Setup
These instructions assume the OS installed is Ubuntu 20.04 (Focal), so they might not be compatible with other Linux flavours.
These instructions assume the OS installed is Ubuntu 22.04 (Jammy), so they might not be compatible with other Linux flavours.
### Install base dependencies
```shell
sudo add-apt-repository ppa:canonical-server/server-backports
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main'
sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-focal-14 main'
apt update
apt install git build-essential make cmake clang-format-14 gcc-11 g++-11 libstdc++-11-dev libgmp-dev ccache libmpfr-dev libmpc-dev ninja-build e2fsprogs qemu-utils qemu-system-i386 wabt
apt install git build-essential make cmake clang-format-14 gcc-12 g++-12 libstdc++-12-dev libgmp-dev ccache libmpfr-dev libmpc-dev ninja-build e2fsprogs qemu-utils qemu-system-i386 wabt
```
### Force usage of GCC 11
### Force usage of GCC 12
```shell
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100 --slave /usr/bin/g++ g++ /usr/bin/g++-11
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 --slave /usr/bin/g++ g++ /usr/bin/g++-12
```
### Create a new user account named 'runner'
```shell

View file

@ -16,9 +16,9 @@ install it. You can also build it using the `Toolchain/BuildQemu.sh` script.
### GCC is missing or is outdated
Ensure your gcc version is >= 11 with `gcc --version`. Otherwise, install it. If your gcc binary is not
Ensure your gcc version is >= 12 with `gcc --version`. Otherwise, install it. If your gcc binary is not
called `gcc` you have to specify the names of your C and C++ compiler when you run cmake, e.g.
`cmake ../.. -GNinja -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11`.
`cmake ../.. -GNinja -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12`.
## Running SerenityOS