]>
git.ipfire.org Git - thirdparty/ccache.git/log
Joel Rosdahl [Tue, 17 Sep 2019 20:37:57 +0000 (22:37 +0200)]
Include compiler-only arguments in the hash
After
5d8585b5 (#312), arguments that are not considered affecting the
preprocessor output won’t be passed to the preprocessor. -Werror and
-Wno-error are also not passed to the preprocessor so that options not
properly marked as “compiler only” will only trigger warnings, not
errors. This was a workaround for Clang complaining about unused
arguments in the preprocessor step performed by ccache.
However, it also introduced a regression: -Werror and the other options
were excluded from the hash as well. This means that
cc -c file_with_warnings.c
would be cached by ccache, including the warning message. A later
cc -Werror -c file_with_warnings.c
call would then be a cache hit, resulting in a compilation warning
instead of an error.
This commit fixes the problem by also including the compiler-only
arguments in the hash.
(cherry picked from commit
6be00a0070d3898fe7201f6db44a9a3c42627bf8 )
Joel Rosdahl [Sun, 15 Sep 2019 20:36:18 +0000 (22:36 +0200)]
Add configure check for Clang flags for disabling warnings
As suggested in #466.
Also, make --enable-more-warnings actually work when building from a
release archive.
Joel Rosdahl [Sun, 15 Sep 2019 20:31:25 +0000 (22:31 +0200)]
Move dev mode configure check to the top
This makes it possible to make decisions depending on dev mode futher
down in configure.
Joel Rosdahl [Sun, 15 Sep 2019 20:30:54 +0000 (22:30 +0200)]
Add configure macro AX_CHECK_COMPILE_FLAG
Joel Rosdahl [Sun, 15 Sep 2019 20:30:34 +0000 (22:30 +0200)]
Remove obsolete configure check related to snprintf replacements
Joel Rosdahl [Thu, 12 Sep 2019 20:07:01 +0000 (22:07 +0200)]
Clarify 3.7.4 news items
-gz is apparently supported by GCC 5+ and Clang as well.
Joel Rosdahl [Thu, 12 Sep 2019 19:14:09 +0000 (21:14 +0200)]
Prepare for v3.7.4
(cherry picked from commit
fbdb291fbf0fc749ed44fc510ff023c8030359ff )
Joel Rosdahl [Thu, 12 Sep 2019 19:14:06 +0000 (21:14 +0200)]
Update NEWS
(cherry picked from commit
d5697e4bcb04cf78245e30fbebdc4536d66c290a )
Joel Rosdahl [Thu, 12 Sep 2019 18:50:46 +0000 (20:50 +0200)]
Support GCC 9’s -gz=[type] option
-gz[=type] neither disables nor enables generation of debug info, so
don’t enable the fallback behavior of hashing the current directory when
seeing -gz[=type] alone.
Closes #464.
(cherry picked from commit
cb7a05a772ce3dcec58da16d957420f36cb97f75 )
Joel Rosdahl [Sat, 7 Sep 2019 17:45:10 +0000 (19:45 +0200)]
Update NEWS
Joel Rosdahl [Sat, 7 Sep 2019 17:41:00 +0000 (19:41 +0200)]
Add missing include guard
Joel Rosdahl [Fri, 6 Sep 2019 18:01:28 +0000 (20:01 +0200)]
Sort function definitions
Joel Rosdahl [Thu, 5 Sep 2019 20:02:01 +0000 (22:02 +0200)]
Set sysconfdir to /etc when dist checking
This makes the command line stable so that we can get ccache hits.
Joel Rosdahl [Thu, 5 Sep 2019 20:01:14 +0000 (22:01 +0200)]
Don’t fail on error when dist checking
libb2 can’t be built with -Werror.
Joel Rosdahl [Thu, 5 Sep 2019 20:00:41 +0000 (22:00 +0200)]
Merge dist checks for using libzstd/libb2 from the Internet
Joel Rosdahl [Thu, 5 Sep 2019 19:54:58 +0000 (21:54 +0200)]
Sort .gitignore
Joel Rosdahl [Thu, 5 Sep 2019 19:53:58 +0000 (21:53 +0200)]
Don’t error out if a libzstd/libb2 Makefile doesn’t exist when cleaning
Joel Rosdahl [Thu, 5 Sep 2019 19:39:40 +0000 (21:39 +0200)]
Add missing fmt headers to dist archive
Joel Rosdahl [Wed, 4 Sep 2019 19:11:04 +0000 (21:11 +0200)]
Add progress bar for -x/--show-compression
Joel Rosdahl [Wed, 4 Sep 2019 18:02:04 +0000 (20:02 +0200)]
Add progress bar for -c/--cleanup and -C/--clear
Joel Rosdahl [Wed, 4 Sep 2019 17:53:12 +0000 (19:53 +0200)]
Constify file_size
Joel Rosdahl [Wed, 28 Aug 2019 20:44:13 +0000 (22:44 +0200)]
Add util::for_each_level_1_subdir function
Joel Rosdahl [Wed, 28 Aug 2019 20:41:23 +0000 (22:41 +0200)]
Add util::get_level_1_files function
Joel Rosdahl [Wed, 28 Aug 2019 19:58:06 +0000 (21:58 +0200)]
Add ProgressBar class
The progress bar draws a simple progress bar with percentage to the
console.
Joel Rosdahl [Sun, 25 Aug 2019 20:17:22 +0000 (22:17 +0200)]
Add util::ends_with
Joel Rosdahl [Sun, 25 Aug 2019 11:52:43 +0000 (13:52 +0200)]
Fix include so that Cppcheck finds it
Joel Rosdahl [Sun, 25 Aug 2019 09:34:06 +0000 (11:34 +0200)]
Remove no longer matched Cppcheck suppression
Joel Rosdahl [Sun, 25 Aug 2019 09:29:17 +0000 (11:29 +0200)]
Fix Cppcheck warning about always false value
Joel Rosdahl [Sun, 25 Aug 2019 09:28:54 +0000 (11:28 +0200)]
Make legacy_suites a constant
Joel Rosdahl [Sun, 25 Aug 2019 09:24:57 +0000 (11:24 +0200)]
Remove left-over statement
Joel Rosdahl [Sun, 25 Aug 2019 08:49:00 +0000 (10:49 +0200)]
Add util::create_dir, replacing create_parent_dirs and create_dir
Joel Rosdahl [Sat, 24 Aug 2019 20:34:23 +0000 (22:34 +0200)]
Improve documentation of util::read_file/write_file
Joel Rosdahl [Sat, 24 Aug 2019 20:18:33 +0000 (22:18 +0200)]
Add util::dir_name
Joel Rosdahl [Sat, 24 Aug 2019 20:17:51 +0000 (22:17 +0200)]
Add util::base_name
Joel Rosdahl [Sat, 24 Aug 2019 12:49:16 +0000 (14:49 +0200)]
Extract Catch2 main to a separate object file
This way the Catch2 object file (which takes a long time to compile)
won’t be invalidated each time ccache.hpp is updated.
Joel Rosdahl [Sat, 24 Aug 2019 12:31:51 +0000 (14:31 +0200)]
C++-ify create_cachedir_tag
Joel Rosdahl [Sat, 24 Aug 2019 12:30:16 +0000 (14:30 +0200)]
Don’t fail if CACHEDIR.TAG can’t be created
Logging is enough.
Joel Rosdahl [Fri, 23 Aug 2019 17:46:40 +0000 (19:46 +0200)]
Replace third party hashtable with std::unordered_map
Joel Rosdahl [Thu, 29 Aug 2019 19:32:47 +0000 (21:32 +0200)]
Fix code style
Harsh Shandilya [Thu, 5 Sep 2019 19:38:43 +0000 (01:08 +0530)]
Ignore archives and directories for libb2 and libzstd (#459)
These are not required to be tracked under VCS.
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
Harsh Shandilya [Thu, 5 Sep 2019 19:05:10 +0000 (00:35 +0530)]
configure: Update libzstd to 1.4.3 (#458)
Confirmed that all tests pass on Linux x86_64.
Signed-off-by: Harsh Shandilya <msfjarvis@gmail.com>
Cristian Adam [Wed, 28 Aug 2019 17:07:21 +0000 (19:07 +0200)]
Win32: make_relative_path also accept /c/users (#455)
Patch copied from jd-gascuel@
f3b85c9
Joel Rosdahl [Sat, 17 Aug 2019 21:29:14 +0000 (23:29 +0200)]
doc: Add references to configuration items
Joel Rosdahl [Sat, 17 Aug 2019 21:08:32 +0000 (23:08 +0200)]
doc: Add anchors to configuration items
Joel Rosdahl [Sat, 17 Aug 2019 21:02:01 +0000 (23:02 +0200)]
doc: Mention that XXH64 is used for checksumming
Joel Rosdahl [Sat, 17 Aug 2019 21:00:55 +0000 (23:00 +0200)]
doc: Remove note about hard links caveats from feature summary
I feel that the warning doesn’t quite belong to that list.
Joel Rosdahl [Sat, 17 Aug 2019 20:07:43 +0000 (22:07 +0200)]
Prepare for v3.7.3
(cherry picked from commit
fc69e8243743a2ed9305ff58c00e4fb23cb55237 )
Joel Rosdahl [Sat, 17 Aug 2019 19:59:15 +0000 (21:59 +0200)]
Update NEWS
Joel Rosdahl [Sat, 17 Aug 2019 11:04:06 +0000 (13:04 +0200)]
Add missing include guard
Joel Rosdahl [Fri, 16 Aug 2019 17:27:20 +0000 (19:27 +0200)]
Fix typo in NEWS
(cherry picked from commit
8c0a53c00f7d1d06aa4837d77f1dff23ae7c1150 )
Joel Rosdahl [Thu, 15 Aug 2019 20:20:38 +0000 (22:20 +0200)]
Don’t pass -Wno-error to the preprocessor
This is done to keep the argument order between -Werror and -Wno-error.
Fixes #451.
(cherry picked from commit
70986342c8948ac2ae974ee98efbcd6865003dc1 )
Joel Rosdahl [Thu, 15 Aug 2019 19:39:06 +0000 (21:39 +0200)]
Update news with a high-level summary of changes in 4.0 so far
Joel Rosdahl [Thu, 15 Aug 2019 18:49:53 +0000 (20:49 +0200)]
Use std::min/std::max instead of MIN/MAX macros
Joel Rosdahl [Thu, 15 Aug 2019 18:41:14 +0000 (20:41 +0200)]
Bump to CUDA 10.1.243 for Ubuntu 16.04
Joel Rosdahl [Thu, 15 Aug 2019 18:38:52 +0000 (20:38 +0200)]
Fix “(readonly)” part of “ccache -s”
It was just a mistake in
800f8ed2edca0 .
Joel Rosdahl [Wed, 14 Aug 2019 19:58:19 +0000 (21:58 +0200)]
C++-ify configuration handling
- Instead of using code generated by gperf, use ordinary unordered maps
for the mapping from config keys (and environment variables) to config
items.
- Renamed “struct conf* conf” to “class Config g_config”.
- C++-ified conf.cpp and confitems.cpp into Config.cpp.
Joel Rosdahl [Sun, 11 Aug 2019 17:54:33 +0000 (19:54 +0200)]
Clean up header includes
* All headers should have system.hpp as their first #include.
* Removed unnecessary stdbool.h inclusions.
* Use C++ variants of headers when possible.
Joel Rosdahl [Fri, 9 Aug 2019 18:34:07 +0000 (20:34 +0200)]
Remove snprintf replacements
They clash with MinGW-w64 C++ headers, so let’s remove them. Any
reasonably modern system should have them.
Joel Rosdahl [Wed, 7 Aug 2019 19:52:15 +0000 (21:52 +0200)]
Add some C++-ified utility functions
Joel Rosdahl [Wed, 7 Aug 2019 19:30:31 +0000 (21:30 +0200)]
Rename test suite util to legacy_util
This makes room for the Catch2 test suite for util.cpp.
Joel Rosdahl [Wed, 7 Aug 2019 19:21:34 +0000 (21:21 +0200)]
Remove autogenerated suites.hpp
The suites will slowly be converted to the Catch2 framework, so no need
to make it easy to add new legacy suites.
Joel Rosdahl [Wed, 7 Aug 2019 19:00:26 +0000 (21:00 +0200)]
Add Catch2 2.9.1
Joel Rosdahl [Wed, 7 Aug 2019 17:48:49 +0000 (19:48 +0200)]
Add AtomicFile class for updating a file with rename-in-place
Joel Rosdahl [Mon, 29 Jul 2019 20:13:38 +0000 (22:13 +0200)]
Update next version to 4.0
I think that it makes sense to do a major version bump because of the
C++11 requirement and major changes like introduction of result files,
zstd compression and BLAKE2b hashing.
Joel Rosdahl [Fri, 26 Jul 2019 20:40:50 +0000 (22:40 +0200)]
Bump to zstd 1.4.2
Joel Rosdahl [Fri, 26 Jul 2019 18:28:53 +0000 (20:28 +0200)]
Add a subset of fmt 5.3.0
fmt is a “small, safe and fast formatting library”, see
<https://fmt.dev>.
Joel Rosdahl [Thu, 1 Aug 2019 22:04:30 +0000 (00:04 +0200)]
Run clang-format on all code to follow the new code style
If you end up on this commit when running “git blame ...”, it’s probably
a good idea to use “git blame -w ...” to ignore whitespace changes.
Joel Rosdahl [Thu, 1 Aug 2019 22:04:24 +0000 (00:04 +0200)]
Describe new code style and switch from Uncrustify to clang-format
Changing source code style to what I prefer is something that I have
wanted to do for quite some time but I never got to it. Doing it now
feels like a good time since much code will be rewritten anyway as part
of the C++-ification.
Joel Rosdahl [Thu, 1 Aug 2019 18:49:00 +0000 (20:49 +0200)]
Use #pragma once for guarding headers
It seems to be supported by all reasonably modern compilers now.
Joel Rosdahl [Wed, 31 Jul 2019 21:46:48 +0000 (23:46 +0200)]
Sort list
Joel Rosdahl [Wed, 24 Jul 2019 11:18:17 +0000 (13:18 +0200)]
C++-ify source code
The ccache source code will be converted to C++, targeting C++11. This
commit only arranges the existing C-style code to be built as C++ code.
This makes it possible to call new C++ code from old C-style code.
Gradual conversion to C++ functionality and idioms will follow in a slow
and controlled fashion – no big bang rewrites.
The alternative would be to convert code in a top-down fashion, i.e.
only calling legacy C code from new C++ code, not the other way around.
That approach is however not a good idea since the code that will
benefit most from being written in proper C++ is code deep down in the
call chains.
Except for renaming source code files to .cpp and .hpp, this commit
makes minimal changes to make the code base buildable again, for
example:
- Instructs configure.ac to look for a mandatory C++11-compliant
compiler.
- Adds Makefile rules for building C++ code.
- Sets up Travis-CI to pass C++ compiler flags and similar to the build.
- Adds new casts where needed.
- Adds const keywords where needed.
- Renames variables to something else than C++ keywords (e.g.
“template”).
- Rearranges some code to avoid complaints about goto jumps that cross
variable lifetimes.
Joel Rosdahl [Wed, 24 Jul 2019 09:16:14 +0000 (11:16 +0200)]
Add x_ prefix to basename and dirname
This avoids warnings about differing function prototypes when compiling
as C++ code.
Joel Rosdahl [Wed, 24 Jul 2019 08:24:31 +0000 (10:24 +0200)]
Remove unused autoconf checks for ar, cpp and ranlib
Joel Rosdahl [Wed, 24 Jul 2019 08:17:17 +0000 (10:17 +0200)]
Upgrade to use scan-build-7 for the Clang static analyzer
Joel Rosdahl [Fri, 2 Aug 2019 21:24:27 +0000 (23:24 +0200)]
Refer to autogen.sh correctly in autogen.sh
Closes #449.
Joel Rosdahl [Fri, 2 Aug 2019 18:37:57 +0000 (20:37 +0200)]
Fix comparison with the “cu” language
This should have been done in
c4fffda0 .
Related to PR #381.
Joel Rosdahl [Fri, 2 Aug 2019 18:36:32 +0000 (20:36 +0200)]
Revert "Add back support for the “cuda” language"
This reverts commit
95b0dc5a76bff88ba420a62b7bf2e74e8ea7e300 .
NVCC maps the “.cu” extension to “cu” but Clang maps it to “cuda”, so
it’s ambiguous. Let’s ignore the Clang case for now.
Related to PR #381.
Joel Rosdahl [Fri, 2 Aug 2019 18:20:46 +0000 (20:20 +0200)]
Add back support for the “cuda” language
Clang apparently recognizes it.
Related to PR #381.
Joel Rosdahl [Wed, 31 Jul 2019 19:06:21 +0000 (21:06 +0200)]
Remove .ic extension and cuda/cuda-output languages
CUDA/NVCC, at least not version 10.1, does not recognize “.ic” as a
valid extension and neither “cuda” nor “cuda-output” as languages.
Also made sure to compare with “cu” instead of “cuda” when detecting
whether to force run_second_cpp.
Alexander Korsunsky [Wed, 17 Apr 2019 16:55:44 +0000 (18:55 +0200)]
test/suites/nvcc.bash: Test -x cu and -dc options
Alexander Korsunsky [Tue, 16 Apr 2019 14:38:51 +0000 (16:38 +0200)]
When compiling CUDA code, recognize -dc as compilation only argument
nvcc's options -dc or --device-c imply -c but also generates device
code. We catch it as an option if our guessed compiler is NVCC
Alexander Korsunsky [Tue, 16 Apr 2019 14:38:27 +0000 (16:38 +0200)]
Add cu language as an alias to cuda
Anders Björklund [Mon, 29 Jul 2019 18:22:54 +0000 (20:22 +0200)]
Fix gperf generation when running on MSYS2 (#448)
Apparently gperf doesn't like DOS linefeeds
Anders Björklund [Sun, 28 Jul 2019 09:41:09 +0000 (11:41 +0200)]
Added remaining changes to make tests run on MSYS (#246)
* Skip test that require symlinks, on Windows/Cygwin
* Don't use symlinks for lockfiles on Cygwin
* Seems like objdump has issues on Windows/Cygwin
* Make it possible to run suite in isolation
Joel Rosdahl [Tue, 23 Jul 2019 09:39:53 +0000 (11:39 +0200)]
Change from http to https for some URLs
Joel Rosdahl [Tue, 23 Jul 2019 09:33:52 +0000 (11:33 +0200)]
Mention libb2 dependency in installation instructions
Joel Rosdahl [Mon, 22 Jul 2019 20:52:09 +0000 (22:52 +0200)]
Document BLAKE2b and clean up after #445
Closes #412.
Anders F Björklund [Mon, 22 Jul 2019 13:25:59 +0000 (15:25 +0200)]
Only set flags for cross, breaks native build
Need all the auto-detected CPU flags to be set
Anders F Björklund [Mon, 22 Jul 2019 13:02:14 +0000 (15:02 +0200)]
Make sure to pass flags to travis shell commands
Anders F Björklund [Mon, 22 Jul 2019 12:30:47 +0000 (14:30 +0200)]
Enable building static local libb2 for non-native
Anders F Björklund [Mon, 22 Jul 2019 12:29:27 +0000 (14:29 +0200)]
Generated files are in builddir, not srcdir
Anders F Björklund [Mon, 22 Jul 2019 11:51:43 +0000 (13:51 +0200)]
Upgrade travis docker to xenial, add libb2-dev
Also upgrade clang from 5 to 7, to match travis
Add new deb requirements from libzstd and libb2
Anders F Björklund [Mon, 22 Jul 2019 11:18:24 +0000 (13:18 +0200)]
Move libb2 source code to src/third_party
Anders F Björklund [Mon, 22 Jul 2019 08:14:43 +0000 (10:14 +0200)]
Only disable optimizations when cross-compiling
Anders F Björklund [Sun, 21 Jul 2019 16:49:12 +0000 (18:49 +0200)]
Fix travis build by helping clang and cross
Anders F Björklund [Sun, 21 Jul 2019 14:35:18 +0000 (16:35 +0200)]
Add option to build static libb2 from source
Anders F Björklund [Sun, 21 Jul 2019 12:40:11 +0000 (14:40 +0200)]
Add libb2-dev to Travis linux dependencies
Anders F Björklund [Sun, 21 Jul 2019 12:33:18 +0000 (14:33 +0200)]
Use BLAKE2b checksum instead of bundled MD4
Joel Rosdahl [Sun, 21 Jul 2019 21:03:49 +0000 (23:03 +0200)]
Bump to zstd 1.4.1
Joel Rosdahl [Sat, 20 Jul 2019 12:49:17 +0000 (14:49 +0200)]
Move third party source code to src/third_party