From 7b6f849458e60fcca27f5fb91e30437d02bd2f1f Mon Sep 17 00:00:00 2001 From: Chris Ryder Date: Sat, 3 Mar 2018 09:33:44 +0000 Subject: [PATCH] Avoid double invoking ccache In Travis, when jobs have the 'cache: ccache' option set, Travis automatically adds the location of the ccache wrappers around g++/clang++ to the head of the PATH environment variable. This means that when you invoke 'g++' or 'clang++' what you are actually invoking is ccache. However, our jobs execute 'ccache g++', which means we are actually invoking ccache on itself. This was causing very poor ccache hit rates. --- .travis.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 48e1152ef9..67e704a89c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -66,7 +66,7 @@ jobs: - mkdir bin ; ln -s /usr/bin/gcc-5 bin/gcc # env: COMPILER=g++-5 SAN_FLAGS="-fsanitize=undefined -fno-sanitize-recover -fno-omit-frame-pointer" env: - - COMPILER="ccache g++-5" + - COMPILER="ccache /usr/bin/g++-5" - EXTRA_CXXFLAGS="-D_GLIBCXX_DEBUG" # OS X using g++ @@ -76,10 +76,8 @@ jobs: compiler: gcc cache: ccache before_install: - #we create symlink to non-ccache gcc, to be used in tests - - mkdir bin ; ln -s /usr/bin/gcc bin/gcc - HOMEBREW_NO_AUTO_UPDATE=1 brew install ccache - - export PATH=/usr/local/opt/ccache/libexec:$PATH + - export PATH=$PATH:/usr/local/opt/ccache/libexec env: COMPILER="ccache g++" # OS X using clang++ @@ -90,7 +88,7 @@ jobs: cache: ccache before_install: - HOMEBREW_NO_AUTO_UPDATE=1 brew install ccache - - export PATH=/usr/local/opt/ccache/libexec:$PATH + - export PATH=$PATH:/usr/local/opt/ccache/libexec env: - COMPILER="ccache clang++ -Qunused-arguments -fcolor-diagnostics" - CCACHE_CPP2=yes @@ -113,7 +111,7 @@ jobs: - mkdir bin ; ln -s /usr/bin/gcc-5 bin/gcc # env: COMPILER=g++-5 SAN_FLAGS="-fsanitize=undefined -fno-sanitize-recover -fno-omit-frame-pointer" env: - - COMPILER="ccache g++-5" + - COMPILER="ccache /usr/bin/g++-5" - EXTRA_CXXFLAGS="-DDEBUG" script: echo "Not running any tests for a debug build." @@ -138,7 +136,7 @@ jobs: - export CCACHE_CPP2=yes # env: COMPILER=clang++-3.7 SAN_FLAGS="-fsanitize=undefined -fno-sanitize-recover=undefined,integer -fno-omit-frame-pointer" env: - - COMPILER="ccache clang++-3.7 -Qunused-arguments -fcolor-diagnostics" + - COMPILER="ccache /usr/bin/clang++-3.7 -Qunused-arguments -fcolor-diagnostics" - CCACHE_CPP2=yes - EXTRA_CXXFLAGS="-DNDEBUG" @@ -163,7 +161,7 @@ jobs: - export CCACHE_CPP2=yes # env: COMPILER=clang++-3.7 SAN_FLAGS="-fsanitize=undefined -fno-sanitize-recover=undefined,integer -fno-omit-frame-pointer" env: - - COMPILER="ccache clang++-3.7 -Qunused-arguments -fcolor-diagnostics" + - COMPILER="ccache /usr/bin/clang++-3.7 -Qunused-arguments -fcolor-diagnostics" - CCACHE_CPP2=yes - EXTRA_CXXFLAGS="-DDEBUG -DUSE_STD_STRING" script: echo "Not running any tests for a debug build." @@ -180,10 +178,12 @@ jobs: - ubuntu-toolchain-r-test packages: - g++-5 + before_install: + - mkdir bin ; ln -s /usr/bin/gcc-5 bin/gcc install: - ccache -z - ccache --max-size=1G - - cmake -H. -Bbuild '-DCMAKE_BUILD_TYPE=Release' '-DCMAKE_CXX_COMPILER=g++-5' + - cmake -H. -Bbuild '-DCMAKE_BUILD_TYPE=Release' '-DCMAKE_CXX_COMPILER=/usr/bin/g++-5' - cmake --build build -- -j4 script: (cd build; ctest -V -L CORE -j2) @@ -192,7 +192,7 @@ jobs: cache: ccache before_install: - HOMEBREW_NO_AUTO_UPDATE=1 brew install ccache - - export PATH=/usr/local/opt/ccache/libexec:$PATH + - export PATH=$PATH:/usr/local/opt/ccache/libexec env: - BUILD_SYSTEM=cmake - CCACHE_CPP2=yes