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
Mihai Serban [Tue, 15 Mar 2016 21:55:32 +0000 (23:55 +0200)]
Convert absolute paths to relative paths inside the dependency file
When using DIRECT MODE and the -MD flag to generate a dependency file
the toolchain header files are used with their absolute paths as dependencies.
If the same toolchain is used but from a different location the previously
cached .d file is copied to the current build environment. Because it contains
absolute paths that could disappear or where the current user does not have
access the compilation will fail complaining that some header files cannot
be found.
This mostly happens when the cache is shared among multiple users or multiple
clones of a source tree and when the same toolchain is used but from different
locations.
This patch adds support for this kind of usage by replacing the absolute paths
with relative ones based on the BASEDIR value.