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:
parent
28bc3a76d9
commit
bc2ebcadc0
11 changed files with 40 additions and 44 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue