From f51620327a70a3ca7f8774931af1a48665ae5b0d Mon Sep 17 00:00:00 2001 From: lwthiker Date: Fri, 20 May 2022 17:46:56 +0300 Subject: [PATCH] Add compiler flags necessary to build on Fedora * Add compiler flags to the boringssl build step to suppress gcc errors raised when compiling with gcc 12+, which is present in Fedora. It is not clear whether this is a compiler bug or a boringssl bug, however the errors only appear when building in release mode and with gcc 12, so I don't see any problem with manually supressing them. * Add documentation for building on Fedora. --- INSTALL.md | 3 ++- Makefile.in | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 71d1cc2..88c56fa 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -69,7 +69,8 @@ curl-impersonate-chrome https://www.wikipedia.org Install dependencies: ``` yum groupinstall "Development Tools" -yum install cmake cmake3 python3 python3-pip +yum groupinstall "C Development Tools and Libraries" # Fedora only +yum install cmake3 python3 python3-pip # Install Ninja. This may depend on your system. yum install ninja-build # OR diff --git a/Makefile.in b/Makefile.in index 29b17cf..dcf3863 100644 --- a/Makefile.in +++ b/Makefile.in @@ -184,7 +184,13 @@ boringssl/.patched: $(srcdir)/chrome/patches/boringssl-*.patch $(boringssl_static_libs): boringssl.zip boringssl/.patched mkdir -p $(boringssl_install_dir) cd $(boringssl_install_dir) - @cmake@ -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=on -GNinja .. + # The extra CMAKE_C_FLAGS are needed because otherwise boringssl fails to + # compile in release mode on some systems with gcc 12 (e.g. Fedora). + @cmake@ -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_POSITION_INDEPENDENT_CODE=on \ + -DCMAKE_C_FLAGS="-Wno-stringop-overflow -Wno-array-bounds" \ + -GNinja \ + .. @ninja@ # Fix the directory structure so that curl can compile against it. # See https://everything.curl.dev/source/build/tls/boringssl