On Thu, Apr 21 2022, Junio C Hamano wrote: > Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > >> Fix a regression in 707d2f2fe86 (CI: use "$runs_on_pool", not >> "$jobname" to select packages & config, 2021-11-23). >> >> In that commit I changed CC=gcc from CC=gcc-9, but on OSX the "gcc" in >> $PATH points to clang, we need to use gcc-9 instead. Likewise for the >> linux-gcc job CC=gcc-8 was changed to the implicit CC=gcc, which would >> select GCC 9.4.0 instead of GCC 8.4.0. > > Thanks for diagnosing how things were broken. > >> On Thu, Apr 21 2022, Phillip Wood wrote: >> >>> CC is set in .github/workflows/main.yaml for the ubuntu and macos jobs >>> so I think they will not fallback to using CC_PACKAGE and therefore >>> not pick up the correct compiler. >> ... >> diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml >> index c35200defb9..f12819a00d7 100644 >> --- a/.github/workflows/main.yml >> +++ b/.github/workflows/main.yml >> @@ -236,7 +236,6 @@ jobs: >> - jobname: linux-TEST-vars >> cc: gcc >> os: ubuntu >> - cc_package: gcc-8 >> pool: ubuntu-latest >> - jobname: osx-clang >> cc: clang >> diff --git a/ci/lib.sh b/ci/lib.sh >> index cbc2f8f1caa..86e37da9bc5 100755 >> --- a/ci/lib.sh >> +++ b/ci/lib.sh >> @@ -122,7 +122,7 @@ then >> test macos != "$CI_OS_NAME" || CI_OS_NAME=osx >> CI_REPO_SLUG="$GITHUB_REPOSITORY" >> CI_JOB_ID="$GITHUB_RUN_ID" >> - CC="${CC:-gcc}" >> + CC="${CC_PACKAGE:-${CC:-gcc}}" >> DONT_SKIP_TAGS=t >> >> cache_dir="$HOME/none" > > OK, so we favor CC_PACKAGE (from the matrix.vector.cc_package) if > set, and then cc (again, from the matrix.vector.cc) if set, and then > finally use "gcc" as a fallback. In the osx-gcc job, cc_package is > set to gcc-9 while in the osx-clang, cc is gcc that confusingly calls > for clang. That sounds like it would do the right thing for two > macs. Yes. > For other jobs with different settings for cc and cc_package, does > this have any effect? I do not think I saw any mention in the > proposed log message. > > vector.cc vector.cc_package old new > linux-clang clang - clang clang > linux-sha256 clang - clang clang > linux-gcc gcc gcc-8 gcc gcc-8 > osx-clang clang - clang clang > osx-gcc gcc gcc-9 clang gcc-9 > linux-gcc-default gcc - gcc gcc > > So, linux-gcc job used to use whichever "gcc" the platform gave us, > but now it explicitly asks for gcc-8, which may or may not be > different from what linux-gcc-default uses, and there is no other > difference by this change. We may get a better test coverage (if > the default gcc is not gcc-8) or no improvement (if the default is > gcc-8), so it is a strict improvement worth recording as an intended > side effect in the proposed log message to help future developers. > > Other than that, looks good to me. I'm happy to rephrase it however you'd like, but I'm a bit confused by the "saw any mention in the proposed log message". I'm fairly sure paragraph 2 onwards covers this, i.e. how linux-gcc's behavior is changed (as it also regressed). What I suppose is left undiscussed is that jobs that don't define CC_PACKAGE at all won't be impacted, is that what you wanted to be explicitly mentioned?