summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual/ref-qa-checks.xml
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2014-05-23 18:35:56 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-05-30 16:32:15 +0100
commit3dd477c469af888cb222c160a5fda0f335c97acd (patch)
tree8e6e5be746e92d59aab215bbb409042f6750d6c2 /documentation/ref-manual/ref-qa-checks.xml
parent594833891de88c057e8c39eb648996bb757cbaed (diff)
downloadpoky-3dd477c469af888cb222c160a5fda0f335c97acd.tar.gz
ref-manual: Applied review edits to QA messages and insane.bbclass.
Fixes [YOCTO #6159] Edits from Paul Eggleton included some reformatting, some minor wording tweaks, and edits to a couple tests as described in the insane.bbclass. (From yocto-docs rev: b42ef1bd51cb20f6bbb6bf812999e3a35b332339) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/ref-manual/ref-qa-checks.xml')
-rw-r--r--documentation/ref-manual/ref-qa-checks.xml1370
1 files changed, 860 insertions, 510 deletions
diff --git a/documentation/ref-manual/ref-qa-checks.xml b/documentation/ref-manual/ref-qa-checks.xml
index 16203e6dbf..c31f9c792f 100644
--- a/documentation/ref-manual/ref-qa-checks.xml
+++ b/documentation/ref-manual/ref-qa-checks.xml
@@ -9,10 +9,19 @@
9 <title>Introduction</title> 9 <title>Introduction</title>
10 10
11 <para> 11 <para>
12 Fixing QA issues in your recipes can take significant time and effort 12 When building a recipe, the OpenEmbedded build system performs
13 when writing new recipes. 13 various QA checks on the output to ensure that common issues are
14 Sometimes you might be tempted to ignore a QA message or even to 14 detected and reported.
15 disable these QA checks. 15 Some software builds that use new recipes complete with no problems.
16 However, some do not.
17 When issues are reported, it could take a little time
18 to resolve them.
19 </para>
20
21 <para>
22 While it is tempting to ignore a QA message or even to
23 disable QA checks, it is best to try and resolve any
24 reported QA issues.
16 This chapter provides a list of the QA messages and brief explanations 25 This chapter provides a list of the QA messages and brief explanations
17 of the issues you could encounter so that you can properly resolve 26 of the issues you could encounter so that you can properly resolve
18 problems. 27 problems.
@@ -21,11 +30,18 @@
21 <para> 30 <para>
22 The next section provides a list of all QA error and warning 31 The next section provides a list of all QA error and warning
23 messages based on a default configuration. 32 messages based on a default configuration.
24 Each entry provides the message or error form along with an explanation. 33 Each entry provides the message or error form along with an
34 explanation.
25 <note> 35 <note>
26 <title>Notes</title> 36 <title>Notes</title>
27 <itemizedlist> 37 <itemizedlist>
28 <listitem><para> 38 <listitem><para>
39 At the end of each message, the name of the offending
40 QA test (as listed in the
41 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
42 section) appears within square brackets.
43 </para></listitem>
44 <listitem><para>
29 As mentioned, this list of error and warning messages is for 45 As mentioned, this list of error and warning messages is for
30 QA checks only. 46 QA checks only.
31 The list does not cover all possible build errors or 47 The list does not cover all possible build errors or
@@ -45,700 +61,1013 @@
45 61
46 <para> 62 <para>
47 <itemizedlist> 63 <itemizedlist>
48 <listitem><para> 64 <listitem>
49 <literallayout class='monospaced'> 65 <para>
66 <code>
50 &lt;packagename&gt;: &lt;path&gt; is using libexec please relocate to &lt;libexecdir&gt; [libexec] 67 &lt;packagename&gt;: &lt;path&gt; is using libexec please relocate to &lt;libexecdir&gt; [libexec]
51 </literallayout> 68 </code>
52 The specified package contains files in 69 </para>
53 <filename>/usr/libexec</filename>. 70
54 By default, <filename>libexecdir</filename> is set to 71 <para>
55 "${libdir}/${BPN}" rather than to "/usr/libexec". 72 The specified package contains files in
56 Thus, installing to <filename>/usr/libexec</filename> 73 <filename>/usr/libexec</filename>.
57 is likely not desirable. 74 By default, <filename>libexecdir</filename> is set to
58 </para></listitem> 75 "${libdir}/${BPN}" rather than to "/usr/libexec".
76 Thus, installing to <filename>/usr/libexec</filename>
77 is likely not desirable.
78 </para>
79
80 <para>
81 &nbsp;
82 </para>
83 </listitem>
59 </itemizedlist> 84 </itemizedlist>
60 </para> 85 </para>
61 86
62 <para> 87 <para>
63 <itemizedlist> 88 <itemizedlist>
64 <listitem><para> 89 <listitem>
65 <literallayout class='monospaced'> 90 <para>
91 <code>
66 package &lt;packagename&gt; contains bad RPATH &lt;rpath&gt; in file &lt;file&gt; [rpaths] 92 package &lt;packagename&gt; contains bad RPATH &lt;rpath&gt; in file &lt;file&gt; [rpaths]
67 </literallayout> 93 </code>
68 The specified binary produced by the recipe contains dynamic 94 </para>
69 library load paths (rpaths) that contain build system paths 95
70 such as 96 <para>
71 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>, 97 The specified binary produced by the recipe contains dynamic
72 which could potentially be a security issue. 98 library load paths (rpaths) that contain build system paths
73 Check for bad <filename>-rpath</filename> options being passed 99 such as
74 to the linker in your 100 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>,
75 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link> 101 which are incorrect for the target and could potentially
76 log. 102 be a security issue.
77 Depending on the build system used by the software being built, 103 Check for bad <filename>-rpath</filename> options being
78 there might be a configure option to disable rpath usage 104 passed to the linker in your
79 completely within the build of the software. 105 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
80 </para></listitem> 106 log.
107 Depending on the build system used by the software being
108 built, there might be a configure option to disable rpath
109 usage completely within the build of the software.
110 </para>
111
112 <para>
113 &nbsp;
114 </para>
115 </listitem>
81 </itemizedlist> 116 </itemizedlist>
82 </para> 117 </para>
83 118
84 <para> 119 <para>
85 <itemizedlist> 120 <itemizedlist>
86 <listitem><para> 121 <listitem>
87 <literallayout class='monospaced'> 122 <para>
123 <code>
88 &lt;packagename&gt;: &lt;file&gt; contains probably-redundant RPATH &lt;rpath&gt; [useless-rpaths] 124 &lt;packagename&gt;: &lt;file&gt; contains probably-redundant RPATH &lt;rpath&gt; [useless-rpaths]
89 </literallayout> 125 </code>
90 The specified binary produced by the recipe contains dynamic 126 </para>
91 library load paths (rpaths) that on a standard system are 127
92 searched by default by the linker (e.g. 128 <para>
93 <filename>/lib</filename> and <filename>/usr/lib</filename>). 129 The specified binary produced by the recipe contains dynamic
94 While these paths will not cause any breakage, they do waste 130 library load paths (rpaths) that on a standard system are
95 space and are unnecessary. 131 searched by default by the linker (e.g.
96 Depending on the build system used by the software being built, 132 <filename>/lib</filename> and <filename>/usr/lib</filename>).
97 there might be a configure option to disable rpath usage 133 While these paths will not cause any breakage, they do waste
98 completely within the build of the software. 134 space and are unnecessary.
99 </para></listitem> 135 Depending on the build system used by the software being
136 built, there might be a configure option to disable rpath
137 usage completely within the build of the software.
138 </para>
139
140 <para>
141 &nbsp;
142 </para>
143 </listitem>
100 </itemizedlist> 144 </itemizedlist>
101 </para> 145 </para>
102 146
103 <para> 147 <para>
104 <itemizedlist> 148 <itemizedlist>
105 <listitem><para> 149 <listitem>
106 <literallayout class='monospaced'> 150 <para>
151 <code>
107 non -dev/-dbg/-nativesdk package contains symlink .so: &lt;packagename&gt; path '&lt;path&gt;' [dev-so] 152 non -dev/-dbg/-nativesdk package contains symlink .so: &lt;packagename&gt; path '&lt;path&gt;' [dev-so]
108 </literallayout> 153 </code>
109 Symlink <filename>.so</filename> files are for development 154 </para>
110 only, and should therefore go into the 155
111 <filename>-dev</filename> package. 156 <para>
112 This situation might occur if you add 157 Symlink <filename>.so</filename> files are for development
113 <filename>*.so*</filename> rather than 158 only, and should therefore go into the
114 <filename>*.so.*</filename> to a non-dev package. 159 <filename>-dev</filename> package.
115 Change 160 This situation might occur if you add
116 <link linkend='var-FILES'><filename>FILES</filename></link> 161 <filename>*.so*</filename> rather than
117 (and possibly 162 <filename>*.so.*</filename> to a non-dev package.
118 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>) 163 Change
119 such that the specified <filename>.so</filename> file goes 164 <link linkend='var-FILES'><filename>FILES</filename></link>
120 into an appropriate <filename>-dev</filename> package. 165 (and possibly
121 </para></listitem> 166 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>)
167 such that the specified <filename>.so</filename> file goes
168 into an appropriate <filename>-dev</filename> package.
169 </para>
170
171 <para>
172 &nbsp;
173 </para>
174 </listitem>
122 </itemizedlist> 175 </itemizedlist>
123 </para> 176 </para>
124 177
125 <para> 178 <para>
126 <itemizedlist> 179 <itemizedlist>
127 <listitem><para> 180 <listitem>
128 <literallayout class='monospaced'> 181 <para>
182 <code>
129 non -staticdev package contains static .a library: &lt;packagename&gt; path '&lt;path&gt;' [staticdev] 183 non -staticdev package contains static .a library: &lt;packagename&gt; path '&lt;path&gt;' [staticdev]
130 </literallayout> 184 </code>
131 Static <filename>.a</filename> library files should go into 185 </para>
132 a <filename>-staticdev</filename> package. 186
133 Change 187 <para>
134 <link linkend='var-FILES'><filename>FILES</filename></link> 188 Static <filename>.a</filename> library files should go into
135 (and possibly 189 a <filename>-staticdev</filename> package.
136 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>) 190 Change
137 such that the specified <filename>.a</filename> file goes into 191 <link linkend='var-FILES'><filename>FILES</filename></link>
138 an appropriate <filename>-staticdev</filename> package. 192 (and possibly
139 </para></listitem> 193 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>)
194 such that the specified <filename>.a</filename> file goes
195 into an appropriate <filename>-staticdev</filename> package.
196 </para>
197
198 <para>
199 &nbsp;
200 </para>
201 </listitem>
140 </itemizedlist> 202 </itemizedlist>
141 </para> 203 </para>
142 204
143 <para> 205 <para>
144 <itemizedlist> 206 <itemizedlist>
145 <listitem><para> 207 <listitem>
146 <literallayout class='monospaced'> 208 <para>
209 <code>
147 &lt;packagename&gt;: found library in wrong location [libdir] 210 &lt;packagename&gt;: found library in wrong location [libdir]
148 </literallayout> 211 </code>
149 The specified file may have been installed into an incorrect 212 </para>
150 (possibly hardcoded) installation path. 213
151 For example, this test will catch recipes that install 214 <para>
152 <filename>/lib/bar.so</filename> when 215 The specified file may have been installed into an incorrect
153 <filename>${base_libdir}</filename> is "lib32". 216 (possibly hardcoded) installation path.
154 Another example is when recipes install 217 For example, this test will catch recipes that install
155 <filename>/usr/lib64/foo.so</filename> when 218 <filename>/lib/bar.so</filename> when
156 <filename>${libdir}</filename> is "/usr/lib". 219 <filename>${base_libdir}</filename> is "lib32".
157 False positives occasionally exist. 220 Another example is when recipes install
158 For these cases add "libdir" to 221 <filename>/usr/lib64/foo.so</filename> when
159 <link linkend='var-INSANE_SKIP'><filename>INSANE_SKIP</filename></link> 222 <filename>${libdir}</filename> is "/usr/lib".
160 for the package. 223 False positives occasionally exist.
161 </para></listitem> 224 For these cases add "libdir" to
225 <link linkend='var-INSANE_SKIP'><filename>INSANE_SKIP</filename></link>
226 for the package.
227 </para>
228
229 <para>
230 &nbsp;
231 </para>
232 </listitem>
162 </itemizedlist> 233 </itemizedlist>
163 </para> 234 </para>
164 235
165 <para> 236 <para>
166 <itemizedlist> 237 <itemizedlist>
167 <listitem><para> 238 <listitem>
168 <literallayout class='monospaced'> 239 <para>
240 <code>
169 non debug package contains .debug directory: &lt;packagename&gt; path &lt;path&gt; [debug-files] 241 non debug package contains .debug directory: &lt;packagename&gt; path &lt;path&gt; [debug-files]
170 </literallayout> 242 </code>
171 The specified package contains a 243 </para>
172 <filename>.debug</filename> directory, which should not appear 244
173 in anything but the <filename>-dbg</filename> package. 245 <para>
174 This situation might occur if you add a path which contains 246 The specified package contains a
175 a <filename>.debug</filename> directory and do not explicitly 247 <filename>.debug</filename> directory, which should not
176 add the <filename>.debug</filename> directory to the 248 appear in anything but the <filename>-dbg</filename>
177 <filename>-dbg</filename> package. 249 package.
178 If this is the case, add the <filename>.debug</filename> 250 This situation might occur if you add a path which contains
179 directory explicitly to <filename>FILES_${PN}-dbg</filename>. 251 a <filename>.debug</filename> directory and do not
180 See 252 explicitly add the <filename>.debug</filename> directory
181 <link linkend='var-FILES'><filename>FILES</filename></link> 253 to the <filename>-dbg</filename> package.
182 for additional information on <filename>FILES</filename>. 254 If this is the case, add the <filename>.debug</filename>
183 </para></listitem> 255 directory explicitly to
256 <filename>FILES_${PN}-dbg</filename>.
257 See
258 <link linkend='var-FILES'><filename>FILES</filename></link>
259 for additional information on <filename>FILES</filename>.
260 </para>
261
262 <para>
263 &nbsp;
264 </para>
265 </listitem>
184 </itemizedlist> 266 </itemizedlist>
185 </para> 267 </para>
186 268
187 <para> 269 <para>
188 <itemizedlist> 270 <itemizedlist>
189 <listitem><para> 271 <listitem>
190 <literallayout class='monospaced'> 272 <para>
273 <code>
191 Architecture did not match (&lt;machine_arch&gt; to &lt;file_arch&gt;) on &lt;file&gt; 274 Architecture did not match (&lt;machine_arch&gt; to &lt;file_arch&gt;) on &lt;file&gt;
192 </literallayout> 275 </code>
193 By default, the OpenEmbedded build system checks the Executable 276 </para>
194 and Linkable Format (ELF) type, bit size, and endianness of 277
195 any binaries to ensure they match the target architecture. 278 <para>
196 This test fails if any binaries do not match the type since 279 By default, the OpenEmbedded build system checks the
197 there would be an incompatibility. 280 Executable and Linkable Format (ELF) type, bit size, and
198 The test could indicate that the wrong compiler or compiler 281 endianness of any binaries to ensure they match the
199 options have been used. 282 target architecture.
200 Sometimes software, like bootloaders, might need to bypass this 283 This test fails if any binaries do not match the type since
201 check. 284 there would be an incompatibility.
202 If the file you receive the error for is firmware that is not 285 The test could indicate that the wrong compiler or compiler
203 intended to be executed within the target operating system 286 options have been used.
204 or is intended to run on a separate processor within the 287 Sometimes software, like bootloaders, might need to
205 device, you can add "arch" to 288 bypass this check.
206 <link linkend='var-INSANE_SKIP'><filename>INSANE_SKIP</filename></link> 289 If the file you receive the error for is firmware
207 for the package. 290 that is not intended to be executed within the target
208 Another option is to check the 291 operating system or is intended to run on a separate
209 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link> 292 processor within the device, you can add "arch" to
210 log and verify that the 293 <link linkend='var-INSANE_SKIP'><filename>INSANE_SKIP</filename></link>
211 compiler options being used are correct. 294 for the package.
212 </para></listitem> 295 Another option is to check the
296 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
297 log and verify that the compiler options being used
298 are correct.
299 </para>
300
301 <para>
302 &nbsp;
303 </para>
304 </listitem>
213 </itemizedlist> 305 </itemizedlist>
214 </para> 306 </para>
215 307
216 <para> 308 <para>
217 <itemizedlist> 309 <itemizedlist>
218 <listitem><para> 310 <listitem>
219 <literallayout class='monospaced'> 311 <para>
312 <code>
220 Bit size did not match (&lt;machine_bits&gt; to &lt;file_bits&gt;) &lt;recipe&gt; on &lt;file&gt; 313 Bit size did not match (&lt;machine_bits&gt; to &lt;file_bits&gt;) &lt;recipe&gt; on &lt;file&gt;
221 </literallayout> 314 </code>
222 By default, the OpenEmbedded build system checks the Executable 315 </para>
223 and Linkable Format (ELF) type, bit size, and endianness of 316
224 any binaries to ensure they match the target architecture. 317 <para>
225 This test fails if any binaries do not match the type since 318 By default, the OpenEmbedded build system checks
226 there would be an incompatibility. 319 the Executable and Linkable Format (ELF) type,
227 The test could indicate that the wrong compiler or compiler 320 bit size, and endianness of any binaries to ensure
228 options have been used. 321 they match the target architecture.
229 Sometimes software, like bootloaders, might need to bypass this 322 This test fails if any binaries do not match the type since
230 check. 323 there would be an incompatibility.
231 If the file you receive the error for is firmware that is not 324 The test could indicate that the wrong compiler or compiler
232 intended to be executed within the target operating system 325 options have been used.
233 or is intended to run on a separate processor within the 326 Sometimes software, like bootloaders, might need to
234 device, you can add "arch" to 327 bypass this check.
235 <link linkend='var-INSANE_SKIP'><filename>INSANE_SKIP</filename></link> 328 If the file you receive the error for is firmware that
236 for the package. 329 is not intended to be executed within the target
237 Another option is to check the 330 operating system or is intended to run on a separate
238 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link> 331 processor within the device, you can add "arch" to
239 log and verify that the 332 <link linkend='var-INSANE_SKIP'><filename>INSANE_SKIP</filename></link>
240 compiler options being used are correct. 333 for the package.
241 </para></listitem> 334 Another option is to check the
335 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
336 log and verify that the compiler options being used are
337 correct.
338 </para>
339
340 <para>
341 &nbsp;
342 </para>
343 </listitem>
242 </itemizedlist> 344 </itemizedlist>
243 </para> 345 </para>
244 346
245 <para> 347 <para>
246 <itemizedlist> 348 <itemizedlist>
247 <listitem><para> 349 <listitem>
248 <literallayout class='monospaced'> 350 <para>
351 <code>
249 Endianness did not match (&lt;machine_endianness&gt; to &lt;file_endianness&gt;) on &lt;file&gt; [arch] 352 Endianness did not match (&lt;machine_endianness&gt; to &lt;file_endianness&gt;) on &lt;file&gt; [arch]
250 </literallayout> 353 </code>
251 By default, the OpenEmbedded build system checks the Executable 354 </para>
252 and Linkable Format (ELF) type, bit size, and endianness of 355
253 any binaries to ensure they match the target architecture. 356 <para>
254 This test fails if any binaries do not match the type since 357 By default, the OpenEmbedded build system checks
255 there would be an incompatibility. 358 the Executable and Linkable Format (ELF) type, bit
256 The test could indicate that the wrong compiler or compiler 359 size, and endianness of any binaries to ensure they
257 options have been used. 360 match the target architecture.
258 Sometimes software, like bootloaders, might need to bypass this 361 This test fails if any binaries do not match the type since
259 check. 362 there would be an incompatibility.
260 If the file you receive the error for is firmware that is not 363 The test could indicate that the wrong compiler or compiler
261 intended to be executed within the target operating system 364 options have been used.
262 or is intended to run on a separate processor within the 365 Sometimes software, like bootloaders, might need to
263 device, you can add "arch" to 366 bypass this check.
264 <link linkend='var-INSANE_SKIP'><filename>INSANE_SKIP</filename></link> 367 If the file you receive the error for is firmware
265 for the package. 368 that is not intended to be executed within the target
266 Another option is to check the 369 operating system or is intended to run on a separate
267 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link> 370 processor within the device, you can add "arch" to
268 log and verify that the 371 <link linkend='var-INSANE_SKIP'><filename>INSANE_SKIP</filename></link>
269 compiler options being used are correct. 372 for the package.
270 </para></listitem> 373 Another option is to check the
374 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
375 log and verify that the compiler options being used
376 are correct.
377 </para>
378
379 <para>
380 &nbsp;
381 </para>
382 </listitem>
271 </itemizedlist> 383 </itemizedlist>
272 </para> 384 </para>
273 385
274 <para> 386 <para>
275 <itemizedlist> 387 <itemizedlist>
276 <listitem><para> 388 <listitem>
277 <literallayout class='monospaced'> 389 <para>
390 <code>
278 ELF binary '&lt;file&gt;' has relocations in .text [textrel] 391 ELF binary '&lt;file&gt;' has relocations in .text [textrel]
279 </literallayout> 392 </code>
280 The specified ELF binary contains relocations in its 393 </para>
281 <filename>.text</filename> sections. 394
282 This situation can result in a performance impact at runtime. 395 <para>
283 <note> 396 The specified ELF binary contains relocations in its
284 A bug currently exists that causes this warning to appear 397 <filename>.text</filename> sections.
285 erroneously. 398 This situation can result in a performance impact
286 See 399 at runtime.
287 <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=6104'></ulink> 400 <note>
288 for more information. 401 A bug currently exists that causes this
289 </note> 402 warning to appear erroneously.
290 </para></listitem> 403 See
404 <ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=6104'></ulink>
405 for more information.
406 </note>
407 </para>
408
409 <para>
410 &nbsp;
411 </para>
412 </listitem>
291 </itemizedlist> 413 </itemizedlist>
292 </para> 414 </para>
293 415
294 <para> 416 <para>
295 <itemizedlist> 417 <itemizedlist>
296 <listitem><para> 418 <listitem>
297 <literallayout class='monospaced'> 419 <para>
420 <code>
298 No GNU_HASH in the elf binary: '&lt;file&gt;' [ldflags] 421 No GNU_HASH in the elf binary: '&lt;file&gt;' [ldflags]
299 </literallayout> 422 </code>
300 This indicates that binaries produced when building the 423 </para>
301 recipe have not been linked with the 424
302 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link> 425 <para>
303 options provided by the build system. 426 This indicates that binaries produced when building the
304 Check to be sure that the <filename>LDFLAGS</filename> variable 427 recipe have not been linked with the
305 is being passed to the linker command. 428 <link linkend='var-LDFLAGS'><filename>LDFLAGS</filename></link>
306 A common workaround for this situation is to pass in 429 options provided by the build system.
307 <filename>LDFLAGS</filename> using 430 Check to be sure that the <filename>LDFLAGS</filename>
308 <link linkend='var-TARGET_CC_ARCH'><filename>TARGET_CC_ARCH</filename></link> 431 variable is being passed to the linker command.
309 within the recipe as follows: 432 A common workaround for this situation is to pass in
310 <literallayout class='monospaced'> 433 <filename>LDFLAGS</filename> using
434 <link linkend='var-TARGET_CC_ARCH'><filename>TARGET_CC_ARCH</filename></link>
435 within the recipe as follows:
436 <literallayout class='monospaced'>
311 TARGET_CC_ARCH += "${LDFLAGS}" 437 TARGET_CC_ARCH += "${LDFLAGS}"
312 </literallayout> 438 </literallayout>
313 </para></listitem> 439 </para>
440
441 <para>
442 &nbsp;
443 </para>
444 </listitem>
314 </itemizedlist> 445 </itemizedlist>
315 </para> 446 </para>
316 447
317 <para> 448 <para>
318 <itemizedlist> 449 <itemizedlist>
319 <listitem><para> 450 <listitem>
320 <literallayout class='monospaced'> 451 <para>
452 <code>
321 Package &lt;packagename&gt; contains Xorg driver (&lt;driver&gt;) but no xorg-abi- dependencies [xorg-driver-abi] 453 Package &lt;packagename&gt; contains Xorg driver (&lt;driver&gt;) but no xorg-abi- dependencies [xorg-driver-abi]
322 </literallayout> 454 </code>
323 The specified package contains an Xorg driver, but does not 455 </para>
324 have a corresponding ABI package dependency. 456
325 The xserver-xorg recipe provides driver ABI names. 457 <para>
326 All drivers should depend on the ABI versions that they have 458 The specified package contains an Xorg driver, but does not
327 been built against. 459 have a corresponding ABI package dependency.
328 Driver recipes that include 460 The xserver-xorg recipe provides driver ABI names.
329 <filename>xorg-driver-input.inc</filename> or 461 All drivers should depend on the ABI versions that they have
330 <filename>xorg-driver-video.inc</filename> will automatically 462 been built against.
331 get these versions. 463 Driver recipes that include
332 Consequently, you should only need to explicitly add 464 <filename>xorg-driver-input.inc</filename> or
333 dependencies to binary driver recipes. 465 <filename>xorg-driver-video.inc</filename> will
334 </para></listitem> 466 automatically get these versions.
467 Consequently, you should only need to explicitly add
468 dependencies to binary driver recipes.
469 </para>
470
471 <para>
472 &nbsp;
473 </para>
474 </listitem>
335 </itemizedlist> 475 </itemizedlist>
336 </para> 476 </para>
337 477
338 <para> 478 <para>
339 <itemizedlist> 479 <itemizedlist>
340 <listitem><para> 480 <listitem>
341 <literallayout class='monospaced'> 481 <para>
482 <code>
342 The /usr/share/info/dir file is not meant to be shipped in a particular package. [infodir] 483 The /usr/share/info/dir file is not meant to be shipped in a particular package. [infodir]
343 </literallayout> 484 </code>
344 The <filename>/usr/share/info/dir</filename> should not be 485 </para>
345 packaged. 486
346 Add the following line to your 487 <para>
347 <link linkend='ref-tasks-install'><filename>do_install</filename></link> 488 The <filename>/usr/share/info/dir</filename> should not be
348 task or to your <filename>do_install_append</filename> within 489 packaged.
349 the recipe as follows: 490 Add the following line to your
350 <literallayout class='monospaced'> 491 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
492 task or to your <filename>do_install_append</filename>
493 within the recipe as follows:
494 <literallayout class='monospaced'>
351 rm ${D}${infodir}/dir 495 rm ${D}${infodir}/dir
352 </literallayout> 496 </literallayout>
353 </para></listitem> 497 </para>
498
499 <para>
500 &nbsp;
501 </para>
502 </listitem>
354 </itemizedlist> 503 </itemizedlist>
355 </para> 504 </para>
356 505
357 <para> 506 <para>
358 <itemizedlist> 507 <itemizedlist>
359 <listitem><para> 508 <listitem>
360 <literallayout class='monospaced'> 509 <para>
510 <code>
361 Symlink &lt;path&gt; in &lt;packagename&gt; points to TMPDIR [symlink-to-sysroot] 511 Symlink &lt;path&gt; in &lt;packagename&gt; points to TMPDIR [symlink-to-sysroot]
362 </literallayout> 512 </code>
363 The specified symlink points into 513 </para>
364 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> 514
365 on the host. 515 <para>
366 Such symlinks will work on the host. 516 The specified symlink points into
367 However, they are clearly invalid when running on the target. 517 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
368 You should either correct the symlink to use a relative path 518 on the host.
369 or remove the symlink. 519 Such symlinks will work on the host.
370 </para></listitem> 520 However, they are clearly invalid when running on
521 the target.
522 You should either correct the symlink to use a relative
523 path or remove the symlink.
524 </para>
525
526 <para>
527 &nbsp;
528 </para>
529 </listitem>
371 </itemizedlist> 530 </itemizedlist>
372 </para> 531 </para>
373 532
374 <para> 533 <para>
375 <itemizedlist> 534 <itemizedlist>
376 <listitem><para> 535 <listitem>
377 <literallayout class='monospaced'> 536 <para>
537 <code>
378 &lt;file&gt; failed sanity test (workdir) in path &lt;path&gt; [la] 538 &lt;file&gt; failed sanity test (workdir) in path &lt;path&gt; [la]
379 </literallayout> 539 </code>
380 The specified <filename>.la</filename> file contains 540 </para>
381 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> 541
382 paths. 542 <para>
383 Any <filename>.la</filename> file containing these paths 543 The specified <filename>.la</filename> file contains
384 is incorrect since <filename>libtool</filename> adds the 544 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
385 correct sysroot prefix when using the files automatically 545 paths.
386 itself. 546 Any <filename>.la</filename> file containing these paths
387 </para></listitem> 547 is incorrect since <filename>libtool</filename> adds the
548 correct sysroot prefix when using the files automatically
549 itself.
550 </para>
551
552 <para>
553 &nbsp;
554 </para>
555 </listitem>
388 </itemizedlist> 556 </itemizedlist>
389 </para> 557 </para>
390 558
391 <para> 559 <para>
392 <itemizedlist> 560 <itemizedlist>
393 <listitem><para> 561 <listitem>
394 <literallayout class='monospaced'> 562 <para>
563 <code>
395 &lt;file&gt; failed sanity test (tmpdir) in path &lt;path&gt; [pkgconfig] 564 &lt;file&gt; failed sanity test (tmpdir) in path &lt;path&gt; [pkgconfig]
396 </literallayout> 565 </code>
397 The specified <filename>.pc</filename> file contains 566 </para>
398 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>/</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link> 567
399 paths. 568 <para>
400 Any <filename>.pc</filename> file containing these paths is 569 The specified <filename>.pc</filename> file contains
401 incorrect since <filename>pkg-config</filename> itself adds 570 <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link><filename>/</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link>
402 the correct sysroot prefix when the files are accessed. 571 paths.
403 </para></listitem> 572 Any <filename>.pc</filename> file containing these paths is
573 incorrect since <filename>pkg-config</filename> itself adds
574 the correct sysroot prefix when the files are accessed.
575 </para>
576
577 <para>
578 &nbsp;
579 </para>
580 </listitem>
404 </itemizedlist> 581 </itemizedlist>
405 </para> 582 </para>
406 583
407 <para> 584 <para>
408 <itemizedlist> 585 <itemizedlist>
409 <listitem><para> 586 <listitem>
410 <literallayout class='monospaced'> 587 <para>
588 <code>
411 &lt;packagename&gt; rdepends on &lt;debug_packagename&gt; [debug-deps] 589 &lt;packagename&gt; rdepends on &lt;debug_packagename&gt; [debug-deps]
412 </literallayout> 590 </code>
413 A dependency exists between the specified non-dbg package 591 </para>
414 (a package whose name does not end in 592
415 <filename>-dbg</filename>) and a package that is a 593 <para>
416 <filename>dbg</filename> package. 594 A dependency exists between the specified non-dbg package
417 The <filename>dbg</filename> packages contain debug symbols 595 (i.e. a package whose name does not end in
418 and are usually brought in using the dbg-pkgs 596 <filename>-dbg</filename>) and a package that is a
419 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link> 597 <filename>dbg</filename> package.
420 value or explicitly brought into the image using 598 The <filename>dbg</filename> packages contain debug symbols
421 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link> 599 that are brought in a number of ways:
422 (or as a dependency of another <filename>dbg</filename> 600 <itemizedlist>
423 package brought in using either method). 601 <listitem><para>
424 The dependency might have been automatically added 602 Using the <filename>dbg-pkgs</filename>
425 (because the <filename>dbg</filename> package erroneously 603 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
426 contains files that it should not contain (e.g. a non-symlink 604 value.
427 <filename>.so</filename> file) or it might have been added 605 </para></listitem>
428 manually (e.g. by adding to 606 <listitem><para>
429 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>. 607 Using
430 </para></listitem> 608 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>.
609 </para></listitem>
610 <listitem><para>
611 Using either of the previous methods
612 as a dependency of another
613 <filename>dbg</filename> package.
614 </para></listitem>
615 </itemizedlist>
616 The dependency might have been automatically added
617 because the <filename>dbg</filename> package erroneously
618 contains files that it should not contain (e.g. a
619 non-symlink <filename>.so</filename> file) or it might
620 have been added manually (e.g. by adding to
621 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>).
622 </para>
623
624 <para>
625 &nbsp;
626 </para>
627 </listitem>
431 </itemizedlist> 628 </itemizedlist>
432 </para> 629 </para>
433 630
434 <para> 631 <para>
435 <itemizedlist> 632 <itemizedlist>
436 <listitem><para> 633 <listitem>
437 <literallayout class='monospaced'> 634 <para>
635 <code>
438 &lt;packagename&gt; rdepends on &lt;dev_packagename&gt; [dev-deps] 636 &lt;packagename&gt; rdepends on &lt;dev_packagename&gt; [dev-deps]
439 </literallayout> 637 </code>
440 A dependency exists between the specified non-dev package 638 </para>
441 (a package whose name does not end in 639
442 <filename>-dev</filename>) and a package that is a 640 <para>
443 <filename>dev</filename> package. 641 A dependency exists between the specified non-dev package
444 The <filename>dev</filename> packages contain development 642 (a package whose name does not end in
445 headers and are usually brought in using the dev-pkgs 643 <filename>-dev</filename>) and a package that is a
446 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link> 644 <filename>dev</filename> package.
447 value or explicitly brought into the image using 645 The <filename>dev</filename> packages contain development
448 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link> 646 headers and are usually brought in using the
449 (or as a dependency of another <filename>dev</filename> 647 <filename>dev-pkgs</filename>
450 package brought in using either method). 648 <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>
451 The dependency might have been automatically added (because 649 value or explicitly brought into the image using
452 the <filename>dev</filename> package erroneously contains 650 <link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
453 files that it should not have (e.g. a non-symlink 651 (or as a dependency of another <filename>dev</filename>
454 <filename>.so</filename> file) or it might have been added 652 package brought in using either method).
455 manually (e.g. by adding to 653 The dependency might have been automatically added (because
456 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>. 654 the <filename>dev</filename> package erroneously contains
457 </para></listitem> 655 files that it should not have (e.g. a non-symlink
656 <filename>.so</filename> file) or it might have been added
657 manually (e.g. by adding to
658 <link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>.
659 </para>
660
661 <para>
662 &nbsp;
663 </para>
664 </listitem>
458 </itemizedlist> 665 </itemizedlist>
459 </para> 666 </para>
460 667
461 <para> 668 <para>
462 <itemizedlist> 669 <itemizedlist>
463 <listitem><para> 670 <listitem>
464 <literallayout class='monospaced'> 671 <para>
672 <code>
465 &lt;var&gt;_&lt;packagename&gt; is invalid: &lt;comparison&gt; (&lt;value&gt;) only comparisons &lt;, =, &gt;, &lt;=, and &gt;= are allowed [dep-cmp] 673 &lt;var&gt;_&lt;packagename&gt; is invalid: &lt;comparison&gt; (&lt;value&gt;) only comparisons &lt;, =, &gt;, &lt;=, and &gt;= are allowed [dep-cmp]
466 </literallayout> 674 </code>
467 If you are adding a versioned dependency relationship to one 675 </para>
468 of the dependency variables 676
469 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>, 677 <para>
470 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>, 678 If you are adding a versioned dependency relationship to one
471 <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>, 679 of the dependency variables
472 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>, 680 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>,
473 <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>, 681 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>,
474 or 682 <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>,
475 <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link>), 683 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>,
476 you must only use the named comparison operators. 684 <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>,
477 Change the versioned dependency values you are adding to match 685 or
478 those listed in the message. 686 <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link>),
479 </para></listitem> 687 you must only use the named comparison operators.
688 Change the versioned dependency values you are adding
689 to match those listed in the message.
690 </para>
691
692 <para>
693 &nbsp;
694 </para>
695 </listitem>
480 </itemizedlist> 696 </itemizedlist>
481 </para> 697 </para>
482 698
483 <para> 699 <para>
484 <itemizedlist> 700 <itemizedlist>
485 <listitem><para> 701 <listitem>
486 <literallayout class='monospaced'> 702 <para>
703 <code>
487 &lt;recipename&gt;: The compile log indicates that host include and/or library paths were used. Please check the log '&lt;logfile&gt;' for more information. [compile-host-path] 704 &lt;recipename&gt;: The compile log indicates that host include and/or library paths were used. Please check the log '&lt;logfile&gt;' for more information. [compile-host-path]
488 </literallayout> 705 </code>
489 The log for the 706 </para>
490 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link> 707
491 task indicates that paths on the host were searched for files, 708 <para>
492 which is not appropriate when cross-compiling. 709 The log for the
493 Look for "is unsafe for cross-compilation" or "CROSS COMPILE 710 <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
494 Badness" in the specified log file. 711 task indicates that paths on the host were searched
495 </para></listitem> 712 for files, which is not appropriate when cross-compiling.
713 Look for "is unsafe for cross-compilation" or "CROSS COMPILE
714 Badness" in the specified log file.
715 </para>
716
717 <para>
718 &nbsp;
719 </para>
720 </listitem>
496 </itemizedlist> 721 </itemizedlist>
497 </para> 722 </para>
498 723
499 <para> 724 <para>
500 <itemizedlist> 725 <itemizedlist>
501 <listitem><para> 726 <listitem>
502 <literallayout class='monospaced'> 727 <para>
728 <code>
503 &lt;recipename&gt;: The install log indicates that host include and/or library paths were used. Please check the log '&lt;logfile&gt;' for more information. [install-host-path] 729 &lt;recipename&gt;: The install log indicates that host include and/or library paths were used. Please check the log '&lt;logfile&gt;' for more information. [install-host-path]
504 </literallayout> 730 </code>
505 The log for the 731 </para>
506 <link linkend='ref-tasks-install'><filename>do_install</filename></link> 732
507 task indicates that paths on the host were searched for files, 733 <para>
508 which is not appropriate when cross-compiling. 734 The log for the
509 Look for "is unsafe for cross-compilation" or "CROSS COMPILE 735 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
510 Badness" in the specified log file. 736 task indicates that paths on the host were searched
511 </para></listitem> 737 for files, which is not appropriate when cross-compiling.
738 Look for "is unsafe for cross-compilation"
739 or "CROSS COMPILE Badness" in the specified log file.
740 </para>
741
742 <para>
743 &nbsp;
744 </para>
745 </listitem>
512 </itemizedlist> 746 </itemizedlist>
513 </para> 747 </para>
514 748
515 <para> 749 <para>
516 <itemizedlist> 750 <itemizedlist>
517 <listitem><para> 751 <listitem>
518 <literallayout class='monospaced'> 752 <para>
753 <code>
519 This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities. Rerun configure task after fixing this. The path was '&lt;path&gt;' 754 This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities. Rerun configure task after fixing this. The path was '&lt;path&gt;'
520 </literallayout> 755 </code>
521 The log for the 756 </para>
522 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link> 757
523 task indicates that paths on the host were searched for files, 758 <para>
524 which is not appropriate when cross-compiling. 759 The log for the
525 Look for "is unsafe for cross-compilation" or "CROSS COMPILE 760 <link linkend='ref-tasks-configure'><filename>do_configure</filename></link>
526 Badness" in the specified log file. 761 task indicates that paths on the host were searched
527 </para></listitem> 762 for files, which is not appropriate when cross-compiling.
763 Look for "is unsafe for cross-compilation" or
764 "CROSS COMPILE Badness" in the specified log file.
765 </para>
766
767 <para>
768 &nbsp;
769 </para>
770 </listitem>
528 </itemizedlist> 771 </itemizedlist>
529 </para> 772 </para>
530 773
531 <para> 774 <para>
532 <itemizedlist> 775 <itemizedlist>
533 <listitem><para> 776 <listitem>
534 <literallayout class='monospaced'> 777 <para>
778 <code>
535 &lt;packagename&gt; doesn't match the [a-z0-9.+-]+ regex [pkgname] 779 &lt;packagename&gt; doesn't match the [a-z0-9.+-]+ regex [pkgname]
536 </literallayout> 780 </code>
537 The convention within the OpenEmbedded build system is for 781 </para>
538 package names (sometimes enforced by the package manager itself) 782
539 to require that package names are all lower case and to 783 <para>
540 allow a restricted set of characters. 784 The convention within the OpenEmbedded build system
541 If your recipe name does not match this, or you add packages 785 (sometimes enforced by the package manager itself) is to
542 to 786 require that package names are all lower case
543 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link> 787 and to allow a restricted set of characters.
544 that do not conform to the convention, then you will receive 788 If your recipe name does not match this, or you add
545 this error. 789 packages to
546 Rename your recipe. 790 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
547 Or, if you have added a non-conforming package name to 791 that do not conform to the convention, then you
548 <filename>PACKAGES</filename>, change the package name 792 will receive this error.
549 appropriately. 793 Rename your recipe.
550 </para></listitem> 794 Or, if you have added a non-conforming package name to
795 <filename>PACKAGES</filename>, change the package name
796 appropriately.
797 </para>
798
799 <para>
800 &nbsp;
801 </para>
802 </listitem>
551 </itemizedlist> 803 </itemizedlist>
552 </para> 804 </para>
553 805
554 <para> 806 <para>
555 <itemizedlist> 807 <itemizedlist>
556 <listitem><para> 808 <listitem>
557 <literallayout class='monospaced'> 809 <para>
810 <code>
558 &lt;recipe&gt;: configure was passed unrecognized options: &lt;options&gt; [unknown-configure-option] 811 &lt;recipe&gt;: configure was passed unrecognized options: &lt;options&gt; [unknown-configure-option]
559 </literallayout> 812 </code>
560 The configure script is reporting that the specified options 813 </para>
561 are unrecognized. 814
562 This situation could be because the options were previously 815 <para>
563 valid but have been removed. 816 The configure script is reporting that the specified
564 Or, there was a mistake when the options were added and there 817 options are unrecognized.
565 is another option that should be used instead. 818 This situation could be because the options
566 If you are unsure, consult the upstream build documentation, 819 were previously valid but have been removed from the
567 the <filename>./configure &dash;&dash;help</filename> output, 820 configure script.
568 and the upstream change log or release notes. 821 Or, there was a mistake when the options were added
569 Once you have worked out what the appropriate change is, you 822 and there is another option that should be used instead.
570 can update 823 If you are unsure, consult the upstream build
571 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link> 824 documentation, the
572 or the individual 825 <filename>./configure &dash;&dash;help</filename> output,
573 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link> 826 and the upstream change log or release notes.
574 option values accordingly. 827 Once you have worked out what the appropriate
575 </para></listitem> 828 change is, you can update
829 <link linkend='var-EXTRA_OECONF'><filename>EXTRA_OECONF</filename></link>
830 or the individual
831 <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
832 option values accordingly.
833 </para>
834
835 <para>
836 &nbsp;
837 </para>
838 </listitem>
576 </itemizedlist> 839 </itemizedlist>
577 </para> 840 </para>
578 841
579 <para> 842 <para>
580 <itemizedlist> 843 <itemizedlist>
581 <listitem><para> 844 <listitem>
582 <literallayout class='monospaced'> 845 <para>
846 <code>
583 Recipe &lt;recipefile&gt; has PN of "&lt;recipename&gt;" which is in OVERRIDES, this can result in unexpected behavior. [pn-overrides] 847 Recipe &lt;recipefile&gt; has PN of "&lt;recipename&gt;" which is in OVERRIDES, this can result in unexpected behavior. [pn-overrides]
584 </literallayout> 848 </code>
585 The specified recipe has a name 849 </para>
586 (<link linkend='var-PN'><filename>PN</filename></link>) 850
587 value that appears in 851 <para>
588 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>. 852 The specified recipe has a name
589 If a recipe is named such that its <filename>PN</filename> 853 (<link linkend='var-PN'><filename>PN</filename></link>)
590 value matches something already in 854 value that appears in
591 <filename>OVERRIDES</filename> (e.g. <filename>PN</filename> 855 <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>.
592 happens to be the same as 856 If a recipe is named such that its <filename>PN</filename>
593 <link linkend='var-MACHINE'><filename>MACHINE</filename></link> 857 value matches something already in
594 or 858 <filename>OVERRIDES</filename> (e.g. <filename>PN</filename>
595 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>), 859 happens to be the same as
596 it can have unexpected consequences. 860 <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
597 For example, assignments such as 861 or
598 <filename>FILES_${PN} = "xyz"</filename> effectively turn into 862 <link linkend='var-DISTRO'><filename>DISTRO</filename></link>),
599 <filename>FILES = "xyz"</filename>. 863 it can have unexpected consequences.
600 Rename your recipe (or if <filename>PN</filename> is being 864 For example, assignments such as
601 set explicitly, change the <filename>PN</filename> value) so 865 <filename>FILES_${PN} = "xyz"</filename> effectively
602 that the conflict does not occur. 866 turn into <filename>FILES = "xyz"</filename>.
603 See 867 Rename your recipe (or if <filename>PN</filename> is being
604 <link linkend='var-FILES'><filename>FILES</filename></link> 868 set explicitly, change the <filename>PN</filename> value) so
605 for additional information. 869 that the conflict does not occur.
606 </para></listitem> 870 See
871 <link linkend='var-FILES'><filename>FILES</filename></link>
872 for additional information.
873 </para>
874
875 <para>
876 &nbsp;
877 </para>
878 </listitem>
607 </itemizedlist> 879 </itemizedlist>
608 </para> 880 </para>
609 881
610 <para> 882 <para>
611 <itemizedlist> 883 <itemizedlist>
612 <listitem><para> 884 <listitem>
613 <literallayout class='monospaced'> 885 <para>
886 <code>
614 &lt;recipefile&gt;: Variable &lt;variable&gt; is set as not being package specific, please fix this. [pkgvarcheck] 887 &lt;recipefile&gt;: Variable &lt;variable&gt; is set as not being package specific, please fix this. [pkgvarcheck]
615 </literallayout> 888 </code>
616 Certain variables 889 </para>
617 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>, 890
618 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>, 891 <para>
619 <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>, 892 Certain variables
620 <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link>, 893 (<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>,
621 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>, 894 <link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>,
622 <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>, 895 <link linkend='var-RSUGGESTS'><filename>RSUGGESTS</filename></link>,
623 <link linkend='var-FILES'><filename>FILES</filename></link>, 896 <link linkend='var-RCONFLICTS'><filename>RCONFLICTS</filename></link>,
624 <filename>pkg_preinst</filename>, 897 <link linkend='var-RPROVIDES'><filename>RPROVIDES</filename></link>,
625 <filename>pkg_postinst</filename>, 898 <link linkend='var-RREPLACES'><filename>RREPLACES</filename></link>,
626 <filename>pkg_prerm</filename>, 899 <link linkend='var-FILES'><filename>FILES</filename></link>,
627 <filename>pkg_postrm</filename>, and 900 <filename>pkg_preinst</filename>,
628 <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>) 901 <filename>pkg_postinst</filename>,
629 should always be set specific to a package (i.e. they should 902 <filename>pkg_prerm</filename>,
630 be set with a package name override such as 903 <filename>pkg_postrm</filename>, and
631 <filename>RDEPENDS_${PN} = "value"</filename> rather than 904 <link linkend='var-ALLOW_EMPTY'><filename>ALLOW_EMPTY</filename></link>)
632 <filename>RDEPENDS = "value"</filename>). 905 should always be set specific to a package (i.e. they
633 If you receive this error, correct any assignments to these 906 should be set with a package name override such as
634 variables within your recipe. 907 <filename>RDEPENDS_${PN} = "value"</filename> rather than
635 </para></listitem> 908 <filename>RDEPENDS = "value"</filename>).
909 If you receive this error, correct any assignments to these
910 variables within your recipe.
911 </para>
912
913 <para>
914 &nbsp;
915 </para>
916 </listitem>
636 </itemizedlist> 917 </itemizedlist>
637 </para> 918 </para>
638 919
639 <para> 920 <para>
640 <itemizedlist> 921 <itemizedlist>
641 <listitem><para> 922 <listitem>
642 <literallayout class='monospaced'> 923 <para>
924 <code>
643 File '&lt;file&gt;' from &lt;recipename&gt; was already stripped, this will prevent future debugging! [already-stripped] 925 File '&lt;file&gt;' from &lt;recipename&gt; was already stripped, this will prevent future debugging! [already-stripped]
644 </literallayout> 926 </code>
645 Produced binaries have already been stripped prior to the 927 </para>
646 build system extracting debug symbols. 928
647 It is common for upstream software projects to default to 929 <para>
648 stripping debug symbols for output binaries. 930 Produced binaries have already been stripped prior to the
649 In order for debugging to work on the target using 931 build system extracting debug symbols.
650 <filename>-dbg</filename> packages, this stripping must be 932 It is common for upstream software projects to default to
651 disabled. 933 stripping debug symbols for output binaries.
652 Depending on the build system used by the software being built, 934 In order for debugging to work on the target using
653 disabling this stripping could be as easy as specifying an 935 <filename>-dbg</filename> packages, this stripping must be
654 additional configure option. 936 disabled.
655 If not, disabling stripping might involve patching the build 937 Depending on the build system used by the software being
656 scripts. 938 built, disabling this stripping could be as easy as
657 </para></listitem> 939 specifying an additional configure option.
940 If not, disabling stripping might involve patching
941 the build scripts.
942 <note>
943 Disabling stripping here does not mean that the final
944 packaged binaries will be unstripped.
945 Once the OpenEmbedded build system splits out debug
946 symbols to the <filename>-dbg</filename> package,
947 it will then strip the symbols from the binaries.
948 </note>
949 </para>
950
951 <para>
952 &nbsp;
953 </para>
954 </listitem>
658 </itemizedlist> 955 </itemizedlist>
659 </para> 956 </para>
660 957
661 <para> 958 <para>
662 <itemizedlist> 959 <itemizedlist>
663 <listitem><para> 960 <listitem>
664 <literallayout class='monospaced'> 961 <para>
962 <code>
665 &lt;packagename&gt; is listed in PACKAGES multiple times, this leads to packaging errors. [packages-list] 963 &lt;packagename&gt; is listed in PACKAGES multiple times, this leads to packaging errors. [packages-list]
666 </literallayout> 964 </code>
667 Package names must appear only once in the 965 </para>
668 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link> 966
669 variable. 967 <para>
670 You might receive this error if you are attempting to add a 968 Package names must appear only once in the
671 package to <filename>PACKAGES</filename> that is 969 <link linkend='var-PACKAGES'><filename>PACKAGES</filename></link>
672 already in the variable's value. 970 variable.
673 </para></listitem> 971 You might receive this error if you are attempting to add a
972 package to <filename>PACKAGES</filename> that is
973 already in the variable's value.
974 </para>
975
976 <para>
977 &nbsp;
978 </para>
979 </listitem>
674 </itemizedlist> 980 </itemizedlist>
675 </para> 981 </para>
676 982
677 <para> 983 <para>
678 <itemizedlist> 984 <itemizedlist>
679 <listitem><para> 985 <listitem>
680 <literallayout class='monospaced'> 986 <para>
987 <code>
681 FILES variable for package &lt;packagename&gt; contains '//' which is invalid. Attempting to fix this but you should correct the metadata. [files-invalid] 988 FILES variable for package &lt;packagename&gt; contains '//' which is invalid. Attempting to fix this but you should correct the metadata. [files-invalid]
682 </literallayout> 989 </code>
683 The string "//" is invalid in a Unix path. 990 </para>
684 Correct all occurrences where this string appears in a 991
685 <link linkend='var-FILES'><filename>FILES</filename></link> 992 <para>
686 variable so that there is only a single "/". 993 The string "//" is invalid in a Unix path.
687 </para></listitem> 994 Correct all occurrences where this string appears in a
995 <link linkend='var-FILES'><filename>FILES</filename></link>
996 variable so that there is only a single "/".
997 </para>
998
999 <para>
1000 &nbsp;
1001 </para>
1002 </listitem>
688 </itemizedlist> 1003 </itemizedlist>
689 </para> 1004 </para>
690 1005
691 <para> 1006 <para>
692 <itemizedlist> 1007 <itemizedlist>
693 <listitem><para> 1008 <listitem>
694 <literallayout class='monospaced'> 1009 <para>
1010 <code>
695 &lt;recipename&gt;: Files/directories were installed but not shipped [installed-vs-shipped] 1011 &lt;recipename&gt;: Files/directories were installed but not shipped [installed-vs-shipped]
696 </literallayout> 1012 </code>
697 Files have been installed within the 1013 </para>
698 <link linkend='ref-tasks-install'><filename>do_install</filename></link> 1014
699 task but have not been included in any package by way of the 1015 <para>
700 <link linkend='var-FILES'><filename>FILES</filename></link> 1016 Files have been installed within the
701 variable. 1017 <link linkend='ref-tasks-install'><filename>do_install</filename></link>
702 Files that do not appear in any package cannot be present in 1018 task but have not been included in any package by way of the
703 an image later on in the build process. 1019 <link linkend='var-FILES'><filename>FILES</filename></link>
704 You need to one of the following: 1020 variable.
705 <itemizedlist> 1021 Files that do not appear in any package cannot be present in
706 <listitem><para> 1022 an image later on in the build process.
707 Add the files to <filename>FILES</filename> for the 1023 You need to one of the following:
708 package you want them to appear in (e.g. 1024 <itemizedlist>
709 <filename>FILES_${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename> for the main 1025 <listitem><para>
710 package). 1026 Add the files to <filename>FILES</filename> for the
711 </para></listitem> 1027 package you want them to appear in (e.g.
712 <listitem><para> 1028 <filename>FILES_${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename> for the main
713 Delete the files at the end of the 1029 package).
714 <filename>do_install</filename> task if the files 1030 </para></listitem>
715 are not needed in any package 1031 <listitem><para>
716 </para></listitem> 1032 Delete the files at the end of the
717 </itemizedlist> 1033 <filename>do_install</filename> task if the files
718 </para></listitem> 1034 are not needed in any package.
1035 </para></listitem>
1036 </itemizedlist>
1037 </para>
1038
1039 <para>
1040 &nbsp;
1041 </para>
1042 </listitem>
719 </itemizedlist> 1043 </itemizedlist>
720 </para> 1044 </para>
721 1045
722 <para> 1046 <para>
723 <itemizedlist> 1047 <itemizedlist>
724 <listitem><para> 1048 <listitem>
725 <literallayout class='monospaced'> 1049 <para>
1050 <code>
726 &lt;oldpackage&gt;-&lt;oldpkgversion&gt; was registered as shlib provider for &lt;library&gt;, changing it to &lt;newpackage&gt;-&lt;newpkgversion&gt; because it was built later 1051 &lt;oldpackage&gt;-&lt;oldpkgversion&gt; was registered as shlib provider for &lt;library&gt;, changing it to &lt;newpackage&gt;-&lt;newpkgversion&gt; because it was built later
727 </literallayout> 1052 </code>
728 This message means that both 1053 </para>
729 <filename>&lt;oldpackage&gt;</filename> and 1054
730 <filename>&lt;newpackage&gt;</filename> provide the specified 1055 <para>
731 shared library. 1056 This message means that both
732 You can expect this message when a recipe has been renamed. 1057 <filename>&lt;oldpackage&gt;</filename> and
733 However, if that is not the case, the message might indicate 1058 <filename>&lt;newpackage&gt;</filename> provide the specified
734 that a private version of a library is being erroneously 1059 shared library.
735 picked up as the provider for a common library. 1060 You can expect this message when a recipe has been renamed.
736 If that is the case, you should add the library's 1061 However, if that is not the case, the message might indicate
737 <filename>.so</filename> file name to 1062 that a private version of a library is being erroneously
738 <link linkend='var-PRIVATE_LIBS'><filename>PRIVATE_LIBS</filename></link> 1063 picked up as the provider for a common library.
739 in the recipe that provides 1064 If that is the case, you should add the library's
740 the private version of the library. 1065 <filename>.so</filename> file name to
741 </para></listitem> 1066 <link linkend='var-PRIVATE_LIBS'><filename>PRIVATE_LIBS</filename></link>
1067 in the recipe that provides
1068 the private version of the library.
1069 </para>
1070 </listitem>
742 </itemizedlist> 1071 </itemizedlist>
743 </para> 1072 </para>
744 1073
@@ -782,6 +1111,27 @@ enabled by default:
782--> 1111-->
783</section> 1112</section>
784 1113
1114<section id='configuring-and-disabling-qa-checks'>
1115 <title>Configuring and Disabling QA Checks</title>
1116
1117 <para>
1118 You can configure the sanity checks so that specific test failures
1119 either raise a warning or an error message.
1120 You can also use the
1121 <link linkend='var-WARN_QA'><filename>WARN_QA</filename></link> and
1122 <link linkend='var-ERROR_QA'><filename>ERROR_QA</filename></link>
1123 variables to configure warning and error reporting.
1124 For information on how to work with the QA checks, see the
1125 "<link linkend='ref-classes-insane'><filename>insane.bbclass</filename></link>"
1126 section.
1127 <note><title>Tip</title>
1128 Please keep in mind that the QA checks exist in order to
1129 detect real or potential problems in the packaged output.
1130 So exercise caution when disabling these checks.
1131 </note>
1132 </para>
1133</section>
1134
785</chapter> 1135</chapter>
786<!-- 1136<!--
787vim: expandtab tw=80 ts=4 1137vim: expandtab tw=80 ts=4