From bb5510ff49f8feb60641bd9722c212aa725d24f9 Mon Sep 17 00:00:00 2001 From: Emil Ohlsson Date: Wed, 22 Jan 2025 14:06:42 +0100 Subject: [PATCH 1/2] Remove `-Werror` as required flag Downstream projects might not build with same toolchain, which might trigger warnings. Instead of treating these warnings as errors, using this patch they are only warnings. Also, add `-Werror` to the build flags to our testing pipeline, because we do not want to accidentally introduce new warnings by mistake Signed-off-by: Emil Ohlsson --- .gitlab-ci.yml | 22 +++++++++++----------- CMakeLists.txt | 1 - kai_defs.bzl | 1 - 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c0b90fc4..d15f4e81 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -38,8 +38,8 @@ build-clang: - .standard-rules stage: build script: - - cmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DKLEIDIAI_BUILD_TESTS=ON -S . -B ${CI_JOB_NAME_SLUG} - - cmake --build ${CI_JOB_NAME_SLUG} -j$(nproc) + - cmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_C_FLAGS="-Werror" -DCMAKE_BUILD_TYPE=Release -DKLEIDIAI_BUILD_TESTS=ON -S . -B ${CI_JOB_NAME_SLUG} + - cmake --build ${CI_JOB_NAME_SLUG} -j$(nproc) --verbose artifacts: expire_in: 1 day paths: @@ -50,8 +50,8 @@ build-clang-cov: - .standard-rules stage: build script: - - cmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DKLEIDIAI_BUILD_TESTS=ON -DCMAKE_C_FLAGS="--coverage" -DCMAKE_CXX_FLAGS="--coverage" -S . -B build - - cmake --build ./build -j$(nproc) + - cmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_C_FLAGS="-Werror" -DCMAKE_BUILD_TYPE=Release -DKLEIDIAI_BUILD_TESTS=ON -DCMAKE_C_FLAGS="--coverage" -DCMAKE_CXX_FLAGS="--coverage" -S . -B build + - cmake --build ./build -j$(nproc) --verbose # save coverage build job path for later use since coverage processing requires files in exactly same location - echo "COVERAGE_PROJECT_PATH=${PWD}" > build/coverage_path.env artifacts: @@ -66,8 +66,8 @@ build-gcc: - .standard-rules stage: build script: - - cmake -G Ninja -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -DKLEIDIAI_BUILD_TESTS=ON -S . -B ${CI_JOB_NAME_SLUG} - - cmake --build ${CI_JOB_NAME_SLUG} -j$(nproc) + - cmake -G Ninja -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_C_FLAGS="-Werror" -DCMAKE_BUILD_TYPE=Release -DKLEIDIAI_BUILD_TESTS=ON -S . -B ${CI_JOB_NAME_SLUG} + - cmake --build ${CI_JOB_NAME_SLUG} -j$(nproc) --verbose artifacts: expire_in: 1 day paths: @@ -83,7 +83,7 @@ build-gcc-bazel: - /cache/bazelisk script: - bazelisk clean --expunge - - bazelisk build -c opt --jobs=HOST_CPUS -k --verbose_failures --curses=no //... + - bazelisk build -c opt --copt="-Werror" --cxxopt="-Werror" --jobs=HOST_CPUS -k --subcommands --verbose_failures --curses=no //... - mkdir -p ${CI_JOB_NAME_SLUG} && cp bazel-bin/test/kleidiai_test ${CI_JOB_NAME_SLUG}/ artifacts: expire_in: 1 day @@ -101,7 +101,7 @@ build-clang-bazel: script: - bazelisk clean --expunge # explicitly disable layering_check feature - - CC=clang bazelisk build -c opt --jobs=HOST_CPUS -k --verbose_failures --compiler=clang --features=no-layering_check --curses=no //... + - CC=clang bazelisk build -c opt --copt="-Werror" --cxxopt="-Werror" --jobs=HOST_CPUS -k --subcommands --verbose_failures --compiler=clang --features=no-layering_check --curses=no //... - mkdir -p ${CI_JOB_NAME_SLUG} && cp bazel-bin/test/kleidiai_test ${CI_JOB_NAME_SLUG}/ artifacts: expire_in: 1 day @@ -121,8 +121,8 @@ build-examples: echo "Build examples/${EXAMPLE}" echo "-----------------------------------------------------------" mkdir -p build_${EXAMPLE} - cmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -S examples/$EXAMPLE -B build_${EXAMPLE} - cmake --build build_${EXAMPLE} -j$(nproc) + cmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_C_FLAGS="-Werror" -DCMAKE_BUILD_TYPE=Release -S examples/$EXAMPLE -B build_${EXAMPLE} + cmake --build build_${EXAMPLE} -j$(nproc) --verbose cp build_${EXAMPLE}/${EXAMPLE} build/ else echo "No build file found for ${EXAMPLE}" @@ -159,7 +159,7 @@ test-clang-tidy: stage: test needs: [] script: - - cmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DKLEIDIAI_BUILD_TESTS=ON -DKLEIDIAI_BUILD_BENCHMARK=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -B build/${CI_JOB_NAME_SLUG} + - cmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS="-Werror" -DCMAKE_C_FLAGS="-Werror" -DCMAKE_BUILD_TYPE=Release -DKLEIDIAI_BUILD_TESTS=ON -DKLEIDIAI_BUILD_BENCHMARK=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -B build/${CI_JOB_NAME_SLUG} # Only test the main library. # Only test C/C++ files. - > diff --git a/CMakeLists.txt b/CMakeLists.txt index fe4f7fae..074bc1d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,7 +43,6 @@ else() set(KLEIDIAI_WARNING_FLAGS_BASE "-Wall" "-Wdisabled-optimization" - "-Werror" "-Wextra" "-Wformat-security" "-Wformat=2" diff --git a/kai_defs.bzl b/kai_defs.bzl index 3848ba2b..79bfd24f 100644 --- a/kai_defs.bzl +++ b/kai_defs.bzl @@ -17,7 +17,6 @@ def kai_gcc_warn_copts(): return [ "-Wall", "-Wdisabled-optimization", - "-Werror", "-Wextra", "-Wformat-security", "-Wformat=2", -- GitLab From 57eec081fa5d6d0f27b82a0119e3f8b1eb1c558e Mon Sep 17 00:00:00 2001 From: Emil Ohlsson Date: Thu, 23 Jan 2025 13:03:03 +0100 Subject: [PATCH 2/2] Update changelog Signed-off-by: Emil Ohlsson --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 156698ad..b7055bf8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ KleidiAI follows the [Semantic Versioning](https://semver.org/) specification fo - Fixes: - Fix compilation warnings detected by `-Wcast-qual -Wmissing-prototypes -Wstrict-prototypes -Woverlength-strings` compiler options. - Support compiling the project with the above compilation options enabled. + - Remove `-Werror` from default build flags as to not cause integration problems ## v1.2.0 -- GitLab