On Fri, Apr 15 2022, Carlo Marcelo Arenas Belón wrote: > Fedora 36 is scheduled to be released in Apr 19th, but it includes > a prerelease of gcc 12 that has known issues[1] with our codebase > and therefore requires extra changes to not break a DEVELOPER=1 > build. > > Lock the CI job to the current release image, and while at it rename > the job to better reflect what it is currently doing, instead of its > original objective. The CI job was added in your cebead1ebfb (ci: run a pedantic build as part of the GitHub workflow, 2021-08-08), and later in 6a8cbc41bac (developer: enable pedantic by default, 2021-09-03) we made "pedantic" the default. Is there any point in having this job at all anymore, or is it just a "does it compile on Fedora?" now? Your cebead1ebfb notes that its gcc is ahead of the curve, if that's what we actually want perhaps s/fedora/linux-newer-gcc/ ? I think this change would be much clearer if we first delete the now-redundant pedantic flag, and then later do whatever else that's needed... > [...] > This merges fine to master, maint and next but will need some work to > get into seen. > > Alternatively, the fixes to fix the build could be merged instead, but > it will still require at least one temporary change to disable a flag > as the underlying bug[3] is yet to be addressed in gcc (or somewhere > else in Fedora). I get the same thing on GCC12 on Debian. Wouldn't a much more useful thing be to upgrade to gcc12 anyway, and just set -Wno-error=stringop-overread on gcc12 for dir.(o|s|sp)? Then we'd find any future issues, and blacklist this one known issue... Or just set -O1 under the same condition. > diff --git a/ci/install-docker-dependencies.sh b/ci/install-docker-dependencies.sh > index 78b7e326da6..660e25d1d26 100755 > --- a/ci/install-docker-dependencies.sh > +++ b/ci/install-docker-dependencies.sh > @@ -15,8 +15,8 @@ linux-musl) > apk add --update build-base curl-dev openssl-dev expat-dev gettext \ > pcre2-dev python3 musl-libintl perl-utils ncurses >/dev/null > ;; > -pedantic) > +fedora) > dnf -yq update >/dev/null && > - dnf -yq install make gcc findutils diffutils perl python3 gettext zlib-devel expat-devel openssl-devel curl-devel pcre2-devel >/dev/null > + dnf -yq install make gcc git findutils diffutils perl python3 gettext zlib-devel expat-devel openssl-devel curl-devel pcre2-devel >/dev/null Why do we need to install "git" now, I'd think because we're upgrading, but here we're pinning the old version, what changed? > ;; > esac > diff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh > index 280dda7d285..de0f8d36d7c 100755 > --- a/ci/run-build-and-tests.sh > +++ b/ci/run-build-and-tests.sh > @@ -37,10 +37,9 @@ linux-clang) > linux-sha256) > export GIT_TEST_DEFAULT_HASH=sha256 > ;; > -pedantic) > +fedora) > # Don't run the tests; we only care about whether Git can be > # built. > - export DEVOPTS=pedantic > export MAKE_TARGETS=all > ;; > esac