ladybird/Documentation/Troubleshooting.md
2024-06-03 10:53:53 +02:00

1.9 KiB

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.

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:

[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