mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 17:10:23 +00:00
60 lines
1.9 KiB
Markdown
60 lines
1.9 KiB
Markdown
# Troubleshooting
|
|
|
|
In case of an error, you might find an answer of how to deal it here.
|
|
|
|
## Building Ladybird
|
|
|
|
### CMake fails to configure the build because it's outdated
|
|
|
|
Ensure your CMake version is >= 3.16 with `cmake --version`. If your system doesn't provide a suitable
|
|
version of CMake, you can download a binary release from the [CMake website](https://cmake.org/download).
|
|
|
|
### The toolchain is outdated
|
|
|
|
We strive to use the latest compilers and build tools to ensure the best developer experience; so every
|
|
few months, the toolchain needs to be updated. When such an update is due, an error like the following
|
|
will be printed during the build:
|
|
|
|
```
|
|
CMake Error at CMakeLists.txt:28 (message):
|
|
GNU version (13.1.0) does not match expected compiler version (13.2.0).
|
|
|
|
Please rebuild the GNU Toolchain
|
|
```
|
|
|
|
Or like this one:
|
|
|
|
```
|
|
Your toolchain has an old version of binutils installed.
|
|
installed version: "GNU ld (GNU Binutils) 2.40"
|
|
expected version: "GNU ld (GNU Binutils) 2.41"
|
|
Please run Meta/serenity.sh rebuild-toolchain x86_64 to update it.
|
|
```
|
|
|
|
Run `Meta/serenity.sh rebuild-toolchain x86_64` to perform the update.
|
|
|
|
CMake might cache the compiler version in some cases and print an error even after the toolchain has been rebuilt.
|
|
If this happens, run `Meta/serenity.sh rebuild x86_64` to start over from a fresh build directory.
|
|
|
|
### GCC is missing or is outdated
|
|
|
|
Ensure your gcc version is >= 13 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-13 -DCMAKE_CXX_COMPILER=g++-13`.
|
|
|
|
### Legacy renegotiation is disabled
|
|
|
|
Ensure your `/etc/ssl/openssl.cnf` file has the following options:
|
|
|
|
```console
|
|
[openssl_init]
|
|
ssl_conf = ssl_sect
|
|
|
|
[ssl_sect]
|
|
system_default = system_default_sect
|
|
|
|
[system_default_sect]
|
|
MinProtocol = TLSv1.2
|
|
CipherString = DEFAULT@SECLEVEL=1
|
|
Options = UnsafeLegacyRenegotiation
|
|
```
|