diff options
Diffstat (limited to 'meta/conf/bitbake.conf')
-rw-r--r-- | meta/conf/bitbake.conf | 330 |
1 files changed, 205 insertions, 125 deletions
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index ecd4d1638e..ba8bd5f975 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf | |||
@@ -10,8 +10,8 @@ | |||
10 | baselib = "${BASELIB}" | 10 | baselib = "${BASELIB}" |
11 | baselib[vardepvalue] = "${baselib}" | 11 | baselib[vardepvalue] = "${baselib}" |
12 | BASELIB = "lib" | 12 | BASELIB = "lib" |
13 | BASELIB_libc-glibc_powerpc64 = "lib64" | 13 | BASELIB:libc-glibc:powerpc64 = "lib64" |
14 | BASELIB_libc-glibc_powerpc64le = "lib64" | 14 | BASELIB:libc-glibc:powerpc64le = "lib64" |
15 | 15 | ||
16 | # Path prefixes | 16 | # Path prefixes |
17 | export base_prefix = "" | 17 | export base_prefix = "" |
@@ -31,6 +31,7 @@ export sysconfdir = "${base_prefix}/etc" | |||
31 | export servicedir = "${base_prefix}/srv" | 31 | export servicedir = "${base_prefix}/srv" |
32 | export sharedstatedir = "${base_prefix}/com" | 32 | export sharedstatedir = "${base_prefix}/com" |
33 | export localstatedir = "${base_prefix}/var" | 33 | export localstatedir = "${base_prefix}/var" |
34 | runtimedir = "${base_prefix}/run" | ||
34 | export datadir = "${prefix}/share" | 35 | export datadir = "${prefix}/share" |
35 | export infodir = "${datadir}/info" | 36 | export infodir = "${datadir}/info" |
36 | export mandir = "${datadir}/man" | 37 | export mandir = "${datadir}/man" |
@@ -46,7 +47,6 @@ export sbindir = "${exec_prefix}/sbin" | |||
46 | export libdir = "${exec_prefix}/${baselib}" | 47 | export libdir = "${exec_prefix}/${baselib}" |
47 | export libexecdir = "${exec_prefix}/libexec" | 48 | export libexecdir = "${exec_prefix}/libexec" |
48 | export includedir = "${exec_prefix}/include" | 49 | export includedir = "${exec_prefix}/include" |
49 | export oldincludedir = "${exec_prefix}/include" | ||
50 | localedir = "${libdir}/locale" | 50 | localedir = "${libdir}/locale" |
51 | 51 | ||
52 | # Linkage between native/cross/nativesdk layouts | 52 | # Linkage between native/cross/nativesdk layouts |
@@ -80,8 +80,8 @@ localstatedir_nativesdk = "/var" | |||
80 | target_datadir := "${datadir}" | 80 | target_datadir := "${datadir}" |
81 | # Used to find env/perl/python | 81 | # Used to find env/perl/python |
82 | USRBINPATH = "${bindir}" | 82 | USRBINPATH = "${bindir}" |
83 | USRBINPATH_class-native = "/usr/bin" | 83 | USRBINPATH:class-native = "/usr/bin" |
84 | USRBINPATH_class-nativesdk = "/usr/bin" | 84 | USRBINPATH:class-nativesdk = "/usr/bin" |
85 | 85 | ||
86 | # Root home directory | 86 | # Root home directory |
87 | ROOT_HOME ??= "/home/root" | 87 | ROOT_HOME ??= "/home/root" |
@@ -90,6 +90,41 @@ ROOT_HOME ??= "/home/root" | |||
90 | # If set to boolean false ('no', 'n', 'false', 'f', '0'), /var/log is on persistent storage. | 90 | # If set to boolean false ('no', 'n', 'false', 'f', '0'), /var/log is on persistent storage. |
91 | VOLATILE_LOG_DIR ?= "yes" | 91 | VOLATILE_LOG_DIR ?= "yes" |
92 | 92 | ||
93 | # if set to 'yes': /tmp links to /var/tmp which links to /var/volatile/tmp | ||
94 | # otherwise: /tmp is on persistent storage | ||
95 | VOLATILE_TMP_DIR ?= "yes" | ||
96 | |||
97 | BB_RENAMED_VARIABLES[PNBLACKLIST] = "SKIP_RECIPE" | ||
98 | BB_RENAMED_VARIABLES[CVE_CHECK_PN_WHITELIST] = "CVE_CHECK_SKIP_RECIPE" | ||
99 | BB_RENAMED_VARIABLES[CVE_CHECK_WHITELIST] = "CVE_CHECK_IGNORE" | ||
100 | BB_RENAMED_VARIABLES[MULTI_PROVIDER_WHITELIST] = "BB_MULTI_PROVIDER_ALLOWED" | ||
101 | BB_RENAMED_VARIABLES[PNBLACKLIST] = "SKIP_RECIPE" | ||
102 | BB_RENAMED_VARIABLES[SDK_LOCAL_CONF_BLACKLIST] = "ESDK_LOCALCONF_REMOVE" | ||
103 | BB_RENAMED_VARIABLES[SDK_LOCAL_CONF_WHITELIST] = "ESDK_LOCALCONF_ALLOW" | ||
104 | BB_RENAMED_VARIABLES[SDK_INHERIT_BLACKLIST] = "ESDK_CLASS_INHERIT_DISABLE" | ||
105 | BB_RENAMED_VARIABLES[SSTATE_DUPWHITELIST] = "SSTATE_ALLOW_OVERLAP_FILES" | ||
106 | BB_RENAMED_VARIABLES[SYSROOT_DIRS_BLACKLIST] = "SYSROOT_DIRS_IGNORE" | ||
107 | BB_RENAMED_VARIABLES[UNKNOWN_CONFIGURE_WHITELIST] = "UNKNOWN_CONFIGURE_OPT_IGNORE" | ||
108 | BB_RENAMED_VARIABLES[ICECC_USER_CLASS_BL] = "ICECC_CLASS_DISABLE" | ||
109 | BB_RENAMED_VARIABLES[ICECC_SYSTEM_CLASS_BL] = "ICECC_CLASS_DISABLE" | ||
110 | BB_RENAMED_VARIABLES[ICECC_USER_PACKAGE_WL] = "ICECC_RECIPE_ENABLE" | ||
111 | BB_RENAMED_VARIABLES[ICECC_USER_PACKAGE_BL] = "ICECC_RECIPE_DISABLE" | ||
112 | BB_RENAMED_VARIABLES[ICECC_SYSTEM_PACKAGE_BL] = "ICECC_RECIPE_DISABLE" | ||
113 | BB_RENAMED_VARIABLES[INHERIT_BLACKLIST] = "is a deprecated variable and no longer needed" | ||
114 | BB_RENAMED_VARIABLES[TUNEABI_WHITELIST] = "is a deprecated variable and support has been removed" | ||
115 | BB_RENAMED_VARIABLES[LICENSE_FLAGS_WHITELIST] = "LICENSE_FLAGS_ACCEPTED" | ||
116 | |||
117 | BB_RENAMED_VARIABLES[WHITELIST_GPL-3.0-only] = "INCOMPATIBLE_LICENSE_EXCEPTIONS" | ||
118 | BB_RENAMED_VARIABLES[WHITELIST_GPL-3.0-or-later] = "INCOMPATIBLE_LICENSE_EXCEPTIONS" | ||
119 | BB_RENAMED_VARIABLES[WHITELIST_LGPL-3.0-only] = "INCOMPATIBLE_LICENSE_EXCEPTIONS" | ||
120 | BB_RENAMED_VARIABLES[WHITELIST_LGPL-3.0-or-later] = "INCOMPATIBLE_LICENSE_EXCEPTIONS" | ||
121 | |||
122 | # These are deprecated version and should be updated to approved names | ||
123 | BB_RENAMED_VARIABLES[WHITELIST_GPL-3.0] = "is deprecated, convert to INCOMPATIBLE_LICENSE_EXCEPTIONS = '<pkg>:GPL-3.0-only'" | ||
124 | BB_RENAMED_VARIABLES[WHITELIST_GPL-3.0+] = "is deprecated, convert to INCOMPATIBLE_LICENSE_EXCEPTIONS = '<pkg>:GPL-3.0-or-later'" | ||
125 | BB_RENAMED_VARIABLES[WHITELIST_LGPL-3.0] = "is deprecated, convert to INCOMPATIBLE_LICENSE_EXCEPTIONS = '<pkg>:LGPL-3.0-only'" | ||
126 | BB_RENAMED_VARIABLES[WHITELIST_LGPL-3.0+] = "is deprecated, convert to INCOMPATIBLE_LICENSE_EXCEPTIONS = '<pkg>:LGPL-3.0-or-later'" | ||
127 | |||
93 | ################################################################## | 128 | ################################################################## |
94 | # Architecture-dependent build variables. | 129 | # Architecture-dependent build variables. |
95 | ################################################################## | 130 | ################################################################## |
@@ -121,7 +156,7 @@ TUNE_CCARGS ??= "" | |||
121 | TUNE_CCARGS[vardepvalue] = "${TUNE_CCARGS}" | 156 | TUNE_CCARGS[vardepvalue] = "${TUNE_CCARGS}" |
122 | TUNE_LDARGS ??= "" | 157 | TUNE_LDARGS ??= "" |
123 | TUNE_ASARGS ??= "" | 158 | TUNE_ASARGS ??= "" |
124 | TUNE_FEATURES ??= "${TUNE_FEATURES_tune-${DEFAULTTUNE}}" | 159 | TUNE_FEATURES ??= "${TUNE_FEATURES:tune-${DEFAULTTUNE}}" |
125 | LIBCEXTENSION ??= "" | 160 | LIBCEXTENSION ??= "" |
126 | ABIEXTENSION ??= "" | 161 | ABIEXTENSION ??= "" |
127 | USE_NLS ??= "yes" | 162 | USE_NLS ??= "yes" |
@@ -150,7 +185,7 @@ SDK_AS_ARCH = "${BUILD_AS_ARCH}" | |||
150 | TUNE_PKGARCH ??= "" | 185 | TUNE_PKGARCH ??= "" |
151 | PACKAGE_ARCH ??= "${TUNE_PKGARCH}" | 186 | PACKAGE_ARCH ??= "${TUNE_PKGARCH}" |
152 | MACHINE_ARCH = "${@[d.getVar('TUNE_PKGARCH'), d.getVar('MACHINE')][bool(d.getVar('MACHINE'))].replace('-', '_')}" | 187 | MACHINE_ARCH = "${@[d.getVar('TUNE_PKGARCH'), d.getVar('MACHINE')][bool(d.getVar('MACHINE'))].replace('-', '_')}" |
153 | PACKAGE_EXTRA_ARCHS ??= "${PACKAGE_EXTRA_ARCHS_tune-${DEFAULTTUNE}}" | 188 | PACKAGE_EXTRA_ARCHS ??= "${PACKAGE_EXTRA_ARCHS:tune-${DEFAULTTUNE}}" |
154 | PACKAGE_ARCHS = "all any noarch ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}" | 189 | PACKAGE_ARCHS = "all any noarch ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}" |
155 | # MACHINE_ARCH shouldn't be included here as a variable dependency | 190 | # MACHINE_ARCH shouldn't be included here as a variable dependency |
156 | # since machine specific packages are handled using multimachine | 191 | # since machine specific packages are handled using multimachine |
@@ -173,25 +208,25 @@ DATETIME = "${DATE}${TIME}" | |||
173 | # python-native should be here but python relies on building | 208 | # python-native should be here but python relies on building |
174 | # its own in staging | 209 | # its own in staging |
175 | ASSUME_PROVIDED = "\ | 210 | ASSUME_PROVIDED = "\ |
211 | bash-native \ | ||
176 | bzip2-native \ | 212 | bzip2-native \ |
177 | chrpath-native \ | 213 | chrpath-native \ |
214 | diffstat-native \ | ||
178 | file-native \ | 215 | file-native \ |
179 | findutils-native \ | 216 | findutils-native \ |
180 | gawk-native \ | 217 | gawk-native \ |
181 | git-native \ | 218 | git-native \ |
182 | grep-native \ | 219 | grep-native \ |
183 | diffstat-native \ | ||
184 | patch-native \ | ||
185 | libgcc-native \ | ||
186 | hostperl-runtime-native \ | 220 | hostperl-runtime-native \ |
187 | hostpython-runtime-native \ | 221 | hostpython-runtime-native \ |
222 | libgcc-native \ | ||
223 | patch-native \ | ||
224 | sed-native \ | ||
188 | tar-native \ | 225 | tar-native \ |
189 | virtual/libintl-native \ | ||
190 | virtual/libiconv-native \ | ||
191 | virtual/crypt-native \ | ||
192 | texinfo-native \ | 226 | texinfo-native \ |
193 | bash-native \ | 227 | virtual/crypt-native \ |
194 | sed-native \ | 228 | virtual/libiconv-native \ |
229 | virtual/libintl-native \ | ||
195 | wget-native \ | 230 | wget-native \ |
196 | " | 231 | " |
197 | # gzip-native should be listed above? | 232 | # gzip-native should be listed above? |
@@ -202,7 +237,7 @@ ASSUME_PROVIDED = "\ | |||
202 | 237 | ||
203 | PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}" | 238 | PN = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}" |
204 | PV = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}" | 239 | PV = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}" |
205 | PR = "${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[2] or 'r0'}" | 240 | PR = "r0" |
206 | PE = "" | 241 | PE = "" |
207 | PF = "${PN}-${EXTENDPE}${PV}-${PR}" | 242 | PF = "${PN}-${EXTENDPE}${PV}-${PR}" |
208 | EXTENDPE = "${@['','${PE}_'][int(d.getVar('PE') or 0) > 0]}" | 243 | EXTENDPE = "${@['','${PE}_'][int(d.getVar('PE') or 0) > 0]}" |
@@ -236,28 +271,28 @@ DESCRIPTION ?= "${SUMMARY}." | |||
236 | # The following two are commented out because they result in a recursive | 271 | # The following two are commented out because they result in a recursive |
237 | # definition of the variable in some corner cases. These are left in | 272 | # definition of the variable in some corner cases. These are left in |
238 | # to illustrate the intended behavior. | 273 | # to illustrate the intended behavior. |
239 | #SUMMARY_${PN} ?= "${SUMMARY}" | 274 | #SUMMARY:${PN} ?= "${SUMMARY}" |
240 | #DESCRIPTION_${PN} ?= "${DESCRIPTION}" | 275 | #DESCRIPTION:${PN} ?= "${DESCRIPTION}" |
241 | 276 | ||
242 | SUMMARY_${PN}-src ?= "${SUMMARY} - Source files" | 277 | SUMMARY:${PN}-src ?= "${SUMMARY} - Source files" |
243 | DESCRIPTION_${PN}-src ?= "${DESCRIPTION} \ | 278 | DESCRIPTION:${PN}-src ?= "${DESCRIPTION} \ |
244 | This package contains sources for debugging purposes." | 279 | This package contains sources for debugging purposes." |
245 | 280 | ||
246 | SUMMARY_${PN}-dbg ?= "${SUMMARY} - Debugging files" | 281 | SUMMARY:${PN}-dbg ?= "${SUMMARY} - Debugging files" |
247 | DESCRIPTION_${PN}-dbg ?= "${DESCRIPTION} \ | 282 | DESCRIPTION:${PN}-dbg ?= "${DESCRIPTION} \ |
248 | This package contains ELF symbols and related sources for debugging purposes." | 283 | This package contains ELF symbols and related sources for debugging purposes." |
249 | 284 | ||
250 | SUMMARY_${PN}-dev ?= "${SUMMARY} - Development files" | 285 | SUMMARY:${PN}-dev ?= "${SUMMARY} - Development files" |
251 | DESCRIPTION_${PN}-dev ?= "${DESCRIPTION} \ | 286 | DESCRIPTION:${PN}-dev ?= "${DESCRIPTION} \ |
252 | This package contains symbolic links, header files, and \ | 287 | This package contains symbolic links, header files, and \ |
253 | related items necessary for software development." | 288 | related items necessary for software development." |
254 | 289 | ||
255 | SUMMARY_${PN}-staticdev ?= "${SUMMARY} - Development files (Static Libraries)" | 290 | SUMMARY:${PN}-staticdev ?= "${SUMMARY} - Development files (Static Libraries)" |
256 | DESCRIPTION_${PN}-staticdev ?= "${DESCRIPTION} \ | 291 | DESCRIPTION:${PN}-staticdev ?= "${DESCRIPTION} \ |
257 | This package contains static libraries for software development." | 292 | This package contains static libraries for software development." |
258 | 293 | ||
259 | SUMMARY_${PN}-doc ?= "${SUMMARY} - Documentation files" | 294 | SUMMARY:${PN}-doc ?= "${SUMMARY} - Documentation files" |
260 | DESCRIPTION_${PN}-doc ?= "${DESCRIPTION} \ | 295 | DESCRIPTION:${PN}-doc ?= "${DESCRIPTION} \ |
261 | This package contains documentation." | 296 | This package contains documentation." |
262 | 297 | ||
263 | LICENSE ??= "INVALID" | 298 | LICENSE ??= "INVALID" |
@@ -273,18 +308,18 @@ DEPCHAIN_POST = "-dev -dbg" | |||
273 | 308 | ||
274 | DEPENDS = "" | 309 | DEPENDS = "" |
275 | PROVIDES = "" | 310 | PROVIDES = "" |
276 | PROVIDES_prepend = "${PN} " | 311 | PROVIDES:prepend = "${PN} " |
277 | 312 | ||
278 | MULTI_PROVIDER_WHITELIST = "virtual/libintl virtual/libintl-native virtual/nativesdk-libintl virtual/xserver virtual/update-alternatives-native virtual/update-alternatives" | 313 | BB_MULTI_PROVIDER_ALLOWED = "virtual/libintl virtual/libintl-native virtual/nativesdk-libintl virtual/xserver virtual/update-alternatives-native virtual/update-alternatives" |
279 | 314 | ||
280 | SOLIBS = ".so.*" | 315 | SOLIBS = ".so.*" |
281 | SOLIBS_darwin = ".dylib" | 316 | SOLIBS:darwin = ".dylib" |
282 | 317 | ||
283 | SOLIBSDEV = ".so" | 318 | SOLIBSDEV = ".so" |
284 | # Due to the ordering of PACKAGES and the naming of the dev symlinks on darwin, | 319 | # Due to the ordering of PACKAGES and the naming of the dev symlinks on darwin, |
285 | # we can't make the symlinks end up in the -dev packages easily at this point. This hack | 320 | # we can't make the symlinks end up in the -dev packages easily at this point. This hack |
286 | # at least means builds aren't completely broken and symlinks don't take up much space. | 321 | # at least means builds aren't completely broken and symlinks don't take up much space. |
287 | SOLIBSDEV_darwin = ".dylibbroken" | 322 | SOLIBSDEV:darwin = ".dylibbroken" |
288 | 323 | ||
289 | PACKAGE_DEBUG_SPLIT_STYLE ?= "debug-with-srcpkg" | 324 | PACKAGE_DEBUG_SPLIT_STYLE ?= "debug-with-srcpkg" |
290 | 325 | ||
@@ -293,7 +328,7 @@ PACKAGES = "${PN}-src ${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale | |||
293 | PACKAGES_DYNAMIC = "^${PN}-locale-.*" | 328 | PACKAGES_DYNAMIC = "^${PN}-locale-.*" |
294 | FILES = "" | 329 | FILES = "" |
295 | 330 | ||
296 | FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} \ | 331 | FILES:${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} \ |
297 | ${sysconfdir} ${sharedstatedir} ${localstatedir} \ | 332 | ${sysconfdir} ${sharedstatedir} ${localstatedir} \ |
298 | ${base_bindir}/* ${base_sbindir}/* \ | 333 | ${base_bindir}/* ${base_sbindir}/* \ |
299 | ${base_libdir}/*${SOLIBS} \ | 334 | ${base_libdir}/*${SOLIBS} \ |
@@ -304,36 +339,37 @@ FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} | |||
304 | ${datadir}/idl ${datadir}/omf ${datadir}/sounds \ | 339 | ${datadir}/idl ${datadir}/omf ${datadir}/sounds \ |
305 | ${libdir}/bonobo/servers" | 340 | ${libdir}/bonobo/servers" |
306 | 341 | ||
307 | FILES_${PN}-bin = "${bindir}/* ${sbindir}/*" | 342 | FILES:${PN}-bin = "${bindir}/* ${sbindir}/*" |
308 | 343 | ||
309 | FILES_${PN}-doc = "${docdir} ${mandir} ${infodir} ${datadir}/gtk-doc \ | 344 | FILES:${PN}-doc = "${docdir} ${mandir} ${infodir} ${datadir}/gtk-doc \ |
310 | ${datadir}/gnome/help" | 345 | ${datadir}/gnome/help" |
311 | SECTION_${PN}-doc = "doc" | 346 | SECTION:${PN}-doc = "doc" |
312 | 347 | ||
313 | FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}" | 348 | FILES_SOLIBSDEV ?= "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}" |
314 | FILES_${PN}-dev = "${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la \ | 349 | FILES:${PN}-dev = "${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la \ |
315 | ${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig \ | 350 | ${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig \ |
316 | ${datadir}/aclocal ${base_libdir}/*.o \ | 351 | ${datadir}/aclocal ${base_libdir}/*.o \ |
317 | ${libdir}/${BPN}/*.la ${base_libdir}/*.la \ | 352 | ${libdir}/${BPN}/*.la ${base_libdir}/*.la \ |
318 | ${libdir}/cmake ${datadir}/cmake" | 353 | ${libdir}/cmake ${datadir}/cmake" |
319 | SECTION_${PN}-dev = "devel" | 354 | SECTION:${PN}-dev = "devel" |
320 | ALLOW_EMPTY_${PN}-dev = "1" | 355 | ALLOW_EMPTY:${PN}-dev = "1" |
321 | RDEPENDS_${PN}-dev = "${PN} (= ${EXTENDPKGV})" | 356 | DEV_PKG_DEPENDENCY = "${PN} (= ${EXTENDPKGV})" |
357 | RRECOMMENDS:${PN}-dev = "${DEV_PKG_DEPENDENCY}" | ||
322 | 358 | ||
323 | FILES_${PN}-staticdev = "${libdir}/*.a ${base_libdir}/*.a ${libdir}/${BPN}/*.a" | 359 | FILES:${PN}-staticdev = "${libdir}/*.a ${base_libdir}/*.a ${libdir}/${BPN}/*.a" |
324 | SECTION_${PN}-staticdev = "devel" | 360 | SECTION:${PN}-staticdev = "devel" |
325 | RDEPENDS_${PN}-staticdev = "${PN}-dev (= ${EXTENDPKGV})" | 361 | RDEPENDS:${PN}-staticdev = "${PN}-dev (= ${EXTENDPKGV})" |
326 | 362 | ||
327 | FILES_${PN}-dbg = "/usr/lib/debug /usr/lib/debug-static /usr/src/debug" | 363 | FILES:${PN}-dbg = "/usr/lib/debug /usr/lib/debug-static /usr/src/debug" |
328 | SECTION_${PN}-dbg = "devel" | 364 | SECTION:${PN}-dbg = "devel" |
329 | ALLOW_EMPTY_${PN}-dbg = "1" | 365 | ALLOW_EMPTY:${PN}-dbg = "1" |
330 | 366 | ||
331 | # The files list for source packages are dynamically set based on | 367 | # The files list for source packages are dynamically set based on |
332 | # PACKAGE_DEBUG_SPLIT_STYLE | 368 | # PACKAGE_DEBUG_SPLIT_STYLE |
333 | FILES_${PN}-src = "" | 369 | FILES:${PN}-src = "" |
334 | SECTION_${PN}-src = "devel" | 370 | SECTION:${PN}-src = "devel" |
335 | 371 | ||
336 | FILES_${PN}-locale = "${datadir}/locale" | 372 | FILES:${PN}-locale = "${datadir}/locale" |
337 | 373 | ||
338 | # File manifest | 374 | # File manifest |
339 | 375 | ||
@@ -347,28 +383,28 @@ FILESEXTRAPATHS ?= "__default:" | |||
347 | # the builtin definitions will be used. Builtin definitions included: | 383 | # the builtin definitions will be used. Builtin definitions included: |
348 | # base_prefix, prefix, exec_prefix, base_bindir, base_sbindir, base_libdir, | 384 | # base_prefix, prefix, exec_prefix, base_bindir, base_sbindir, base_libdir, |
349 | # datadir, sysconfdir, servicedir, sharedstatedir, localstatedir, infodir, | 385 | # datadir, sysconfdir, servicedir, sharedstatedir, localstatedir, infodir, |
350 | # mandir, docdir, bindir, sbindir, libexecdir, libdir, includedir and | 386 | # mandir, docdir, bindir, sbindir, libexecdir, libdir and includedir |
351 | # oldincludedir | ||
352 | FILESYSTEM_PERMS_TABLES ?= "${@'files/fs-perms.txt' if oe.types.boolean(d.getVar('VOLATILE_LOG_DIR')) else 'files/fs-perms-persistent-log.txt'}" | 387 | FILESYSTEM_PERMS_TABLES ?= "${@'files/fs-perms.txt' if oe.types.boolean(d.getVar('VOLATILE_LOG_DIR')) else 'files/fs-perms-persistent-log.txt'}" |
353 | 388 | ||
354 | ################################################################## | 389 | ################################################################## |
355 | # General work and output directories for the build system. | 390 | # General work and output directories for the build system. |
356 | ################################################################## | 391 | ################################################################## |
357 | 392 | ||
358 | TCMODE ?= "default" | 393 | TCMODE ??= "default" |
359 | TCLIBC ?= "glibc" | 394 | TCLIBC ??= "glibc" |
395 | TC_CXX_RUNTIME ??= "gnu" | ||
360 | TMPDIR ?= "${TOPDIR}/tmp" | 396 | TMPDIR ?= "${TOPDIR}/tmp" |
361 | 397 | ||
362 | CACHE = "${TMPDIR}/cache/${TCMODE}-${TCLIBC}${@['', '/' + str(d.getVar('MACHINE'))][bool(d.getVar('MACHINE'))]}${@['', '/' + str(d.getVar('SDKMACHINE'))][bool(d.getVar('SDKMACHINE'))]}" | 398 | CACHE = "${TMPDIR}/cache" |
363 | # The persistent cache should be shared by all builds | 399 | # The persistent cache should be shared by all builds |
364 | PERSISTENT_DIR = "${TOPDIR}/cache" | 400 | PERSISTENT_DIR = "${TOPDIR}/cache" |
365 | LOG_DIR = "${TMPDIR}/log" | 401 | LOG_DIR = "${TMPDIR}/log" |
366 | 402 | ||
367 | STAMPS_DIR ?= "${TMPDIR}/stamps" | 403 | STAMPS_DIR ?= "${TMPDIR}/stamps" |
368 | STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}" | 404 | STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}" |
369 | STAMPCLEAN = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/*-*" | 405 | STAMPCLEAN = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/*-*" |
370 | BASE_WORKDIR ?= "${TMPDIR}/work" | 406 | BASE_WORKDIR ?= "${TMPDIR}/work" |
371 | WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}" | 407 | WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}" |
372 | T = "${WORKDIR}/temp" | 408 | T = "${WORKDIR}/temp" |
373 | D = "${WORKDIR}/image" | 409 | D = "${WORKDIR}/image" |
374 | S = "${WORKDIR}/${BP}" | 410 | S = "${WORKDIR}/${BP}" |
@@ -407,7 +443,6 @@ STAGING_DIR_TARGET = "${RECIPE_SYSROOT}" | |||
407 | # Setting DEPLOY_DIR outside of TMPDIR is helpful, when you are using | 443 | # Setting DEPLOY_DIR outside of TMPDIR is helpful, when you are using |
408 | # packaged staging and/or multimachine. | 444 | # packaged staging and/or multimachine. |
409 | DEPLOY_DIR ?= "${TMPDIR}/deploy" | 445 | DEPLOY_DIR ?= "${TMPDIR}/deploy" |
410 | DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar" | ||
411 | DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk" | 446 | DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk" |
412 | DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm" | 447 | DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm" |
413 | DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb" | 448 | DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb" |
@@ -415,26 +450,24 @@ DEPLOY_DIR_IMAGE ?= "${DEPLOY_DIR}/images/${MACHINE}" | |||
415 | DEPLOY_DIR_TOOLS = "${DEPLOY_DIR}/tools" | 450 | DEPLOY_DIR_TOOLS = "${DEPLOY_DIR}/tools" |
416 | 451 | ||
417 | PKGDATA_DIR = "${TMPDIR}/pkgdata/${MACHINE}" | 452 | PKGDATA_DIR = "${TMPDIR}/pkgdata/${MACHINE}" |
453 | PKGDATA_DIR_SDK = "${TMPDIR}/pkgdata/${SDK_SYS}" | ||
418 | 454 | ||
419 | ################################################################## | 455 | ################################################################## |
420 | # SDK variables. | 456 | # SDK variables. |
421 | ################################################################## | 457 | ################################################################## |
422 | 458 | ||
423 | SDK_NAME_PREFIX ?= "oecore" | 459 | SDK_NAME_PREFIX ?= "oecore" |
424 | SDK_NAME = "${SDK_NAME_PREFIX}-${SDK_ARCH}-${TUNE_PKGARCH}" | 460 | SDK_NAME = "${SDK_NAME_PREFIX}-${IMAGE_BASENAME}-${SDK_ARCH}-${TUNE_PKGARCH}-${MACHINE}" |
425 | SDKPATH = "/usr/local/${SDK_NAME_PREFIX}-${SDK_ARCH}" | 461 | SDKPATH = "/usr/local/oe-sdk-hardcoded-buildpath" |
426 | SDKPATHNATIVE = "${SDKPATH}/sysroots/${SDK_SYS}" | 462 | SDKPATHNATIVE = "${SDKPATH}/sysroots/${SDK_SYS}" |
463 | # The path to default to installing the SDK to | ||
464 | SDKPATHINSTALL = "/usr/local/${SDK_NAME_PREFIX}-${SDK_ARCH}" | ||
427 | 465 | ||
428 | ################################################################## | 466 | ################################################################## |
429 | # Kernel info. | 467 | # Kernel info. |
430 | ################################################################## | 468 | ################################################################## |
431 | 469 | ||
432 | OLDEST_KERNEL = "3.2.0" | 470 | OLDEST_KERNEL = "5.15" |
433 | OLDEST_KERNEL_aarch64 = "3.14" | ||
434 | OLDEST_KERNEL_nios2 = "3.19" | ||
435 | OLDEST_KERNEL_powerpc64le = "3.10.0" | ||
436 | OLDEST_KERNEL_riscv32 = "5.4" | ||
437 | OLDEST_KERNEL_riscv64 = "4.15" | ||
438 | 471 | ||
439 | # SDK_OLDEST_KERNEL can't be set using overrides since there are | 472 | # SDK_OLDEST_KERNEL can't be set using overrides since there are |
440 | # none for the SDK architecture. Best to set it from a machine-sdk | 473 | # none for the SDK architecture. Best to set it from a machine-sdk |
@@ -469,34 +502,37 @@ EXTRA_IMAGEDEPENDS = "" | |||
469 | # Toolchain info. | 502 | # Toolchain info. |
470 | ################################################################## | 503 | ################################################################## |
471 | 504 | ||
472 | PATH_prepend = "${COREBASE}/scripts:${STAGING_BINDIR_TOOLCHAIN}:${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${sbindir_native}:${STAGING_BINDIR_NATIVE}:${STAGING_DIR_NATIVE}${base_sbindir_native}:${STAGING_DIR_NATIVE}${base_bindir_native}:" | 505 | PATH:prepend = "${COREBASE}/scripts:${STAGING_BINDIR_TOOLCHAIN}:${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${sbindir_native}:${STAGING_BINDIR_NATIVE}:${STAGING_DIR_NATIVE}${base_sbindir_native}:${STAGING_DIR_NATIVE}${base_bindir_native}:" |
473 | export PATH | 506 | export PATH |
474 | 507 | ||
475 | ################################################################## | 508 | ################################################################## |
476 | # Build utility info. | 509 | # Build utility info. |
477 | ################################################################## | 510 | ################################################################## |
478 | 511 | ||
479 | # Directory where host tools are copied | 512 | # Directory with symlinks to host tools used by build |
480 | HOSTTOOLS_DIR = "${TMPDIR}/hosttools" | 513 | HOSTTOOLS_DIR = "${TMPDIR}/hosttools" |
481 | 514 | ||
482 | # Tools needed to run builds with OE-Core | 515 | # Tools needed to run builds with OE-Core |
483 | HOSTTOOLS += " \ | 516 | HOSTTOOLS += " \ |
484 | [ ar as awk basename bash bzip2 cat chgrp chmod chown chrpath cmp comm cp cpio \ | 517 | [ ar as awk basename bash bunzip2 bzip2 cat chgrp chmod chown chrpath cmp comm cp cpio \ |
485 | cpp cut date dd diff diffstat dirname du echo egrep env expand expr false \ | 518 | cpp cut date dd diff diffstat dirname du echo egrep env expand expr false \ |
486 | fgrep file find flock g++ gawk gcc getconf getopt git grep gunzip gzip \ | 519 | fgrep file find flock g++ gawk gcc getconf getopt git grep gunzip gzip \ |
487 | head hostname iconv id install ld ldd ln ls make md5sum mkdir mkfifo mknod \ | 520 | head hostname iconv id install ld ldd ln ls lz4c make md5sum mkdir mkfifo mknod \ |
488 | mktemp mv nm objcopy objdump od patch perl pr printf pwd \ | 521 | mktemp mv nm objcopy objdump od patch perl pr printf pwd \ |
489 | python3 ranlib readelf readlink realpath rm rmdir rpcgen sed seq sh \ | 522 | python3 pzstd ranlib readelf readlink realpath rm rmdir rpcgen sed seq sh \ |
490 | sha1sum sha224sum sha256sum sha384sum sha512sum \ | 523 | sha1sum sha224sum sha256sum sha384sum sha512sum \ |
491 | sleep sort split stat strings strip tail tar tee test touch tr true uname \ | 524 | sleep sort split stat strings strip tail tar tee test touch tr true uname \ |
492 | uniq wc wget which xargs \ | 525 | uniq unzstd wc wget which xargs zstd \ |
493 | " | 526 | " |
494 | 527 | ||
495 | # Tools needed to run testimage runtime image testing | 528 | # Tools needed to run testimage runtime image testing |
496 | HOSTTOOLS += "${@'ip ping ps scp ssh stty' if (bb.utils.contains_any('IMAGE_CLASSES', 'testimage testsdk', True, False, d) or any(x in (d.getVar("BBINCLUDED") or "") for x in ["testimage.bbclass", "testsdk.bbclass"])) else ''}" | 529 | HOSTTOOLS += "${@'ip ping ps scp ssh stty' if (bb.utils.contains_any('IMAGE_CLASSES', 'testimage testsdk', True, False, d) or any(x in (d.getVar("BBINCLUDED") or "") for x in ["testimage.bbclass", "testsdk.bbclass"])) else ''}" |
497 | 530 | ||
531 | # Used by archiver.bbclass when compression is xz | ||
532 | HOSTTOOLS += "${@'xz' if (('archiver.bbclass' in (d.getVar('BBINCLUDED') or '')) and (d.getVarFlag('ARCHIVER_MODE', 'compression') == 'xz')) else ''}" | ||
533 | |||
498 | # Link to these if present | 534 | # Link to these if present |
499 | HOSTTOOLS_NONFATAL += "aws gcc-ar gpg ld.bfd ld.gold nc pigz sftp socat ssh sudo" | 535 | HOSTTOOLS_NONFATAL += "aws gcc-ar gpg gpg-agent ld.bfd ld.gold nc pigz sftp socat ssh sudo" |
500 | 536 | ||
501 | # Temporary add few more detected in bitbake world | 537 | # Temporary add few more detected in bitbake world |
502 | HOSTTOOLS_NONFATAL += "join nl size yes zcat" | 538 | HOSTTOOLS_NONFATAL += "join nl size yes zcat" |
@@ -507,6 +543,12 @@ HOSTTOOLS_NONFATAL += "bzr" | |||
507 | # Used by ssh fetcher | 543 | # Used by ssh fetcher |
508 | HOSTTOOLS_NONFATAL += "scp" | 544 | HOSTTOOLS_NONFATAL += "scp" |
509 | 545 | ||
546 | # Used by Mercurial fetcher | ||
547 | HOSTTOOLS_NONFATAL += "hg" | ||
548 | |||
549 | # Used by gcp fetcher | ||
550 | HOSTTOOLS_NONFATAL += "gsutil" | ||
551 | |||
510 | # Link to git-lfs if present | 552 | # Link to git-lfs if present |
511 | HOSTTOOLS_NONFATAL += "git-lfs" | 553 | HOSTTOOLS_NONFATAL += "git-lfs" |
512 | 554 | ||
@@ -516,7 +558,7 @@ TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}" | |||
516 | 558 | ||
517 | export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | 559 | export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
518 | export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | 560 | export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
519 | export FC = "${CCACHE}${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | 561 | export FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" |
520 | export CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}" | 562 | export CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}" |
521 | export LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}" | 563 | export LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}" |
522 | export CCLD = "${CC}" | 564 | export CCLD = "${CC}" |
@@ -527,21 +569,24 @@ export STRIP = "${HOST_PREFIX}strip" | |||
527 | export OBJCOPY = "${HOST_PREFIX}objcopy" | 569 | export OBJCOPY = "${HOST_PREFIX}objcopy" |
528 | export OBJDUMP = "${HOST_PREFIX}objdump" | 570 | export OBJDUMP = "${HOST_PREFIX}objdump" |
529 | export STRINGS = "${HOST_PREFIX}strings" | 571 | export STRINGS = "${HOST_PREFIX}strings" |
530 | export NM = "${HOST_PREFIX}nm" | 572 | export NM = "${HOST_PREFIX}gcc-nm" |
531 | export READELF = "${HOST_PREFIX}readelf" | 573 | export READELF = "${HOST_PREFIX}readelf" |
532 | PYTHON = "${@sys.executable}" | 574 | PYTHON = "${@sys.executable}" |
533 | 575 | ||
534 | export BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" | 576 | export BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" |
535 | export BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}" | 577 | export BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}" |
536 | export BUILD_FC = "${CCACHE}${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}" | 578 | export BUILD_FC = "${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}" |
537 | export BUILD_CPP = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E" | 579 | export BUILD_CPP = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E" |
538 | export BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}" | 580 | export BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}" |
539 | export BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" | 581 | export BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}" |
540 | export BUILD_AR = "${BUILD_PREFIX}ar" | 582 | export BUILD_AR = "${BUILD_PREFIX}ar" |
541 | export BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}" | 583 | export BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}" |
542 | export BUILD_RANLIB = "${BUILD_PREFIX}ranlib" | 584 | export BUILD_RANLIB = "${BUILD_PREFIX}ranlib -D" |
543 | export BUILD_STRIP = "${BUILD_PREFIX}strip" | 585 | export BUILD_STRIP = "${BUILD_PREFIX}strip" |
586 | BUILD_OBJCOPY = "${BUILD_PREFIX}objcopy" | ||
587 | BUILD_OBJDUMP = "${BUILD_PREFIX}objdump" | ||
544 | export BUILD_NM = "${BUILD_PREFIX}nm" | 588 | export BUILD_NM = "${BUILD_PREFIX}nm" |
589 | BUILD_READELF = "${BUILD_PREFIX}readelf" | ||
545 | 590 | ||
546 | export MAKE = "make" | 591 | export MAKE = "make" |
547 | EXTRA_OEMAKE = "" | 592 | EXTRA_OEMAKE = "" |
@@ -592,24 +637,30 @@ TARGET_LINK_HASH_STYLE ?= "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_ | |||
592 | ASNEEDED ?= "-Wl,--as-needed" | 637 | ASNEEDED ?= "-Wl,--as-needed" |
593 | 638 | ||
594 | export LDFLAGS = "${TARGET_LDFLAGS}" | 639 | export LDFLAGS = "${TARGET_LDFLAGS}" |
595 | TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED}" | 640 | TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED} ${DEBUG_PREFIX_MAP}" |
596 | # mips does not support GNU hash style therefore we override | 641 | # mips does not support GNU hash style therefore we override |
597 | LINKER_HASH_STYLE_mipsarch_libc-musl = "sysv" | 642 | LINKER_HASH_STYLE:mipsarch:libc-musl = "sysv" |
598 | 643 | ||
599 | # Pass parallel make options to the compile task | 644 | # Pass parallel make options to the compile task |
600 | EXTRA_OEMAKE_prepend_task-compile = "${PARALLEL_MAKE} " | 645 | EXTRA_OEMAKE:prepend:task-compile = "${PARALLEL_MAKE} " |
601 | PARALLEL_MAKEINST ??= "${PARALLEL_MAKE}" | 646 | PARALLEL_MAKEINST ??= "${PARALLEL_MAKE}" |
647 | PARALLEL_MAKEINST[vardepvalue] = "1" | ||
602 | # Pass parallel make options to the install task | 648 | # Pass parallel make options to the install task |
603 | EXTRA_OEMAKE_prepend_task-install = "${PARALLEL_MAKEINST} " | 649 | EXTRA_OEMAKE:prepend:task-install = "${PARALLEL_MAKEINST} " |
604 | 650 | ||
605 | ################################################################## | 651 | ################################################################## |
606 | # Optimization flags. | 652 | # Optimization flags. |
607 | ################################################################## | 653 | ################################################################## |
654 | TARGET_DBGSRC_DIR ?= "/usr/src/debug/${PN}/${PV}" | ||
608 | # Beware: applied last to first | 655 | # Beware: applied last to first |
609 | DEBUG_PREFIX_MAP ?= "-fmacro-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ | 656 | DEBUG_PREFIX_MAP ?= "-fcanon-prefix-map \ |
610 | -fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ | 657 | -fmacro-prefix-map=${S}=${TARGET_DBGSRC_DIR} \ |
611 | -fdebug-prefix-map=${STAGING_DIR_HOST}= \ | 658 | -fdebug-prefix-map=${S}=${TARGET_DBGSRC_DIR} \ |
612 | -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ | 659 | -fmacro-prefix-map=${B}=${TARGET_DBGSRC_DIR} \ |
660 | -fdebug-prefix-map=${B}=${TARGET_DBGSRC_DIR} \ | ||
661 | -fdebug-prefix-map=${STAGING_DIR_HOST}= \ | ||
662 | -fmacro-prefix-map=${STAGING_DIR_HOST}= \ | ||
663 | -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ | ||
613 | " | 664 | " |
614 | DEBUG_FLAGS ?= "-g -feliminate-unused-debug-types ${DEBUG_PREFIX_MAP}" | 665 | DEBUG_FLAGS ?= "-g -feliminate-unused-debug-types ${DEBUG_PREFIX_MAP}" |
615 | 666 | ||
@@ -622,6 +673,21 @@ BUILD_OPTIMIZATION = "${@oe.utils.vartrue('DEBUG_BUILD', '-Og -g -feliminate-unu | |||
622 | BUILD_OPTIMIZATION[vardeps] += "DEBUG_BUILD" | 673 | BUILD_OPTIMIZATION[vardeps] += "DEBUG_BUILD" |
623 | 674 | ||
624 | ################################################################## | 675 | ################################################################## |
676 | # Reproducibility | ||
677 | ################################################################## | ||
678 | |||
679 | SDE_DIR = "${WORKDIR}/source-date-epoch" | ||
680 | SDE_FILE = "${SDE_DIR}/__source_date_epoch.txt" | ||
681 | SDE_DEPLOYDIR = "${WORKDIR}/deploy-source-date-epoch" | ||
682 | |||
683 | export PYTHONHASHSEED = "0" | ||
684 | export PERL_HASH_SEED = "0" | ||
685 | export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}" | ||
686 | # A SOURCE_DATE_EPOCH of '0' might be misinterpreted as no SDE | ||
687 | SOURCE_DATE_EPOCH_FALLBACK ??= "1302044400" | ||
688 | REPRODUCIBLE_TIMESTAMP_ROOTFS ??= "1520598896" | ||
689 | |||
690 | ################################################################## | ||
625 | # Settings used by bitbake-layers. | 691 | # Settings used by bitbake-layers. |
626 | ################################################################## | 692 | ################################################################## |
627 | BBLAYERS_LAYERINDEX_URL ??= "https://layers.openembedded.org/layerindex/" | 693 | BBLAYERS_LAYERINDEX_URL ??= "https://layers.openembedded.org/layerindex/" |
@@ -632,20 +698,21 @@ BBLAYERS_FETCH_DIR ??= "${COREBASE}" | |||
632 | ################################################################## | 698 | ################################################################## |
633 | 699 | ||
634 | APACHE_MIRROR = "https://archive.apache.org/dist" | 700 | APACHE_MIRROR = "https://archive.apache.org/dist" |
701 | CPAN_MIRROR = "https://search.cpan.org/CPAN" | ||
635 | DEBIAN_MIRROR = "http://ftp.debian.org/debian/pool" | 702 | DEBIAN_MIRROR = "http://ftp.debian.org/debian/pool" |
636 | GENTOO_MIRROR = "http://distfiles.gentoo.org/distfiles" | 703 | GENTOO_MIRROR = "http://distfiles.gentoo.org/distfiles" |
637 | GNOME_GIT = "git://gitlab.gnome.org/GNOME" | 704 | GNOME_GIT = "git://gitlab.gnome.org/GNOME" |
638 | GNOME_MIRROR = "https://ftp.gnome.org/pub/GNOME/sources" | 705 | GNOME_MIRROR = "https://download.gnome.org/sources/" |
639 | GNU_MIRROR = "https://ftp.gnu.org/gnu" | 706 | GNU_MIRROR = "https://ftp.gnu.org/gnu" |
640 | GNUPG_MIRROR = "https://www.gnupg.org/ftp/gcrypt" | 707 | GNUPG_MIRROR = "https://www.gnupg.org/ftp/gcrypt" |
641 | GPE_MIRROR = "http://gpe.linuxtogo.org/download/source" | 708 | GPE_MIRROR = "http://gpe.linuxtogo.org/download/source" |
642 | KERNELORG_MIRROR = "https://cdn.kernel.org/pub" | 709 | KERNELORG_MIRROR = "https://cdn.kernel.org/pub" |
710 | SAMBA_MIRROR = "http://samba.org/samba/ftp" | ||
711 | SAVANNAH_GNU_MIRROR = "https://download.savannah.gnu.org/releases" | ||
712 | SAVANNAH_NONGNU_MIRROR = "https://download.savannah.nongnu.org/releases" | ||
643 | SOURCEFORGE_MIRROR = "https://downloads.sourceforge.net" | 713 | SOURCEFORGE_MIRROR = "https://downloads.sourceforge.net" |
644 | XLIBS_MIRROR = "https://xlibs.freedesktop.org/release" | 714 | XLIBS_MIRROR = "https://xlibs.freedesktop.org/release" |
645 | XORG_MIRROR = "https://www.x.org/releases/" | 715 | XORG_MIRROR = "https://www.x.org/releases/" |
646 | SAVANNAH_GNU_MIRROR = "https://download.savannah.gnu.org/releases" | ||
647 | SAVANNAH_NONGNU_MIRROR = "https://download.savannah.nongnu.org/releases" | ||
648 | CPAN_MIRROR = "https://search.cpan.org/CPAN" | ||
649 | 716 | ||
650 | SRC_URI[vardepsexclude] += "\ | 717 | SRC_URI[vardepsexclude] += "\ |
651 | APACHE_MIRROR \ | 718 | APACHE_MIRROR \ |
@@ -658,6 +725,7 @@ SRC_URI[vardepsexclude] += "\ | |||
658 | GNUPG_MIRROR \ | 725 | GNUPG_MIRROR \ |
659 | GPE_MIRROR \ | 726 | GPE_MIRROR \ |
660 | KERNELORG_MIRROR \ | 727 | KERNELORG_MIRROR \ |
728 | SAMBA_MIRROR \ | ||
661 | SAVANNAH_GNU_MIRROR \ | 729 | SAVANNAH_GNU_MIRROR \ |
662 | SAVANNAH_NONGNU_MIRROR \ | 730 | SAVANNAH_NONGNU_MIRROR \ |
663 | SOURCEFORGE_MIRROR \ | 731 | SOURCEFORGE_MIRROR \ |
@@ -672,10 +740,7 @@ SRC_URI[vardepsexclude] += "\ | |||
672 | SRCDATE = "${DATE}" | 740 | SRCDATE = "${DATE}" |
673 | SRCREV ??= "INVALID" | 741 | SRCREV ??= "INVALID" |
674 | AUTOREV = "${@bb.fetch2.get_autorev(d)}" | 742 | AUTOREV = "${@bb.fetch2.get_autorev(d)}" |
675 | AUTOREV[vardepvalue] = "${SRCPV}" | 743 | SRCPV = "" |
676 | # Set Dynamically in base.bbclass | ||
677 | # SRCPV = "${@bb.fetch2.get_srcrev(d)}" | ||
678 | SRCPV[vardepvalue] = "${SRCPV}" | ||
679 | 744 | ||
680 | SRC_URI = "" | 745 | SRC_URI = "" |
681 | 746 | ||
@@ -736,14 +801,15 @@ DISTRO_NAME ??= "OpenEmbedded" | |||
736 | 801 | ||
737 | # Overrides are processed left to right, so the ones that are named later take precedence. | 802 | # Overrides are processed left to right, so the ones that are named later take precedence. |
738 | # You generally want them to go from least to most specific. This means that: | 803 | # You generally want them to go from least to most specific. This means that: |
739 | # A variable '<foo>_arm' overrides a variable '<foo>' when ${TARGET_ARCH} is arm. | 804 | # A variable '<foo>:arm' overrides a variable '<foo>' when ${TARGET_ARCH} is arm. |
740 | # A variable '<foo>_qemuarm' overrides '<foo>' and overrides '<foo>_arm' when ${MACHINE} is 'qemuarm'. | 805 | # A variable '<foo>:qemuarm' overrides '<foo>' and overrides '<foo>:arm' when ${MACHINE} is 'qemuarm'. |
741 | # If you use combination ie '<foo>_qemuarm_arm', then '<foo>_qemuarm_arm' will override | 806 | # If you use combination ie '<foo>:qemuarm:arm', then '<foo>:qemuarm:arm' will override |
742 | # '<foo>_qemuarm' and then '<foo>' will be overriden with that value from '<foo>_qemuarm'. | 807 | # '<foo>:qemuarm' and then '<foo>' will be overriden with that value from '<foo>:qemuarm'. |
743 | # And finally '<foo>_forcevariable' overrides any standard variable, with the highest priority. | 808 | # And finally '<foo>:forcevariable' overrides any standard variable, with the highest priority. |
744 | # This works for functions as well, they are really just variables. | 809 | # This works for functions as well, they are really just variables. |
745 | # | 810 | # |
746 | OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}${LIBCOVERRIDE}:forcevariable" | 811 | OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:pn-${PN}:layer-${FILE_LAYERNAME}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}${LIBCOVERRIDE}:forcevariable" |
812 | FILE_LAYERNAME ??= "config" | ||
747 | LIBCOVERRIDE ?= "" | 813 | LIBCOVERRIDE ?= "" |
748 | CLASSOVERRIDE ?= "class-target" | 814 | CLASSOVERRIDE ?= "class-target" |
749 | DISTROOVERRIDES ?= "${@d.getVar('DISTRO') or ''}" | 815 | DISTROOVERRIDES ?= "${@d.getVar('DISTRO') or ''}" |
@@ -767,6 +833,8 @@ include conf/distro/defaultsetup.conf | |||
767 | include conf/documentation.conf | 833 | include conf/documentation.conf |
768 | include conf/licenses.conf | 834 | include conf/licenses.conf |
769 | require conf/sanity.conf | 835 | require conf/sanity.conf |
836 | require conf/cve-check-map.conf | ||
837 | include conf/bblock.conf | ||
770 | 838 | ||
771 | ################################################################## | 839 | ################################################################## |
772 | # Weak variables (usually to retain backwards compatibility) | 840 | # Weak variables (usually to retain backwards compatibility) |
@@ -804,9 +872,22 @@ PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}" | |||
804 | # Default parallelism and resource usage for xz | 872 | # Default parallelism and resource usage for xz |
805 | XZ_MEMLIMIT ?= "50%" | 873 | XZ_MEMLIMIT ?= "50%" |
806 | XZ_THREADS ?= "${@oe.utils.cpu_count(at_least=2)}" | 874 | XZ_THREADS ?= "${@oe.utils.cpu_count(at_least=2)}" |
875 | XZ_THREADS[vardepvalue] = "1" | ||
807 | XZ_DEFAULTS ?= "--memlimit=${XZ_MEMLIMIT} --threads=${XZ_THREADS}" | 876 | XZ_DEFAULTS ?= "--memlimit=${XZ_MEMLIMIT} --threads=${XZ_THREADS}" |
808 | XZ_DEFAULTS[vardepsexclude] += "XZ_MEMLIMIT XZ_THREADS" | 877 | XZ_DEFAULTS[vardepsexclude] += "XZ_MEMLIMIT XZ_THREADS" |
809 | 878 | ||
879 | # Default parallelism for zstd | ||
880 | ZSTD_THREADS ?= "${@oe.utils.cpu_count(at_least=2)}" | ||
881 | ZSTD_THREADS[vardepvalue] = "1" | ||
882 | |||
883 | ZSTD_COMPRESSION_LEVEL ?= "-3" | ||
884 | ZSTD_DEFAULTS ?= "--threads=${ZSTD_THREADS} ${ZSTD_COMPRESSION_LEVEL}" | ||
885 | ZSTD_DEFAULTS[vardepsexclude] = "ZSTD_THREADS" | ||
886 | |||
887 | # Limit the number of threads that OpenMP libraries will use. Otherwise they | ||
888 | # may fallback to using all CPUs | ||
889 | export OMP_NUM_THREADS = "${BB_NUMBER_THREADS}" | ||
890 | |||
810 | ################################################################## | 891 | ################################################################## |
811 | # Magic Cookie for SANITY CHECK | 892 | # Magic Cookie for SANITY CHECK |
812 | ################################################################## | 893 | ################################################################## |
@@ -817,6 +898,8 @@ OES_BITBAKE_CONF = "1" | |||
817 | ################################################################## | 898 | ################################################################## |
818 | 899 | ||
819 | MACHINE_FEATURES ?= "" | 900 | MACHINE_FEATURES ?= "" |
901 | SDK_MACHINE_FEATURES ?= "" | ||
902 | |||
820 | DISTRO_FEATURES ?= "" | 903 | DISTRO_FEATURES ?= "" |
821 | 904 | ||
822 | DISTRO_EXTRA_RDEPENDS ?= "" | 905 | DISTRO_EXTRA_RDEPENDS ?= "" |
@@ -831,13 +914,13 @@ IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}" | |||
831 | 914 | ||
832 | # Native distro features (will always be used for -native, even if they | 915 | # Native distro features (will always be used for -native, even if they |
833 | # are not enabled for target) | 916 | # are not enabled for target) |
834 | DISTRO_FEATURES_NATIVE ?= "x11 ipv6 xattr" | 917 | DISTRO_FEATURES_NATIVE ?= "acl x11 ipv6 xattr" |
835 | DISTRO_FEATURES_NATIVESDK ?= "x11" | 918 | DISTRO_FEATURES_NATIVESDK ?= "x11" |
836 | 919 | ||
837 | # Normally target distro features will not be applied to native builds: | 920 | # Normally target distro features will not be applied to native builds: |
838 | # Native distro features on this list will use the target feature value | 921 | # Native distro features on this list will use the target feature value |
839 | DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation opengl" | 922 | DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation debuginfod opengl wayland" |
840 | DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation opengl" | 923 | DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation debuginfod opengl wayland" |
841 | 924 | ||
842 | DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig" | 925 | DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig" |
843 | MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" | 926 | MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" |
@@ -845,25 +928,11 @@ MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode" | |||
845 | COMBINED_FEATURES = "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}" | 928 | COMBINED_FEATURES = "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}" |
846 | COMBINED_FEATURES[vardeps] += "DISTRO_FEATURES MACHINE_FEATURES" | 929 | COMBINED_FEATURES[vardeps] += "DISTRO_FEATURES MACHINE_FEATURES" |
847 | 930 | ||
848 | SERIAL_CONSOLE ??= "" | 931 | SERIAL_CONSOLES ??= "" |
849 | SERIAL_CONSOLES ??= "${@d.getVar('SERIAL_CONSOLE').replace(' ', ';')}" | ||
850 | 932 | ||
851 | NO_RECOMMENDATIONS ??= "" | 933 | NO_RECOMMENDATIONS ??= "" |
852 | BAD_RECOMMENDATIONS ?= "" | 934 | BAD_RECOMMENDATIONS ?= "" |
853 | 935 | ||
854 | # Make sure MACHINE isn't exported | ||
855 | # (breaks binutils at least) | ||
856 | MACHINE[unexport] = "1" | ||
857 | |||
858 | # Make sure TARGET_ARCH isn't exported | ||
859 | # (breaks Makefiles using implicit rules, e.g. quilt, as GNU make has this | ||
860 | # in them, undocumented) | ||
861 | TARGET_ARCH[unexport] = "1" | ||
862 | |||
863 | # Make sure DISTRO isn't exported | ||
864 | # (breaks sysvinit at least) | ||
865 | DISTRO[unexport] = "1" | ||
866 | |||
867 | # Make sure SHELL isn't exported | 936 | # Make sure SHELL isn't exported |
868 | # (can break any number of things if the user's shell isn't POSIX-compliant, | 937 | # (can break any number of things if the user's shell isn't POSIX-compliant, |
869 | # including the flock command). The user's shell shouldn't affect our builds. | 938 | # including the flock command). The user's shell shouldn't affect our builds. |
@@ -873,10 +942,11 @@ SHELL[unexport] = "1" | |||
873 | TRANSLATED_TARGET_ARCH ??= "${@d.getVar('TARGET_ARCH').replace("_", "-")}" | 942 | TRANSLATED_TARGET_ARCH ??= "${@d.getVar('TARGET_ARCH').replace("_", "-")}" |
874 | 943 | ||
875 | # Set a default umask to use for tasks for determinism | 944 | # Set a default umask to use for tasks for determinism |
876 | BB_DEFAULT_UMASK = "022" | 945 | BB_DEFAULT_UMASK ??= "022" |
877 | 946 | ||
878 | # Complete output from bitbake | 947 | # Complete output from bitbake |
879 | BB_CONSOLELOG ?= "${LOG_DIR}/cooker/${MACHINE}/${DATETIME}.log" | 948 | BB_CONSOLELOG ?= "${LOG_DIR}/cooker/${MACHINE}/${DATETIME}.log" |
949 | BB_DEFAULT_EVENTLOG ?= "${LOG_DIR}/eventlog/${DATETIME}.json" | ||
880 | 950 | ||
881 | # Setup our default hash policy | 951 | # Setup our default hash policy |
882 | BB_SIGNATURE_HANDLER ?= "OEBasicHash" | 952 | BB_SIGNATURE_HANDLER ?= "OEBasicHash" |
@@ -885,23 +955,26 @@ BB_HASHEXCLUDE_COMMON ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DI | |||
885 | USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \ | 955 | USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \ |
886 | STAMPS_DIR PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \ | 956 | STAMPS_DIR PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \ |
887 | CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_NOHASHDIR LICENSE_PATH SDKPKGSUFFIX \ | 957 | CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_NOHASHDIR LICENSE_PATH SDKPKGSUFFIX \ |
888 | WARN_QA ERROR_QA WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH \ | 958 | WARN_QA WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH \ |
889 | BB_WORKERCONTEXT BB_LIMITEDDEPS BB_UNIHASH extend_recipe_sysroot DEPLOY_DIR \ | 959 | BB_WORKERCONTEXT BB_LIMITEDDEPS BB_UNIHASH extend_recipe_sysroot DEPLOY_DIR \ |
890 | SSTATE_HASHEQUIV_METHOD SSTATE_HASHEQUIV_REPORT_TASKDATA \ | 960 | SSTATE_HASHEQUIV_METHOD SSTATE_HASHEQUIV_REPORT_TASKDATA \ |
891 | SSTATE_HASHEQUIV_OWNER CCACHE_TOP_DIR BB_HASHSERVE GIT_CEILING_DIRECTORIES" | 961 | SSTATE_HASHEQUIV_OWNER CCACHE_TOP_DIR BB_HASHSERVE GIT_CEILING_DIRECTORIES \ |
892 | BB_HASHBASE_WHITELIST ?= "${BB_HASHEXCLUDE_COMMON} PSEUDO_IGNORE_PATHS BUILDHISTORY_DIR SSTATE_DIR " | 962 | OMP_NUM_THREADS BB_CURRENTTASK" |
893 | BB_HASHCONFIG_WHITELIST ?= "${BB_HASHEXCLUDE_COMMON} DATE TIME SSH_AGENT_PID \ | 963 | BB_BASEHASH_IGNORE_VARS ?= "${BB_HASHEXCLUDE_COMMON} PSEUDO_IGNORE_PATHS BUILDHISTORY_DIR \ |
894 | SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_EXTRAWHITE DISABLE_SANITY_CHECKS \ | 964 | SSTATE_DIR SOURCE_DATE_EPOCH RUST_BUILD_SYS RUST_HOST_SYS RUST_TARGET_SYS" |
965 | BB_HASHCONFIG_IGNORE_VARS ?= "${BB_HASHEXCLUDE_COMMON} DATE TIME SSH_AGENT_PID \ | ||
966 | SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_PASSTHROUGH_ADDITIONS DISABLE_SANITY_CHECKS \ | ||
895 | PARALLEL_MAKE BB_NUMBER_THREADS BB_ORIGENV BB_INVALIDCONF BBINCLUDED \ | 967 | PARALLEL_MAKE BB_NUMBER_THREADS BB_ORIGENV BB_INVALIDCONF BBINCLUDED \ |
896 | GIT_PROXY_COMMAND ALL_PROXY all_proxy NO_PROXY no_proxy FTP_PROXY ftp_proxy \ | 968 | GIT_PROXY_COMMAND ALL_PROXY all_proxy NO_PROXY no_proxy FTP_PROXY ftp_proxy \ |
897 | HTTP_PROXY http_proxy HTTPS_PROXY https_proxy SOCKS5_USER SOCKS5_PASSWD \ | 969 | HTTP_PROXY http_proxy HTTPS_PROXY https_proxy SOCKS5_USER SOCKS5_PASSWD \ |
898 | BB_SETSCENE_ENFORCE BB_CMDLINE BB_SERVER_TIMEOUT" | 970 | BB_SETSCENE_ENFORCE BB_CMDLINE BB_SERVER_TIMEOUT BB_NICE_LEVEL" |
899 | BB_SIGNATURE_EXCLUDE_FLAGS ?= "doc deps depends \ | 971 | BB_SIGNATURE_EXCLUDE_FLAGS ?= "doc deps depends \ |
900 | lockfiles type vardepsexclude vardeps vardepvalue vardepvalueexclude \ | 972 | lockfiles vardepsexclude vardeps vardepvalue vardepvalueexclude \ |
901 | file-checksums python func task export unexport noexec nostamp dirs cleandirs \ | 973 | file-checksums python task nostamp \ |
902 | sstate-lockfile-shared prefuncs postfuncs export_func deptask rdeptask \ | 974 | sstate-lockfile-shared prefuncs postfuncs export_func deptask rdeptask \ |
903 | recrdeptask nodeprrecs stamp-extra-info sstate-outputdirs filename lineno \ | 975 | recrdeptask nodeprrecs stamp-extra-info sstate-outputdirs filename lineno \ |
904 | progress mcdepends number_threads" | 976 | progress mcdepends number_threads" |
977 | BB_HASH_CODEPARSER_VALS = "LOGFIFO=/ T=/ WORKDIR=/ DATE=1234 TIME=1234 PV=0.0-1 PN=no-pn METADATA_REVISION=1234 SRC_URI=" | ||
905 | 978 | ||
906 | MLPREFIX ??= "" | 979 | MLPREFIX ??= "" |
907 | MULTILIB_VARIANTS ??= "" | 980 | MULTILIB_VARIANTS ??= "" |
@@ -911,3 +984,10 @@ MULTILIB_VARIANTS ??= "" | |||
911 | # what it would be anyway if the signature generator (e.g. OEEquivHash) doesn't | 984 | # what it would be anyway if the signature generator (e.g. OEEquivHash) doesn't |
912 | # support unihashes. | 985 | # support unihashes. |
913 | BB_UNIHASH ?= "${BB_TASKHASH}" | 986 | BB_UNIHASH ?= "${BB_TASKHASH}" |
987 | |||
988 | oe.sstatesig.find_sstate_manifest[vardepsexclude] = "BBEXTENDCURR BBEXTENDVARIANT OVERRIDES PACKAGE_EXTRA_ARCHS" | ||
989 | oe.utils.get_multilib_datastore[vardepsexclude] = "DEFAULTTUNE_MULTILIB_ORIGINAL OVERRIDES" | ||
990 | oe.path.format_display[vardepsexclude] = "TOPDIR" | ||
991 | oe.utils.get_bb_number_threads[vardepsexclude] = "BB_NUMBER_THREADS" | ||
992 | oe.packagedata.emit_pkgdata[vardepsexclude] = "BB_NUMBER_THREADS" | ||
993 | oe.packagedata.read_subpkgdata_extended[vardepsexclude] = "BB_NUMBER_THREADS" | ||