Commit Graph

141 Commits

Author SHA1 Message Date
Joel Rosdahl
d8927d46cb Add support for using precompiled headers if -fpch-preprocess is used 2010-08-21 16:46:51 +02:00
Joel Rosdahl
76a2b0f0c5 Generalize cc_log_executed_command 2010-08-14 21:14:07 +02:00
Joel Rosdahl
54fd1b1765 Put args declarations higher up in ccache.h 2010-08-14 21:14:07 +02:00
Joel Rosdahl
861184b725 Add args_set() function 2010-08-14 21:14:07 +02:00
Joel Rosdahl
65c847fa22 Add hash_equal() function 2010-08-14 21:14:07 +02:00
Joel Rosdahl
f86dbeaf3c Put functions in hash.c in a more natural order 2010-08-14 21:14:07 +02:00
Joel Rosdahl
18cc772aa6 Add support for running a custom command to identify the compiler 2010-08-11 08:17:42 +02:00
Joel Rosdahl
16b25cac09 Make reading and writing of statistics counters forward-compatible
Previously, ccache threw away counters values it didn't know about, i.e., new
counters coming from later ccache versions.
2010-08-04 11:03:40 +02:00
Joel Rosdahl
01fa3dfbf4 Explicitly set values of enum stats since they are important 2010-08-04 10:39:02 +02:00
Joel Rosdahl
52c4606d2c Move read_file from test/util.c to util.c 2010-08-03 23:09:16 +02:00
Joel Rosdahl
8c071cf6e0 Isolate knowledge of the counters data structure to stats.c 2010-08-03 17:27:41 +02:00
Joel Rosdahl
530dfe7c11 Format code to use a more consistent coding style 2010-08-01 17:20:33 +02:00
Joel Rosdahl
7daab1e4c2 Use lock files instead of POSIX locks when writing stats files
When writing a stats file, locking is now done by atomically creating a
symlink with lockfile_acquire() instead of locking with fcntl(). Updating
of the stats file while holding the lock is done using the
rename-into-place idiom since the lock may be intentionally broken by
another process, and if that happens, there should be no file corruption,
only lost information.

The major reason for the change is to be more robust against badly
implemented or configured network filesystems (e.g. NFS) where POSIX locks
may be broken in different ways.
2010-08-01 17:20:33 +02:00
Joel Rosdahl
852228dea5 Implement file locking primitives
Windows support is not yet done.
2010-08-01 17:20:33 +02:00
Joel Rosdahl
ff2a6f1b3a Add x_readlink() utility function 2010-08-01 17:20:33 +02:00
Joel Rosdahl
a98cbbc465 Introduce and use function-like macros str_eq() and str_startswith() 2010-08-01 17:20:15 +02:00
Joel Rosdahl
2538f20aab Introduce cc_reset(), enabling the test suite to reset global state 2010-08-01 17:20:15 +02:00
Joel Rosdahl
0ea9d9e0a3 Introduce x_rename(), which unlink()s destination if necessary before rename() 2010-07-21 15:15:42 +02:00
Joel Rosdahl
a9b2f164ff Add comments about which files declarations in ccache.h belong to 2010-07-18 14:10:29 +02:00
Joel Rosdahl
187817a707 Remove now unused x_asprintf() 2010-07-17 23:06:19 +02:00
Joel Rosdahl
8005f7a243 Add a function that formats a string in a handier way than x_asprintf 2010-07-17 22:51:29 +02:00
Joel Rosdahl
4e07d0ea7d Implement args_extend function 2010-07-17 18:49:12 +02:00
Joel Rosdahl
ca8330398f Get rid of the ARGS typedef; use struct args explicitly 2010-07-17 18:31:56 +02:00
Ramiro Polla
4d7b4810bd Win32 support 2010-07-16 16:56:43 -03:00
Ramiro Polla
3a442eb97b Implement is_full_path() helper function 2010-07-16 16:54:14 -03:00
Joel Rosdahl
8809f726ab Merge branch 'unittest'
* unittest:
  Regenerate test/suites.h on Makefile updates
  Add CHECK macros for ARGS
  Improve CHECK_{STR,UNS,INT}_EQ macros
  Let basedir("foo") return "."
  Add framework for tests written in C
  Split the main function into a separate compilation unit
  Simplify getopt_long() usage
  Add args_init_from_string function
  Add stats_get_pending() function
  Include all dependency files in .deps to make it work with sources in subdirs

Conflicts:
	configure.ac
2010-07-16 17:08:15 +02:00
Joel Rosdahl
2bacab3f92 Use semicolon as the CCACHE_EXTRAFILES path separator on Windows 2010-07-16 16:56:48 +02:00
Ramiro Polla
f38e9f397a Add a define for path delimiter 2010-07-16 16:19:54 +02:00
Ramiro Polla
6014657219 Implement compare_executable_name() helper function 2010-07-16 16:03:00 +02:00
Ramiro Polla
82b7876473 Implement is_absolute_path() helper function 2010-07-16 16:01:02 +02:00
Ramiro Polla
1fc590556f Introduce and use x_fmmap() and x_munmap()
x_fmmap() opens, stats, and mmap()s a file. x_munmap() is currently just a
wrapper around munmap().
2010-07-16 15:45:52 +02:00
Joel Rosdahl
033d21e329 Add CHECK macros for ARGS 2010-07-16 14:40:21 +02:00
Joel Rosdahl
d674630d24 Add args_init_from_string function 2010-07-15 19:20:33 +02:00
Joel Rosdahl
117e0c6e3a Add stats_get_pending() function 2010-07-15 19:20:33 +02:00
Joel Rosdahl
a417ea68b2 Add exit functions functionality 2010-07-14 18:59:06 +02:00
Joel Rosdahl
fdad44c641 Let stats_update() update counters in memory and stats_flush() write to disk 2010-07-14 15:57:57 +02:00
Joel Rosdahl
62511a1d5f Rename process_args to cc_process_args and let it return failure status 2010-07-14 14:12:00 +02:00
Joel Rosdahl
342dae0d59 Include git revision info in version number 2010-06-09 21:10:03 +02:00
Joel Rosdahl
7acf0db7ab Count actual cache size and number of files again 2010-06-08 23:12:24 +02:00
Joel Rosdahl
ba0be15954 Rename "not a C/C++ file" counter to "unsupported source language" 2010-06-03 22:07:39 +02:00
Joel Rosdahl
2d3de36d24 Add args_copy function 2010-06-02 23:28:36 +02:00
Joel Rosdahl
dd153c944a Fix handling of -finput-charset when CCACHE_CPP2 is in effect 2010-06-02 20:25:36 +02:00
Joel Rosdahl
eb5d9bd3be Add some opt-in sloppiness 2010-05-17 22:29:42 +02:00
Joel Rosdahl
1737ec889f Refactor log functions yet some 2010-05-10 21:37:19 +02:00
Joel Rosdahl
4795f6e3de Improve log initialization 2010-05-10 18:30:17 +02:00
Joel Rosdahl
247f619565 Dont' crash when logging is disabled 2010-05-09 23:23:43 +02:00
Joel Rosdahl
862e729f07 Log executed commands 2010-05-09 22:51:16 +02:00
Joel Rosdahl
2c0d4095ad Introduce cc_log_no_newline function 2010-05-09 22:43:04 +02:00
Joel Rosdahl
39f48df93b Extract print_command function from print_executed_command 2010-05-09 22:19:22 +02:00
Joel Rosdahl
c609b16cc0 Rename temporary object file to cached object file if possible
This avoids copying the object file unnecessarily in the common case when we
store object files uncompressed in the cache.
2010-05-09 17:50:20 +02:00