diff options
20 files changed, 121 insertions, 58 deletions
diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake index 09cbb54e8c..c2d0ca7613 100755 --- a/bitbake/bin/bitbake +++ b/bitbake/bin/bitbake | |||
@@ -27,7 +27,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException | |||
27 | 27 | ||
28 | bb.utils.check_system_locale() | 28 | bb.utils.check_system_locale() |
29 | 29 | ||
30 | __version__ = "2.12.0" | 30 | __version__ = "2.15.0" |
31 | 31 | ||
32 | if __name__ == "__main__": | 32 | if __name__ == "__main__": |
33 | if __version__ != bb.__version__: | 33 | if __version__ != bb.__version__: |
diff --git a/bitbake/bin/bitbake-getvar b/bitbake/bin/bitbake-getvar index 1719824d95..378fb13572 100755 --- a/bitbake/bin/bitbake-getvar +++ b/bitbake/bin/bitbake-getvar | |||
@@ -10,6 +10,7 @@ import io | |||
10 | import os | 10 | import os |
11 | import sys | 11 | import sys |
12 | import warnings | 12 | import warnings |
13 | import logging | ||
13 | warnings.simplefilter("default") | 14 | warnings.simplefilter("default") |
14 | 15 | ||
15 | bindir = os.path.dirname(__file__) | 16 | bindir = os.path.dirname(__file__) |
@@ -38,6 +39,10 @@ if __name__ == "__main__": | |||
38 | sys.exit("--flag only makes sense with --value") | 39 | sys.exit("--flag only makes sense with --value") |
39 | 40 | ||
40 | quiet = args.quiet or args.value | 41 | quiet = args.quiet or args.value |
42 | if quiet: | ||
43 | logger = logging.getLogger("BitBake") | ||
44 | logger.setLevel(logging.WARNING) | ||
45 | |||
41 | with bb.tinfoil.Tinfoil(tracking=True, setup_logging=not quiet) as tinfoil: | 46 | with bb.tinfoil.Tinfoil(tracking=True, setup_logging=not quiet) as tinfoil: |
42 | if args.recipe: | 47 | if args.recipe: |
43 | tinfoil.prepare(quiet=3 if quiet else 2) | 48 | tinfoil.prepare(quiet=3 if quiet else 2) |
diff --git a/bitbake/lib/bb/__init__.py b/bitbake/lib/bb/__init__.py index c95c91a4cb..62ceaaef6e 100644 --- a/bitbake/lib/bb/__init__.py +++ b/bitbake/lib/bb/__init__.py | |||
@@ -9,7 +9,7 @@ | |||
9 | # SPDX-License-Identifier: GPL-2.0-only | 9 | # SPDX-License-Identifier: GPL-2.0-only |
10 | # | 10 | # |
11 | 11 | ||
12 | __version__ = "2.12.0" | 12 | __version__ = "2.15.0" |
13 | 13 | ||
14 | import sys | 14 | import sys |
15 | if sys.version_info < (3, 9, 0): | 15 | if sys.version_info < (3, 9, 0): |
diff --git a/bitbake/lib/bb/event.py b/bitbake/lib/bb/event.py index a12adbc937..b29f0a5568 100644 --- a/bitbake/lib/bb/event.py +++ b/bitbake/lib/bb/event.py | |||
@@ -431,6 +431,16 @@ class RecipeEvent(Event): | |||
431 | self.fn = fn | 431 | self.fn = fn |
432 | Event.__init__(self) | 432 | Event.__init__(self) |
433 | 433 | ||
434 | class RecipePreDeferredInherits(RecipeEvent): | ||
435 | """ | ||
436 | Called before deferred inherits are processed so code can snoop on class extensions for example | ||
437 | Limitations: It won't see inherits of inherited classes and the data is unexpanded | ||
438 | """ | ||
439 | def __init__(self, fn, inherits): | ||
440 | self.fn = fn | ||
441 | self.inherits = inherits | ||
442 | Event.__init__(self) | ||
443 | |||
434 | class RecipePreFinalise(RecipeEvent): | 444 | class RecipePreFinalise(RecipeEvent): |
435 | """ Recipe Parsing Complete but not yet finalised""" | 445 | """ Recipe Parsing Complete but not yet finalised""" |
436 | 446 | ||
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index 290ed45048..ea1096f2de 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py | |||
@@ -340,9 +340,7 @@ class InheritDeferredNode(AstNode): | |||
340 | self.inherit = (classes, filename, lineno) | 340 | self.inherit = (classes, filename, lineno) |
341 | 341 | ||
342 | def eval(self, data): | 342 | def eval(self, data): |
343 | inherits = data.getVar('__BBDEFINHERITS', False) or [] | 343 | bb.parse.BBHandler.inherit_defer(*self.inherit, data) |
344 | inherits.append(self.inherit) | ||
345 | data.setVar('__BBDEFINHERITS', inherits) | ||
346 | 344 | ||
347 | class AddFragmentsNode(AstNode): | 345 | class AddFragmentsNode(AstNode): |
348 | def __init__(self, filename, lineno, fragments_path_prefix, fragments_variable, flagged_variables_list_variable): | 346 | def __init__(self, filename, lineno, fragments_path_prefix, fragments_variable, flagged_variables_list_variable): |
@@ -471,6 +469,17 @@ def finalize(fn, d, variant = None): | |||
471 | if d.getVar("_FAILPARSINGERRORHANDLED", False) == True: | 469 | if d.getVar("_FAILPARSINGERRORHANDLED", False) == True: |
472 | raise bb.BBHandledException() | 470 | raise bb.BBHandledException() |
473 | 471 | ||
472 | inherits = [x[0] for x in (d.getVar('__BBDEFINHERITS', False) or [('',)])] | ||
473 | bb.event.fire(bb.event.RecipePreDeferredInherits(fn, inherits), d) | ||
474 | |||
475 | while True: | ||
476 | inherits = d.getVar('__BBDEFINHERITS', False) or [] | ||
477 | if not inherits: | ||
478 | break | ||
479 | inherit, filename, lineno = inherits.pop(0) | ||
480 | d.setVar('__BBDEFINHERITS', inherits) | ||
481 | bb.parse.BBHandler.inherit(inherit, filename, lineno, d, deferred=True) | ||
482 | |||
474 | for var in d.getVar('__BBHANDLERS', False) or []: | 483 | for var in d.getVar('__BBHANDLERS', False) or []: |
475 | # try to add the handler | 484 | # try to add the handler |
476 | handlerfn = d.getVarFlag(var, "filename", False) | 485 | handlerfn = d.getVarFlag(var, "filename", False) |
@@ -525,14 +534,6 @@ def multi_finalize(fn, d): | |||
525 | logger.debug("Appending .bbappend file %s to %s", append, fn) | 534 | logger.debug("Appending .bbappend file %s to %s", append, fn) |
526 | bb.parse.BBHandler.handle(append, d, True) | 535 | bb.parse.BBHandler.handle(append, d, True) |
527 | 536 | ||
528 | while True: | ||
529 | inherits = d.getVar('__BBDEFINHERITS', False) or [] | ||
530 | if not inherits: | ||
531 | break | ||
532 | inherit, filename, lineno = inherits.pop(0) | ||
533 | d.setVar('__BBDEFINHERITS', inherits) | ||
534 | bb.parse.BBHandler.inherit(inherit, filename, lineno, d, deferred=True) | ||
535 | |||
536 | onlyfinalise = d.getVar("__ONLYFINALISE", False) | 537 | onlyfinalise = d.getVar("__ONLYFINALISE", False) |
537 | 538 | ||
538 | safe_d = d | 539 | safe_d = d |
@@ -568,7 +569,7 @@ def multi_finalize(fn, d): | |||
568 | d.setVar("BBEXTENDVARIANT", variantmap[name]) | 569 | d.setVar("BBEXTENDVARIANT", variantmap[name]) |
569 | else: | 570 | else: |
570 | d.setVar("PN", "%s-%s" % (pn, name)) | 571 | d.setVar("PN", "%s-%s" % (pn, name)) |
571 | bb.parse.BBHandler.inherit(extendedmap[name], fn, 0, d) | 572 | bb.parse.BBHandler.inherit_defer(extendedmap[name], fn, 0, d) |
572 | 573 | ||
573 | safe_d.setVar("BBCLASSEXTEND", extended) | 574 | safe_d.setVar("BBCLASSEXTEND", extended) |
574 | _create_variants(datastores, extendedmap.keys(), extendfunc, onlyfinalise) | 575 | _create_variants(datastores, extendedmap.keys(), extendfunc, onlyfinalise) |
diff --git a/bitbake/lib/bb/parse/parse_py/BBHandler.py b/bitbake/lib/bb/parse/parse_py/BBHandler.py index 4bdb11994f..008fec2308 100644 --- a/bitbake/lib/bb/parse/parse_py/BBHandler.py +++ b/bitbake/lib/bb/parse/parse_py/BBHandler.py | |||
@@ -42,12 +42,22 @@ def supports(fn, d): | |||
42 | """Return True if fn has a supported extension""" | 42 | """Return True if fn has a supported extension""" |
43 | return os.path.splitext(fn)[-1] in [".bb", ".bbclass", ".inc"] | 43 | return os.path.splitext(fn)[-1] in [".bb", ".bbclass", ".inc"] |
44 | 44 | ||
45 | def inherit_defer(expression, fn, lineno, d): | ||
46 | inherit = (expression, fn, lineno) | ||
47 | inherits = d.getVar('__BBDEFINHERITS', False) or [] | ||
48 | inherits.append(inherit) | ||
49 | d.setVar('__BBDEFINHERITS', inherits) | ||
50 | |||
45 | def inherit(files, fn, lineno, d, deferred=False): | 51 | def inherit(files, fn, lineno, d, deferred=False): |
46 | __inherit_cache = d.getVar('__inherit_cache', False) or [] | 52 | __inherit_cache = d.getVar('__inherit_cache', False) or [] |
47 | #if "${" in files and not deferred: | 53 | #if "${" in files and not deferred: |
48 | # bb.warn("%s:%s has non deferred conditional inherit" % (fn, lineno)) | 54 | # bb.warn("%s:%s has non deferred conditional inherit" % (fn, lineno)) |
49 | files = d.expand(files).split() | 55 | files = d.expand(files).split() |
50 | for file in files: | 56 | for file in files: |
57 | defer = (d.getVar("BB_DEFER_BBCLASSES") or "").split() | ||
58 | if not deferred and file in defer: | ||
59 | inherit_defer(file, fn, lineno, d) | ||
60 | continue | ||
51 | classtype = d.getVar("__bbclasstype", False) | 61 | classtype = d.getVar("__bbclasstype", False) |
52 | origfile = file | 62 | origfile = file |
53 | for t in ["classes-" + classtype, "classes"]: | 63 | for t in ["classes-" + classtype, "classes"]: |
diff --git a/meta-yocto-bsp/wic/beaglebone-yocto.wks b/meta-yocto-bsp/wic/beaglebone-yocto.wks index 7a28fb23dc..335e2b9bd5 100644 --- a/meta-yocto-bsp/wic/beaglebone-yocto.wks +++ b/meta-yocto-bsp/wic/beaglebone-yocto.wks | |||
@@ -2,6 +2,6 @@ | |||
2 | # long-description: Creates a partitioned SD card image for Beaglebone. | 2 | # long-description: Creates a partitioned SD card image for Beaglebone. |
3 | # Boot files are located in the first vfat partition. | 3 | # Boot files are located in the first vfat partition. |
4 | 4 | ||
5 | part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4 --fixed-size 32 --sourceparams="loader=u-boot" --use-uuid | 5 | part /boot --source bootimg_partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4 --fixed-size 32 --sourceparams="loader=u-boot" --use-uuid |
6 | part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label root --align 4 --use-uuid | 6 | part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label root --align 4 --use-uuid |
7 | bootloader --append="console=ttyS0,115200" | 7 | bootloader --append="console=ttyS0,115200" |
diff --git a/meta-yocto-bsp/wic/genericarm64.wks.in b/meta-yocto-bsp/wic/genericarm64.wks.in index ee7da87ded..52ee8147fa 100644 --- a/meta-yocto-bsp/wic/genericarm64.wks.in +++ b/meta-yocto-bsp/wic/genericarm64.wks.in | |||
@@ -2,7 +2,7 @@ | |||
2 | # long-description: Creates a partitioned EFI disk image that the user | 2 | # long-description: Creates a partitioned EFI disk image that the user |
3 | # can directly dd to boot media. | 3 | # can directly dd to boot media. |
4 | 4 | ||
5 | part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER},initrd=${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}" --label boot --active --align 1024 --use-uuid | 5 | part /boot --source bootimg_efi --sourceparams="loader=${EFI_PROVIDER},initrd=${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}" --label boot --active --align 1024 --use-uuid |
6 | 6 | ||
7 | part swap --size 44 --label swap --fstype=swap --use-uuid | 7 | part swap --size 44 --label swap --fstype=swap --use-uuid |
8 | 8 | ||
diff --git a/meta-yocto-bsp/wic/genericx86.wks.in b/meta-yocto-bsp/wic/genericx86.wks.in index 7c09ad00a1..f75ae9adac 100644 --- a/meta-yocto-bsp/wic/genericx86.wks.in +++ b/meta-yocto-bsp/wic/genericx86.wks.in | |||
@@ -1,6 +1,6 @@ | |||
1 | # short-description: Create an EFI disk image for genericx86* | 1 | # short-description: Create an EFI disk image for genericx86* |
2 | # long-description: Creates a partitioned EFI disk image for genericx86* machines | 2 | # long-description: Creates a partitioned EFI disk image for genericx86* machines |
3 | part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER}" --ondisk sda --label msdos --active --align 1024 | 3 | part /boot --source bootimg_efi --sourceparams="loader=${EFI_PROVIDER}" --ondisk sda --label msdos --active --align 1024 |
4 | part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --use-uuid | 4 | part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --use-uuid |
5 | part swap --ondisk sda --size 44 --label swap1 --fstype=swap | 5 | part swap --ondisk sda --size 44 --label swap1 --fstype=swap |
6 | 6 | ||
diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass index 8215969c7b..e55a538e36 100644 --- a/meta/classes-global/base.bbclass +++ b/meta/classes-global/base.bbclass | |||
@@ -19,6 +19,21 @@ PACKAGECONFIG_CONFARGS ??= "" | |||
19 | 19 | ||
20 | inherit metadata_scm | 20 | inherit metadata_scm |
21 | 21 | ||
22 | PREFERRED_TOOLCHAIN_TARGET ??= "gcc" | ||
23 | PREFERRED_TOOLCHAIN_NATIVE ??= "gcc" | ||
24 | PREFERRED_TOOLCHAIN_SDK ??= "gcc" | ||
25 | |||
26 | PREFERRED_TOOLCHAIN = "${PREFERRED_TOOLCHAIN_TARGET}" | ||
27 | PREFERRED_TOOLCHAIN:class-native = "${PREFERRED_TOOLCHAIN_NATIVE}" | ||
28 | PREFERRED_TOOLCHAIN:class-cross = "${PREFERRED_TOOLCHAIN_NATIVE}" | ||
29 | PREFERRED_TOOLCHAIN:class-crosssdk = "${PREFERRED_TOOLCHAIN_SDK}" | ||
30 | PREFERRED_TOOLCHAIN:class-nativesdk = "${PREFERRED_TOOLCHAIN_SDK}" | ||
31 | |||
32 | TOOLCHAIN ??= "${PREFERRED_TOOLCHAIN}" | ||
33 | |||
34 | inherit toolchain/gcc-native | ||
35 | inherit_defer toolchain/${TOOLCHAIN} | ||
36 | |||
22 | def lsb_distro_identifier(d): | 37 | def lsb_distro_identifier(d): |
23 | adjust = d.getVar('LSB_DISTRO_ADJUST') | 38 | adjust = d.getVar('LSB_DISTRO_ADJUST') |
24 | adjust_func = None | 39 | adjust_func = None |
@@ -267,10 +282,19 @@ def buildcfg_neededvars(d): | |||
267 | bb.fatal('The following variable(s) were not set: %s\nPlease set them directly, or choose a MACHINE or DISTRO that sets them.' % ', '.join(pesteruser)) | 282 | bb.fatal('The following variable(s) were not set: %s\nPlease set them directly, or choose a MACHINE or DISTRO that sets them.' % ', '.join(pesteruser)) |
268 | 283 | ||
269 | addhandler base_eventhandler | 284 | addhandler base_eventhandler |
270 | base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.MultiConfigParsed bb.event.BuildStarted bb.event.RecipePreFinalise bb.event.RecipeParsed" | 285 | base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.MultiConfigParsed bb.event.BuildStarted bb.event.RecipePreFinalise bb.event.RecipeParsed bb.event.RecipePreDeferredInherits" |
271 | python base_eventhandler() { | 286 | python base_eventhandler() { |
272 | import bb.runqueue | 287 | import bb.runqueue |
273 | 288 | ||
289 | if isinstance(e, bb.event.RecipePreDeferredInherits): | ||
290 | # Use this to snoop on class extensions and set these up before the deferred inherits | ||
291 | # are processed which allows overrides on conditional variables. | ||
292 | for c in ['native', 'nativesdk', 'crosssdk', 'cross']: | ||
293 | if c in e.inherits: | ||
294 | d.setVar('CLASSOVERRIDE', 'class-' + c) | ||
295 | break | ||
296 | return | ||
297 | |||
274 | if isinstance(e, bb.event.ConfigParsed): | 298 | if isinstance(e, bb.event.ConfigParsed): |
275 | if not d.getVar("NATIVELSBSTRING", False): | 299 | if not d.getVar("NATIVELSBSTRING", False): |
276 | d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d)) | 300 | d.setVar("NATIVELSBSTRING", lsb_distro_identifier(d)) |
diff --git a/meta/classes-recipe/crosssdk.bbclass b/meta/classes-recipe/crosssdk.bbclass index 824b1bcff4..3541c2c393 100644 --- a/meta/classes-recipe/crosssdk.bbclass +++ b/meta/classes-recipe/crosssdk.bbclass | |||
@@ -4,6 +4,7 @@ | |||
4 | # SPDX-License-Identifier: MIT | 4 | # SPDX-License-Identifier: MIT |
5 | # | 5 | # |
6 | 6 | ||
7 | BB_DEFER_BBCLASSES:remove = "cross" | ||
7 | inherit cross | 8 | inherit cross |
8 | 9 | ||
9 | CLASSOVERRIDE = "class-crosssdk" | 10 | CLASSOVERRIDE = "class-crosssdk" |
diff --git a/meta/conf/toolchain/clang.inc b/meta/classes/toolchain/clang.bbclass index 8a0a2c315a..d7b8a3657c 100644 --- a/meta/conf/toolchain/clang.inc +++ b/meta/classes/toolchain/clang.bbclass | |||
@@ -14,15 +14,18 @@ STRINGS = "${HOST_PREFIX}llvm-strings" | |||
14 | NM = "${HOST_PREFIX}llvm-nm" | 14 | NM = "${HOST_PREFIX}llvm-nm" |
15 | READELF = "${HOST_PREFIX}llvm-readelf" | 15 | READELF = "${HOST_PREFIX}llvm-readelf" |
16 | 16 | ||
17 | PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}clang-cross-${TARGET_ARCH}" | 17 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc = "${MLPREFIX}clang-cross-${TARGET_ARCH}" |
18 | PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}clang-cross-${TARGET_ARCH}" | 18 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++ = "${MLPREFIX}clang-cross-${TARGET_ARCH}" |
19 | PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime" | 19 | PREFERRED_PROVIDER_virtual/${MLPREFIX}compilerlibs = "${MLPREFIX}gcc-runtime" |
20 | PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "clang-crosssdk-${SDK_SYS}" | 20 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc:class-nativesdk = "clang-crosssdk-${SDK_SYS}" |
21 | PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "clang-crosssdk-${SDK_SYS}" | 21 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++:class-nativesdk = "clang-crosssdk-${SDK_SYS}" |
22 | 22 | ||
23 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "clang-crosssdk-${SDK_SYS}" | 23 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-crosssdk = "clang-crosssdk-${SDK_SYS}" |
24 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "clang-crosssdk-${SDK_SYS}" | 24 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-crosssdk = "clang-crosssdk-${SDK_SYS}" |
25 | PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime" | 25 | |
26 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-cross-canadian = "clang-crosssdk-${SDK_SYS}" | ||
27 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-cross-canadian = "clang-crosssdk-${SDK_SYS}" | ||
28 | |||
26 | 29 | ||
27 | BASE_DEFAULT_DEPS:append:class-target = " compiler-rt" | 30 | BASE_DEFAULT_DEPS:append:class-target = " compiler-rt" |
28 | 31 | ||
diff --git a/meta/conf/toolchain/build-gcc.inc b/meta/classes/toolchain/gcc-native.bbclass index a708bd0389..a708bd0389 100644 --- a/meta/conf/toolchain/build-gcc.inc +++ b/meta/classes/toolchain/gcc-native.bbclass | |||
diff --git a/meta/classes/toolchain/gcc.bbclass b/meta/classes/toolchain/gcc.bbclass new file mode 100644 index 0000000000..a5adb5ca37 --- /dev/null +++ b/meta/classes/toolchain/gcc.bbclass | |||
@@ -0,0 +1,33 @@ | |||
1 | CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
2 | CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
3 | FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
4 | CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}" | ||
5 | LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}" | ||
6 | CCLD = "${CC}" | ||
7 | AR = "${HOST_PREFIX}gcc-ar" | ||
8 | AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}" | ||
9 | RANLIB = "${HOST_PREFIX}gcc-ranlib" | ||
10 | STRIP = "${HOST_PREFIX}strip" | ||
11 | OBJCOPY = "${HOST_PREFIX}objcopy" | ||
12 | OBJDUMP = "${HOST_PREFIX}objdump" | ||
13 | STRINGS = "${HOST_PREFIX}strings" | ||
14 | NM = "${HOST_PREFIX}gcc-nm" | ||
15 | READELF = "${HOST_PREFIX}readelf" | ||
16 | |||
17 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" | ||
18 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++ = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" | ||
19 | PREFERRED_PROVIDER_virtual/${MLPREFIX}compilerlibs = "${MLPREFIX}gcc-runtime" | ||
20 | |||
21 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" | ||
22 | PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" | ||
23 | PREFERRED_PROVIDER_virtual/${MLPREFIX}compilerlibs:class-nativesdk = "nativesdk-gcc-runtime" | ||
24 | |||
25 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-crosssdk = "gcc-crosssdk-${SDK_SYS}" | ||
26 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-crosssdk = "gcc-crosssdk-${SDK_SYS}" | ||
27 | PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs:class-crosssdk = "nativesdk-gcc-runtime" | ||
28 | |||
29 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-cross-canadian = "gcc-crosssdk-${SDK_SYS}" | ||
30 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-cross-canadian = "gcc-crosssdk-${SDK_SYS}" | ||
31 | PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs:class-cross-canadian = "nativesdk-gcc-runtime" | ||
32 | |||
33 | TCOVERRIDE = "toolchain-gcc" | ||
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 8686c0a25f..54d6bebc39 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf | |||
@@ -834,9 +834,6 @@ include conf/licenses.conf | |||
834 | require conf/sanity.conf | 834 | require conf/sanity.conf |
835 | include conf/bblock.conf | 835 | include conf/bblock.conf |
836 | 836 | ||
837 | require toolchain/gcc.inc | ||
838 | require toolchain/build-gcc.inc | ||
839 | |||
840 | ################################################################## | 837 | ################################################################## |
841 | # Weak variables (usually to retain backwards compatibility) | 838 | # Weak variables (usually to retain backwards compatibility) |
842 | ################################################################## | 839 | ################################################################## |
@@ -950,6 +947,8 @@ BB_DEFAULT_UMASK ??= "022" | |||
950 | BB_CONSOLELOG ?= "${LOG_DIR}/cooker/${MACHINE}/${DATETIME}.log" | 947 | BB_CONSOLELOG ?= "${LOG_DIR}/cooker/${MACHINE}/${DATETIME}.log" |
951 | BB_DEFAULT_EVENTLOG ?= "${LOG_DIR}/eventlog/${DATETIME}.json" | 948 | BB_DEFAULT_EVENTLOG ?= "${LOG_DIR}/eventlog/${DATETIME}.json" |
952 | 949 | ||
950 | BB_DEFER_BBCLASSES = "native nativesdk cross crosssdk" | ||
951 | |||
953 | # Setup our default hash policy | 952 | # Setup our default hash policy |
954 | BB_SIGNATURE_HANDLER ?= "OEBasicHash" | 953 | BB_SIGNATURE_HANDLER ?= "OEBasicHash" |
955 | BB_HASHEXCLUDE_COMMON ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DIR \ | 954 | BB_HASHEXCLUDE_COMMON ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DIR \ |
diff --git a/meta/conf/sanity.conf b/meta/conf/sanity.conf index 6d3911ff94..3692007e96 100644 --- a/meta/conf/sanity.conf +++ b/meta/conf/sanity.conf | |||
@@ -3,7 +3,7 @@ | |||
3 | # See sanity.bbclass | 3 | # See sanity.bbclass |
4 | # | 4 | # |
5 | # Expert users can confirm their sanity with "touch conf/sanity.conf" | 5 | # Expert users can confirm their sanity with "touch conf/sanity.conf" |
6 | BB_MIN_VERSION = "2.12.0" | 6 | BB_MIN_VERSION = "2.15.0" |
7 | 7 | ||
8 | SANITY_ABIFILE = "${TMPDIR}/abi_version" | 8 | SANITY_ABIFILE = "${TMPDIR}/abi_version" |
9 | 9 | ||
diff --git a/meta/conf/toolchain/gcc.inc b/meta/conf/toolchain/gcc.inc deleted file mode 100644 index 75f9abe999..0000000000 --- a/meta/conf/toolchain/gcc.inc +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
2 | CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
3 | FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
4 | CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}" | ||
5 | LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}" | ||
6 | CCLD = "${CC}" | ||
7 | AR = "${HOST_PREFIX}gcc-ar" | ||
8 | AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}" | ||
9 | RANLIB = "${HOST_PREFIX}gcc-ranlib" | ||
10 | STRIP = "${HOST_PREFIX}strip" | ||
11 | OBJCOPY = "${HOST_PREFIX}objcopy" | ||
12 | OBJDUMP = "${HOST_PREFIX}objdump" | ||
13 | STRINGS = "${HOST_PREFIX}strings" | ||
14 | NM = "${HOST_PREFIX}gcc-nm" | ||
15 | READELF = "${HOST_PREFIX}readelf" | ||
16 | |||
17 | PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" | ||
18 | PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}gcc-cross-${TARGET_ARCH}" | ||
19 | PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime" | ||
20 | PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" | ||
21 | PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}" | ||
22 | |||
23 | PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}" | ||
24 | PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}" | ||
25 | PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime" | ||
26 | |||
27 | TCOVERRIDE = "toolchain-gcc" | ||
diff --git a/meta/recipes-devtools/binutils/binutils-cross.inc b/meta/recipes-devtools/binutils/binutils-cross.inc index 9c371e7e13..c545ea2ad9 100644 --- a/meta/recipes-devtools/binutils/binutils-cross.inc +++ b/meta/recipes-devtools/binutils/binutils-cross.inc | |||
@@ -9,6 +9,8 @@ TARGET_ARCH[vardepvalue] = "${TARGET_ARCH}" | |||
9 | INHIBIT_DEFAULT_DEPS = "1" | 9 | INHIBIT_DEFAULT_DEPS = "1" |
10 | INHIBIT_AUTOTOOLS_DEPS = "1" | 10 | INHIBIT_AUTOTOOLS_DEPS = "1" |
11 | 11 | ||
12 | TOOLCHAIN = "gcc" | ||
13 | |||
12 | SRC_URI += "file://0002-binutils-cross-Do-not-generate-linker-script-directo.patch" | 14 | SRC_URI += "file://0002-binutils-cross-Do-not-generate-linker-script-directo.patch" |
13 | 15 | ||
14 | # Specify lib-path else we use a load of search dirs which we don't use | 16 | # Specify lib-path else we use a load of search dirs which we don't use |
diff --git a/meta/recipes-devtools/clang/clang-cross_git.bb b/meta/recipes-devtools/clang/clang-cross_git.bb index 9b9b120a3d..323cc0d880 100644 --- a/meta/recipes-devtools/clang/clang-cross_git.bb +++ b/meta/recipes-devtools/clang/clang-cross_git.bb | |||
@@ -11,6 +11,7 @@ PN = "clang-cross-${TARGET_ARCH}" | |||
11 | require common-clang.inc | 11 | require common-clang.inc |
12 | require common-source.inc | 12 | require common-source.inc |
13 | inherit cross | 13 | inherit cross |
14 | TOOLCHAIN = "clang" | ||
14 | DEPENDS += "clang-native virtual/cross-binutils" | 15 | DEPENDS += "clang-native virtual/cross-binutils" |
15 | 16 | ||
16 | #INHIBIT_PACKAGE_STRIP = "1" | 17 | #INHIBIT_PACKAGE_STRIP = "1" |
diff --git a/meta/recipes-devtools/clang/clang-crosssdk_git.bb b/meta/recipes-devtools/clang/clang-crosssdk_git.bb index 47ac96f4f9..ef162ef153 100644 --- a/meta/recipes-devtools/clang/clang-crosssdk_git.bb +++ b/meta/recipes-devtools/clang/clang-crosssdk_git.bb | |||
@@ -11,6 +11,7 @@ PN = "clang-crosssdk-${SDK_SYS}" | |||
11 | require common-clang.inc | 11 | require common-clang.inc |
12 | require common-source.inc | 12 | require common-source.inc |
13 | inherit crosssdk | 13 | inherit crosssdk |
14 | TOOLCHAIN = "clang" | ||
14 | DEPENDS += "clang-native nativesdk-clang-glue virtual/nativesdk-cross-binutils virtual/nativesdk-libc" | 15 | DEPENDS += "clang-native nativesdk-clang-glue virtual/nativesdk-cross-binutils virtual/nativesdk-libc" |
15 | 16 | ||
16 | do_install() { | 17 | do_install() { |