summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* chore: Update NEWSv4.6.1Joel Rosdahl2022-05-151-0/+133
|
* chore: Update authorsJoel Rosdahl2022-05-141-0/+2
|
* style: Improve names of Args::AtFileFormat valuesJoel Rosdahl2022-05-144-20/+18
|
* ci: Bump to CodeQL action v2Joel Rosdahl2022-05-141-2/+2
|
* fix: Support Redis URL without hostJoel Rosdahl2022-05-141-3/+3
|
* chore: Don’t store unused return valueJoel Rosdahl2022-05-141-2/+1
|
* chore: Constify core::Manifest::add_result parameterJoel Rosdahl2022-05-142-6/+7
|
* chore: Set version “unknown” instead of empty string if unknownJoel Rosdahl2022-05-141-3/+3
|
* fix: Support Git 1.x when determining ccache versionJoel Rosdahl2022-05-141-1/+2
|
* chore: Prepare for binary patching SYSCONFDIRJoel Rosdahl2022-05-141-1/+4
|
* chore: Add Jacob Young to .mailmapJoel Rosdahl2022-05-141-0/+1
|
* fix: Avoid incorrect error log for Redis write in reshare modeJoel Rosdahl2022-05-141-4/+4
|
* chore: Remove anonymous users from AUTHORSJoel Rosdahl2022-05-143-4/+4
|
* fix: Correctly represent statistics counters > 1 in log and stats logJoel Rosdahl2022-05-112-2/+12
|
* fix: Fix parsing of MSVC response files (#1071)jacobly02022-05-114-10/+49
|
* docs: Add warning about base_dirJoel Rosdahl2022-05-081-0/+6
| | | | See #1042.
* chore: Update license for nonstd::expectedJoel Rosdahl2022-05-081-3/+3
| | | | See #1053.
* refactor: Simplify Reader::read_intJoel Rosdahl2022-05-081-6/+4
| | | | std::string::operator[](0) is well-defined for empty strings.
* fix: Log expanded secondary storage URL in put/removeJoel Rosdahl2022-05-081-3/+3
|
* fix: Fix miscompile of nonstd::expected on MSVC v19.22 (#1053)jacobly02022-05-081-15/+42
|
* fix: Check for short reads in Reader::read_str (#1068)Gregor Jasny2022-05-081-1/+6
|
* fix: Fix "Multiple precompiled headers used" error if /Yu option is used ↵Alexey Telishev2022-05-081-0/+1
| | | | after /Fp (#1059)
* feat: Make upload-redis output more like other tools (#1070)Anders Björklund2022-05-081-9/+20
|
* fix: Improve MSVC /Fp and /Yu options furtherJoel Rosdahl2022-05-061-6/+16
| | | | Improve 09dea223466e to also handle relative paths to -Fp/-Yu.
* chore: Add knowledge of linker option -z to avoid note in debug logJoel Rosdahl2022-05-051-1/+2
| | | | Closes #1061.
* fix: Handle MSVC /Fp and /Yu options with concatenated path againJoel Rosdahl2022-05-051-17/+9
| | | | | | Regression in c8fb539523c801bf15591c395c3029b4530a7a2f. See #1063.
* feat: Handle -imsvc compiler option (#1055)jacobly02022-05-011-0/+1
|
* build: Fix build arguments to clang-cl (#1054)jacobly02022-05-011-3/+5
|
* fix: Fix sporadic test.profiling failures (#1056)jacobly02022-05-011-1/+1
| | | | | | Using cut, which is always line-based, to remove bytes from a binary file can cause problems if the binary timestamp field happens to contain a newline character, which causes test.profiling to fail <1% of the time. Instead use tail which has a character mode that ignores newlines.
* fix: Isolate inode cache file in testsJoel Rosdahl2022-05-011-4/+3
| | | | | | | | | | | | | | | All test suites use the default temporary directory location /run/user/<UID>/ccache-tmp when possible, which means that the inode cache file is shared between all test suites. This is problematic when running test suites in parallel since one test suite may run “ccache -C” (which removes the inode cache file) between two compilations in the inode_cache suite, thus making the second compilation not behave as expected, failing the test. Fix this by putting the temporary directory inside the test-specific ccache directory instead of using the default global location. Fixes #1045.
* feat: Improve inode cache loggingJoel Rosdahl2022-05-011-3/+3
|
* ci: Fix CUDA installationJoel Rosdahl2022-04-301-1/+1
|
* fix: Normalize paths to fix basedir option on Windows (#1033)vvainola2022-04-303-22/+26
| | | Co-authored-by: Joel Rosdahl <joel@rosdahl.net>
* refactor: Improve absolute path normalization functionsJoel Rosdahl2022-04-305-38/+68
| | | | | | | | | | | | | | | | | | The Util::normalize_absolute_path function only works on the syntactic level, i.e. the result may not actually resolve to the same filesystem entry (nor to any file system entry for that matter). It was meant to be used for paths that don’t necessarily exist yet, such as a future directory in which to write debug files. It may fail in edge cases with symlinks in the path in combination with .. segments. If the caller wants to ensure that the resulting path actually makes sense, it needs to check if the resulting path points to the same file entry as the original. To improve on this, Util::normalize_absolute_path has now been renamed to Util::normalize_abstract_absolute_path and there is a new Util::normalize_concrete_absolute_path function which returns the original path if the normalized result doesn't resolve to the same file system entry as the original path.
* fix: Make Stat::same_inode_as consider error codeJoel Rosdahl2022-04-262-3/+5
|
* docs: Mention default cache locations for Windows and macOSJoel Rosdahl2022-04-171-2/+3
|
* fix: Fix static linkage with hiredis on Windows (#1041)Orgad Shaneh2022-04-121-0/+3
|
* fix: Replace skip_last_empty with IncludeDelimiter (#1046)Orgad Shaneh2022-04-125-35/+12
|
* fix: Fix code restructuring mistake in 5a55014fJoel Rosdahl2022-04-081-2/+2
|
* fix: Fix process_preprocessed_file bug for distcc markerJoel Rosdahl2022-04-081-1/+3
| | | | | | | | | | | | | | | | 2044fea84b86001b2976ecde946d3d6d0e88ec0a (included in ccache 4.6) removed the special-casing of distcc’s pump in process_preprocessed_file. That in turn revealed a bug that has been present since 432d1ca6a6aa51f708124172169073c399fb68d2 (included in ccache 3.4) but previously only affected compilations with distcc-pump as the “compiler”: the detection and handling of distcc-pump’s “__________” messages is broken in two ways: 1. It throws away everything between the last preprocessor directive and the “__________” marker. Thus, changes to such sections will not be included in the hash. 2. It detects “__________” markers in the middle of lines, not only at the beginning of lines.
* style: Tweak code style to match conventionsJoel Rosdahl2022-04-051-4/+4
|
* style: Enable some clang-tidy readability checks for unit testsJoel Rosdahl2022-04-052-4/+12
|
* Merge pull request #1037 from orgads/cl-strip-lfJoel Rosdahl2022-04-056-123/+133
|\
| * fix: Do not add redundant newlines for stdoutOrgad Shaneh2022-04-051-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tokenizer is used with include_empty, and the output typically ends with \n. For each line, tokenizer returns it without the \n, and the function appends it. But if the output ends with \n, the tokenizer returns an additional empty string, and a redundant LF is written to stdout. Another issue can be if the last line of the original output doesn't end with \n at all, ccache added it anyway. It was probably unnoticed until now since gcc has no output at all, while cl outputs the source file name.
| * feat: Support preserving the delimiters on tokenizerOrgad Shaneh2022-04-055-24/+88
| |
| * test: Simplify tokenizer testsOrgad Shaneh2022-04-051-98/+42
|/
* fix: Only use /run/user/<UID>/ccache-tmp if writableJoel Rosdahl2022-04-031-1/+1
| | | | | | | | | | | | | The fix for #984 addressed a problem when /run/user/0 already exists and ccache is run with fakeroot. However, it didn’t handle the case when /run/user/0/ccache-tmp already exists, which will happen for instance if the real root user has run ccache at least once. Fix this by using access(2) to verify that the ccache-tmp directory is writable. Note: Can’t just check the mode bits of the directory since they appear OK since fakeroot fakes the UID. Fixes #1044.
* fix: Add ASM and ASM_MASM to project() languages (#1043)Rafael Kitover2022-04-031-1/+1
|
* fix: Improve handling of .gcno filesJoel Rosdahl2022-04-037-11/+101
| | | | | | | | | | | | | | | | | | | | | | | | When support for caching a compilation with coverage (producing a .gcno file), the commit[1] made sure to avoid rewriting the input path to relative with the motivation “also make sure to use the source file path, since this is in the notes”. However, this seems to be unnecessary since a relative input file path will be written as is to the .gcno, not the absolute path. This is the case for at least GCC 4.7+ and Clang 3.6+. Fix this by potentially converting the input path to relative even when generating coverage. When investigating the above issue, I noticed that GCC 9+ includes the current working directory (CWD) in the .gcno file. This means that we have include the CWD in the hash when compiling with -ftest-coverage/--coverage in order to replicate what the compiler would produce. Since this makes it impossible get cache hits when compiling in different directories, a new gcno_cwd sloppiness has been added for opting out of hashing the CWD, with the tradeoff of potentially getting an incorrect directory in the .gcno file. [1]: 02d3f078bd2495b8db2264ae0b2c692b4c5ba1bd Fixes #1032.
* refactor: Sort sloppiness parsing/generationJoel Rosdahl2022-04-012-38/+38
|