Blame view

buildroot/buildroot-2016.08.1/docs/manual/ccache-support.txt 2.27 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  // -*- mode:doc; -*-
  // vim: set syntax=asciidoc:
  
  [[ccache]]
  ==== Using +ccache+ in Buildroot
  
  http://ccache.samba.org[ccache] is a compiler cache. It stores the
  object files resulting from each compilation process, and is able to
  skip future compilation of the same source file (with same compiler
  and same arguments) by using the pre-existing object files. When doing
  almost identical builds from scratch a number of times, it can nicely
  speed up the build process.
  
  +ccache+ support is integrated in Buildroot. You just have to enable
  +Enable compiler cache+ in +Build options+. This will automatically
  build +ccache+ and use it for every host and target compilation.
  
  The cache is located in +$HOME/.buildroot-ccache+. It is stored
  outside of Buildroot output directory so that it can be shared by
  separate Buildroot builds. If you want to get rid of the cache, simply
  remove this directory.
  
  You can get statistics on the cache (its size, number of hits,
  misses, etc.) by running +make ccache-stats+.
  
  The make target +ccache-options+ and the +CCACHE_OPTIONS+ variable
  provide more generic access to the ccache. For example
  
  -----------------
  # set cache limit size
  make CCACHE_OPTIONS="--max-size=5G" ccache-options
  
  # zero statistics counters
  make CCACHE_OPTIONS="--zero-stats" ccache-options
  -----------------
  
  +ccache+ makes a hash of the source files and of the compiler options.
  If a compiler option is different, the cached object file will not be
  used. Many compiler options, however, contain an absolute path to the
  staging directory. Because of this, building in a different output
  directory would lead to many cache misses.
  
  To avoid this issue, buildroot has the +Use relative paths+ option
  (+BR2_CCACHE_USE_BASEDIR+). This will rewrite all absolute paths that
  point inside the output directory into relative paths. Thus, changing
  the output directory no longer leads to cache misses.
  
  A disadvantage of the relative paths is that they also end up to be
  relative paths in the object file. Therefore, for example, the debugger
  will no longer find the file, unless you cd to the output directory
  first.
  
  See https://ccache.samba.org/manual.html#_compiling_in_different_directories[the
  ccache manual's section on "Compiling in different directories"] for
  more details about this rewriting of absolute paths.