On 2019-11-27 17:48:20+0100, SZEDER Gábor <szeder.dev@xxxxxxxxx> wrote: > On Wed, Nov 27, 2019 at 11:15:55PM +0700, Doan Tran Cong Danh wrote: > > Travis CI has continously updated their images, including updating gcc > > installation. > > > > Save us some headache by checking which version of gcc is installed in > > the image, and use said version to run the build. > > > > While gcc-10 hasn't been released, yet, add it to the list to save us > > some headache in the future. > > > > Signed-off-by: Doan Tran Cong Danh <congdanhqx@xxxxxxxxx> > > --- > > ci/lib.sh | 24 ++++++++++++++---------- > > 1 file changed, 14 insertions(+), 10 deletions(-) > > > > diff --git a/ci/lib.sh b/ci/lib.sh > > index c8c2c38155..4040fc1a22 100755 > > --- a/ci/lib.sh > > +++ b/ci/lib.sh > > @@ -159,12 +159,21 @@ export DEFAULT_TEST_TARGET=prove > > export GIT_TEST_CLONE_2GB=YesPlease > > > > case "$jobname" in > > -linux-clang|linux-gcc) > > - if [ "$jobname" = linux-gcc ] > > - then > > - export CC=gcc-8 > > - fi > > +*-gcc) > > + for gitcc in gcc-10 gcc-9 gcc-8 > > + do > > + if command -v $gitcc >/dev/null 2>&1 > > + then > > + export CC=$gitcc > > + break; > > + fi > > + done > > This assummes that some of these gcc-<N> binaries can be found in > PATH, but that hasn't always been the case in the past: up until end > of last week Travis CI's xcode10.1 image came with GCC 8 pre-installed > but not linked and without GCC 9, i.e. neither 'gcc-8' nor 'gcc-9' was > available in PATH. While now that image does have GCC 9 properly > installed, i.e. 'gcc-9' has been available in PATH for almost a week, > I wouldn't want to rely on that... I thought gcc-<N> executable should be linked by `brew-install' itself, no? This patch applied on top of the patch you replied works fine! > With your changes if none of the listed gcc-<N> binaries were > available in PATH, then we would silently build with the generic 'cc', > which is 'clang' on OSX, and that's definitely not what we want. I'm addressing this issue with a change in ci/lib.sh below. By adding /bin/false as a fallback. If we could agree that the previous patch and this patch, together, could be good, I'll re-organise it and send again later. Either that, or squash this into the previous patch --------8<------------------- From: Doan Tran Cong Danh <congdanhqx@xxxxxxxxx> Date: Thu, 28 Nov 2019 18:24:58 +0700 Subject: [PATCH/RFC] ci: install latest gcc from brew for macOS build on travis Until now, we ask brew install the specific version of gcc (gcc@8), but for some reason, brew decided to install the latest version instead. With the previous change, we're assuming that gcc-<N> executable is existed in $PATH, we will find that executable instead. While we're at it, don't ask brew to link gcc, since it should be taken by `brew-install' itself. Signed-off-by: Doan Tran Cong Danh <congdanhqx@xxxxxxxxx> --- ci/install-dependencies.sh | 2 -- ci/lib.sh | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh index 4e64a19112..a671ee1005 100755 --- a/ci/install-dependencies.sh +++ b/ci/install-dependencies.sh @@ -48,8 +48,6 @@ osx-clang|osx-gcc) brew install caskroom/cask/perforce case "$jobname" in osx-gcc) - brew link gcc || - brew link gcc@8 ;; esac ;; diff --git a/ci/lib.sh b/ci/lib.sh index 4040fc1a22..02cdb47419 100755 --- a/ci/lib.sh +++ b/ci/lib.sh @@ -131,7 +131,7 @@ then echo "$SYSTEM_TASKDEFINITIONSURI$SYSTEM_TEAMPROJECT/_build/results?buildId=$1" } - BREW_INSTALL_PACKAGES=gcc@8 + BREW_INSTALL_PACKAGES=gcc export GIT_PROVE_OPTS="--timer --jobs 10 --state=failed,slow,save" export GIT_TEST_OPTS="--verbose-log -x --write-junit-xml" MAKEFLAGS="$MAKEFLAGS --jobs=10" @@ -160,7 +160,7 @@ export GIT_TEST_CLONE_2GB=YesPlease case "$jobname" in *-gcc) - for gitcc in gcc-10 gcc-9 gcc-8 + for gitcc in gcc-10 gcc-9 gcc-8 false do if command -v $gitcc >/dev/null 2>&1 then -- 2.24.0.615.g37f5bfbdea