summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual/closer-look.xml
diff options
context:
space:
mode:
authorScott Rifenbark <srifenbark@gmail.com>2016-09-01 10:10:47 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-23 15:27:32 +0100
commitf1879193b90b27f3c9b1e1dccc9097d5913d95b6 (patch)
treeb35e26760ea1e84bce0d6412228cdf77a607c683 /documentation/ref-manual/closer-look.xml
parentba8bc1ba3933b624a4cf61e75d46da8823291292 (diff)
downloadpoky-f1879193b90b27f3c9b1e1dccc9097d5913d95b6.tar.gz
ref-manual: New section clarifying stamps, input checksums and sstate cache
Fixes [YOCTO #10172] I added a new section on how BitBake reruns tasks based on the stamps files. Also put in some cross-referencing links to that new section in the stamps entry for the structure chapter and in the STAMP variable in the glossary. (From yocto-docs rev: da8779d9eb85473cd6b0f74e9e1371e1d277890f) Signed-off-by: Scott Rifenbark <srifenbark@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/ref-manual/closer-look.xml')
-rw-r--r--documentation/ref-manual/closer-look.xml61
1 files changed, 61 insertions, 0 deletions
diff --git a/documentation/ref-manual/closer-look.xml b/documentation/ref-manual/closer-look.xml
index e7b423f66f..7aae2e27a9 100644
--- a/documentation/ref-manual/closer-look.xml
+++ b/documentation/ref-manual/closer-look.xml
@@ -1210,6 +1210,67 @@
1210 </para> 1210 </para>
1211 </section> 1211 </section>
1212 1212
1213 <section id='stamp-files-and-the-rerunning-of-tasks'>
1214 <title>Stamp Files and the Rerunning of Tasks</title>
1215
1216 <para>
1217 For each task that completes successfully, BitBake writes a
1218 stamp file into the
1219 <link linkend='var-STAMPS_DIR'><filename>STAMPS_DIR</filename></link>
1220 directory.
1221 The beginning of the stamp file's filename is determined by the
1222 <link linkend='var-STAMP'><filename>STAMP</filename></link>
1223 variable, and the end of the name consists of the task's name
1224 and current
1225 <ulink url='&YOCTO_DOCS_BB_URL;#checksums'>input checksum</ulink>.
1226 <note>
1227 This naming scheme assumes that
1228 <ulink url='&YOCTO_DOCS_BB_URL;#var-BB_SIGNATURE_HANDLER'><filename>BB_SIGNATURE_HANDLER</filename></ulink>
1229 is "OEBasicHash", which is almost always the case in
1230 current OpenEmbedded.
1231 </note>
1232 To determine if a task needs to be rerun, BitBake checks if a
1233 stamp file with a matching input checksum exists for the task.
1234 If such a stamp file exists, the task's output is assumed to
1235 exist and still be valid.
1236 If the file does not exist, the task is rerun.
1237 <note>
1238 <para>The stamp mechanism is more general than the shared
1239 state (sstate) cache mechanism described in the
1240 "<link linkend='setscene-tasks-and-shared-state'>Setscene Tasks and Shared State</link>"
1241 section.
1242 BitBake avoids rerunning any task that has a valid
1243 stamp file, not just tasks that can be accelerated through
1244 the sstate cache.</para>
1245 <para>However, you should realize that stamp files only
1246 serve as a marker that some work has been done and these
1247 files do not record task output.
1248 The actual task output would usually be somewhere in
1249 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
1250 (e.g. in some recipe's
1251 <link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>.)
1252 What the sstate cache mechanism adds is a way to cache task
1253 output that can then be shared between build machines.
1254 </para>
1255 </note>
1256 Since <filename>STAMPS_DIR</filename> is usually a subdirectory
1257 of <filename>TMPDIR</filename>, removing
1258 <filename>TMPDIR</filename> will also remove
1259 <filename>STAMPS_DIR</filename>, which means tasks will
1260 properly be rerun to repopulate <filename>TMPDIR</filename>.
1261 </para>
1262
1263 <para>
1264 If you want some task to always be considered "out of date",
1265 you can mark it with the
1266 <ulink url='&YOCTO_DOCS_BB_URL;#variable-flags'><filename>nostamp</filename></ulink>
1267 varflag.
1268 If some other task depends on such a task, then that task will
1269 also always be considered out of date, which might not be what
1270 you want.
1271 </para>
1272 </section>
1273
1213 <section id='setscene-tasks-and-shared-state'> 1274 <section id='setscene-tasks-and-shared-state'>
1214 <title>Setscene Tasks and Shared State</title> 1275 <title>Setscene Tasks and Shared State</title>
1215 1276