Joel Rosdahl [Wed, 27 Jul 2016 18:49:00 +0000 (20:49 +0200)]
Let run_second_cpp default to true
ccache has since day 1 (OK, actually day 13: 5f6f5010) relied on the
fact that GCC and similar enough compilers are able to compile their own
preprocessed output with the same outcome as if they compiled the real
source code directly.
However, newer versions of GCC no longer quite work this way since they
perform an increasing amount of diagnostics analysis only if the source
code is compiled directly. The same goes for Clang. It's impossible for
ccache to work around this changed behavior in a good way.
Joel Rosdahl [Mon, 25 Jul 2016 15:58:37 +0000 (17:58 +0200)]
test: Various improvements and cleanups that were long needed
* Made all test cases isolated, not reusing test state from previous
tests.
* Introduced per-suite detection whether suite should be run or skipped.
* Only run base_tests with and without CCACHE_CPP2.
* Moved CCACHE_HARDLINK, CCACHE_NLEVELS, CCACHE_EXTRAFILES,
CCACHE_IGNOREHEADERS, CCACHE_PREFIX, ccache symlinks and "buggy CPP"
tests into base_tests instead of having test suites of their own.
* Split conditional tests (depending on compiler and/or OS) into
separate test suites.
* Removed -fprofile-generate and -fprofile-use tests since they don't
test any functionality.
* Made various cleanups that were long needed.
Joel Rosdahl [Sat, 23 Jul 2016 20:44:12 +0000 (22:44 +0200)]
Disable i586-mingw32msvc build for now
The i586-mingw32msvc build fails since e527cccb because
i586-mingw32msvc-gcc is based on GCC 4.2 which apparently is too old to
have good enough C99 support.
More specifically, it doesn't build since the compiler emits a "C99
inline functions are not supported; using GNU89" warning, and we use
-Werror.
Joel Rosdahl [Wed, 20 Jul 2016 15:54:46 +0000 (17:54 +0200)]
Merge branch '3.2-maint'
* 3.2-maint:
Prepare for v3.2.7
Update NEWS
Make sure to hash the trailing quote when skipping
Add test for certain gcc compilers with buggy cpp
Make calculate_object_hash handle argument-less -B etc. correctly
Anders Björklund [Thu, 14 Jul 2016 21:22:25 +0000 (23:22 +0200)]
Make sure to hash the trailing quote when skipping
Turns out that 3.2-maint hashes preprocessor output a bit differently,
so the workaround for skipping certain lines was broken in backport.
When skipping the "extra line", the trailing quotes were missing from
the output causing the hash to be different from the normal output.
Joel Rosdahl [Tue, 12 Jul 2016 19:24:55 +0000 (21:24 +0200)]
Merge branch '3.2-maint'
* 3.2-maint:
Prepare for v3.2.6
Prepare for v3.1.12
Disable mingw32 build on v3.1.x
Add .travis.yml
Mark 3.1.12 as still unreleased
Prepare for v3.1.12
Don't rewrite source file path if it's absolute and a symlink
Joel Rosdahl [Tue, 12 Jul 2016 19:14:01 +0000 (21:14 +0200)]
Merge branch '3.1-maint' into 3.2-maint
* 3.1-maint:
Prepare for v3.1.12
Disable mingw32 build on v3.1.x
Add .travis.yml
Mark 3.1.12 as still unreleased
Prepare for v3.1.12
Don't rewrite source file path if it's absolute and a symlink
Anders Björklund [Sun, 26 Jun 2016 21:03:59 +0000 (23:03 +0200)]
Work around preprocessor bugs in gcc version 6
Before hashing the output of the preprocessor (gcc -E):
- Ignore extra line `# 31 "<command-line>"` completely.
- Replace `# 32 "<command-line>" 2` with the regular # 1.
For some reason this only happens with gcc without macros.
Norbert Lange [Sat, 28 May 2016 13:38:10 +0000 (15:38 +0200)]
Better parsing of g* Options, and only use last argument
Commonly some base configuration like CFLAGS="-O2 -g3 ..." will be
modified for builds by appending "-g0" to disable debug information.
This commit only en/disables options based on the last argument
that modifies debuginfo generation.
Joel Rosdahl [Sat, 4 Jun 2016 16:55:44 +0000 (18:55 +0200)]
Merge branch '3.2-maint'
* 3.2-maint:
code style: Mention usage of curly braces around if/for/while/do bodies
Bail out on compiler option -fstack-usage
Mention new repository location on github