Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Fix Circle CI build failing #2755

Merged
merged 4 commits into from
Apr 28, 2024

chore: Fix -Werror=maybe-uninitialized in a test

102a1fa
Select commit
Loading
Failed to load commit list.
Merged

chore: Fix Circle CI build failing #2755

chore: Fix -Werror=maybe-uninitialized in a test
102a1fa
Select commit
Loading
Failed to load commit list.
Mergeable / Mergeable succeeded Apr 27, 2024 in 2s

3 checks passed!

Status: PASS

Details

✔️ Validator: TITLE

  • ✔️ All the requisite validations passed for 'or' option
    Input : chore: Fix Circle CI build failing
    Settings : {"or":[{"must_include":{"regex":"^(feat|docs|chore|cleanup|fix|refactor|test|style|perf)(\\(\\w+\\))?:\\ .+$","message":"Semantic release conventions must be followed."}},{"must_include":{"regex":"^Bump [^ ]* from [^ ]* to [^ ]*$","message":"Dependabot PRs are exempt from semantic release conventions."}}]}

✔️ Validator: COMMIT

  • ✔️ Your commit messages met the specified criteria
    Input : chore: Fix Circle CI failing on a missing clang lib

The ubsan build fails due to the missing
/usr/lib/llvm-18/lib/clang/18/lib/linux/libclang_rt.ubsan_standalone-x86_64.a
which is provided by the libclang-rt-18-dev package, which would be
installed if we didn't disallow recommends.

Installing it manually is not practical, as using libclang-rt-18-dev
once clang updates to version 19 would be wrong, and installing
libclang-rt-*-dev would attempt to install all of them, either failing
or installing all of the clang version available along with them. Thus
allowing apt to automatically install recommended packages seems like
best solution.,chore: Disable -Wswitch-default and -Wunsafe-buffer-usage,chore: Fix cpplint failing to install,chore: Fix -Werror=maybe-uninitialized in a test
Settings : {"do":"commit","message":{"regex":"^((feat|docs|chore|cleanup|fix|refactor|test|style|perf)(\\(\\w+\\))?:\\ .+|Bump [^ ]* from [^ ]* to [^ ]*)","message":"Semantic release conventions must be followed."}}

✔️ Validator: DESCRIPTION

  • ✔️ description must exclude '\[ \]'
    Input : Circle CI's image got updated to use Ubuntu 24.04 (Noble Numbat), which:
  • Changed a bit how clang is packaged -- libclang_rt.ubsan_standalone-x86_64.a is no longer getting installed
  • Includes a newer clang with more enabled warnings in one the umbrella flags like -Weverything, -Wall, etc., like -Wswitch-default and -Wunsafe-buffer-usage:
    • We actually do not want a default in our switches, we want to explicitly handle every case and get warned when we don't, so -Wswitch-default should be disables

    • -Wunsafe-buffer-usage seems to be broken, it warns on things that are perfectly ok, like doing foo[1] = 0; where uint32_t foo[4];, e.g.

      warning:

      /root/work/toxcore/network.c:966:9: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage]
        966 |         ip6.uint32[1] = 0;
            |         ^~~~~~~~~~

      on:

      ip6.uint32[1] = 0;

      where uint32 is:

      uint32_t uint32[4];


This change is Reviewable

Settings : {"must_exclude":{"regex":"\\\\[ \\\\]","message":"There are incomplete TODO task(s) unchecked."}}