On Tue, Oct 16, 2018 at 08:45:37PM +0200, SZEDER Gábor wrote: > Our Makefile has lines like these: > > CFLAGS = -g -O2 -Wall > CC = cc > AR = ar > SPATCH = spatch > > Note the use of '=', not '?='. This means that these variables can be > overridden from the command line, i.e. 'make CC=gcc-X.Y' will build > with that particular GCC version, but not from the environment, i.e. > 'CC=gcc-X.Y make' will still build with 'cc'. > > This can be confusing for developers who come from other projects > where they used to run 'CC=whatever make'. > > And our build jobs on Travis CI are badly affected by this. We have > dedicated build jobs to build Git with GCC and Clang both on Linux and > OSX from the very beginning (522354d70f (Add Travis CI support, > 2015-11-27)). But guess how Travis CI specifies which compiler to > use! With 'export CC=gcc' and 'export CC=clang', respectively. > Consequently, our Clang Linux build job has always used gcc, because > that's where 'cc' points at on Linux by default, while the GCC OSX > build job has always used Clang. Oh, well. Furthermore, see > 37fa4b3c78 (travis-ci: run gcc-8 on linux-gcc jobs, 2018-05-19), where > Duy added an 'export CC=gcc-8' in an attempt to use a more modern > compiler, but this had no effect either. > > I'm not sure what to do. I'm fine with updating our 'ci/' scripts to > explicitly respect CC in the environment (either by running 'make > CC=$CC' or by writing $CC into 'config.mak'). So, this patch series, in particular the last patch fixes this issue by setting MAKEFLAGS to contain the right CC from the environment. The first four patches are necessary cleanups/fixes to make it work, though, arguably, the third patch is neither strictly necessary nor that closely related to this series, but it just happened to bite me while working on this series. SZEDER Gábor (5): compat/obstack: fix -Wcast-function-type warnings .gitignore: ignore external debug symbols from GCC on macOS travis-ci: don't be '--quiet' when running the tests travis-ci: switch to Xcode 10.1 macOS image travis-ci: build with the right compiler .gitignore | 1 + .travis.yml | 2 ++ ci/install-dependencies.sh | 5 +++++ ci/lib-travisci.sh | 15 ++++++++++++--- ci/run-build-and-tests.sh | 4 ++-- ci/run-linux32-build.sh | 2 +- compat/obstack.c | 17 +++++++++-------- compat/obstack.h | 18 +++++++++++------- 8 files changed, 43 insertions(+), 21 deletions(-) -- 2.20.1.151.gec613c4b75