summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbitbake/bin/bitbake2
-rwxr-xr-xbitbake/bin/bitbake-getvar5
-rw-r--r--bitbake/lib/bb/__init__.py2
-rw-r--r--bitbake/lib/bb/event.py10
-rw-r--r--bitbake/lib/bb/parse/ast.py25
-rw-r--r--bitbake/lib/bb/parse/parse_py/BBHandler.py10
-rw-r--r--meta-yocto-bsp/wic/beaglebone-yocto.wks2
-rw-r--r--meta-yocto-bsp/wic/genericarm64.wks.in2
-rw-r--r--meta-yocto-bsp/wic/genericx86.wks.in2
-rw-r--r--meta/classes-global/base.bbclass26
-rw-r--r--meta/classes-recipe/crosssdk.bbclass1
-rw-r--r--meta/classes/toolchain/clang.bbclass (renamed from meta/conf/toolchain/clang.inc)21
-rw-r--r--meta/classes/toolchain/gcc-native.bbclass (renamed from meta/conf/toolchain/build-gcc.inc)0
-rw-r--r--meta/classes/toolchain/gcc.bbclass33
-rw-r--r--meta/conf/bitbake.conf5
-rw-r--r--meta/conf/sanity.conf2
-rw-r--r--meta/conf/toolchain/gcc.inc27
-rw-r--r--meta/recipes-devtools/binutils/binutils-cross.inc2
-rw-r--r--meta/recipes-devtools/clang/clang-cross_git.bb1
-rw-r--r--meta/recipes-devtools/clang/clang-crosssdk_git.bb1
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
28bb.utils.check_system_locale() 28bb.utils.check_system_locale()
29 29
30__version__ = "2.12.0" 30__version__ = "2.15.0"
31 31
32if __name__ == "__main__": 32if __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
10import os 10import os
11import sys 11import sys
12import warnings 12import warnings
13import logging
13warnings.simplefilter("default") 14warnings.simplefilter("default")
14 15
15bindir = os.path.dirname(__file__) 16bindir = 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
14import sys 14import sys
15if sys.version_info < (3, 9, 0): 15if 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
434class 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
434class RecipePreFinalise(RecipeEvent): 444class 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
347class AddFragmentsNode(AstNode): 345class 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
45def 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
45def inherit(files, fn, lineno, d, deferred=False): 51def 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
5part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4 --fixed-size 32 --sourceparams="loader=u-boot" --use-uuid 5part /boot --source bootimg_partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4 --fixed-size 32 --sourceparams="loader=u-boot" --use-uuid
6part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label root --align 4 --use-uuid 6part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label root --align 4 --use-uuid
7bootloader --append="console=ttyS0,115200" 7bootloader --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
5part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER},initrd=${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}" --label boot --active --align 1024 --use-uuid 5part /boot --source bootimg_efi --sourceparams="loader=${EFI_PROVIDER},initrd=${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}" --label boot --active --align 1024 --use-uuid
6 6
7part swap --size 44 --label swap --fstype=swap --use-uuid 7part 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
3part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER}" --ondisk sda --label msdos --active --align 1024 3part /boot --source bootimg_efi --sourceparams="loader=${EFI_PROVIDER}" --ondisk sda --label msdos --active --align 1024
4part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --use-uuid 4part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 --use-uuid
5part swap --ondisk sda --size 44 --label swap1 --fstype=swap 5part 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
20inherit metadata_scm 20inherit metadata_scm
21 21
22PREFERRED_TOOLCHAIN_TARGET ??= "gcc"
23PREFERRED_TOOLCHAIN_NATIVE ??= "gcc"
24PREFERRED_TOOLCHAIN_SDK ??= "gcc"
25
26PREFERRED_TOOLCHAIN = "${PREFERRED_TOOLCHAIN_TARGET}"
27PREFERRED_TOOLCHAIN:class-native = "${PREFERRED_TOOLCHAIN_NATIVE}"
28PREFERRED_TOOLCHAIN:class-cross = "${PREFERRED_TOOLCHAIN_NATIVE}"
29PREFERRED_TOOLCHAIN:class-crosssdk = "${PREFERRED_TOOLCHAIN_SDK}"
30PREFERRED_TOOLCHAIN:class-nativesdk = "${PREFERRED_TOOLCHAIN_SDK}"
31
32TOOLCHAIN ??= "${PREFERRED_TOOLCHAIN}"
33
34inherit toolchain/gcc-native
35inherit_defer toolchain/${TOOLCHAIN}
36
22def lsb_distro_identifier(d): 37def 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
269addhandler base_eventhandler 284addhandler base_eventhandler
270base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.MultiConfigParsed bb.event.BuildStarted bb.event.RecipePreFinalise bb.event.RecipeParsed" 285base_eventhandler[eventmask] = "bb.event.ConfigParsed bb.event.MultiConfigParsed bb.event.BuildStarted bb.event.RecipePreFinalise bb.event.RecipeParsed bb.event.RecipePreDeferredInherits"
271python base_eventhandler() { 286python 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
7BB_DEFER_BBCLASSES:remove = "cross"
7inherit cross 8inherit cross
8 9
9CLASSOVERRIDE = "class-crosssdk" 10CLASSOVERRIDE = "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"
14NM = "${HOST_PREFIX}llvm-nm" 14NM = "${HOST_PREFIX}llvm-nm"
15READELF = "${HOST_PREFIX}llvm-readelf" 15READELF = "${HOST_PREFIX}llvm-readelf"
16 16
17PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}clang-cross-${TARGET_ARCH}" 17PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc = "${MLPREFIX}clang-cross-${TARGET_ARCH}"
18PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}clang-cross-${TARGET_ARCH}" 18PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++ = "${MLPREFIX}clang-cross-${TARGET_ARCH}"
19PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime" 19PREFERRED_PROVIDER_virtual/${MLPREFIX}compilerlibs = "${MLPREFIX}gcc-runtime"
20PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "clang-crosssdk-${SDK_SYS}" 20PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc:class-nativesdk = "clang-crosssdk-${SDK_SYS}"
21PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "clang-crosssdk-${SDK_SYS}" 21PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++:class-nativesdk = "clang-crosssdk-${SDK_SYS}"
22 22
23PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "clang-crosssdk-${SDK_SYS}" 23PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-crosssdk = "clang-crosssdk-${SDK_SYS}"
24PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "clang-crosssdk-${SDK_SYS}" 24PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-crosssdk = "clang-crosssdk-${SDK_SYS}"
25PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime" 25
26PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-cross-canadian = "clang-crosssdk-${SDK_SYS}"
27PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-cross-canadian = "clang-crosssdk-${SDK_SYS}"
28
26 29
27BASE_DEFAULT_DEPS:append:class-target = " compiler-rt" 30BASE_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 @@
1CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
2CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
3FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
4CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}"
5LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}"
6CCLD = "${CC}"
7AR = "${HOST_PREFIX}gcc-ar"
8AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}"
9RANLIB = "${HOST_PREFIX}gcc-ranlib"
10STRIP = "${HOST_PREFIX}strip"
11OBJCOPY = "${HOST_PREFIX}objcopy"
12OBJDUMP = "${HOST_PREFIX}objdump"
13STRINGS = "${HOST_PREFIX}strings"
14NM = "${HOST_PREFIX}gcc-nm"
15READELF = "${HOST_PREFIX}readelf"
16
17PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc = "${MLPREFIX}gcc-cross-${TARGET_ARCH}"
18PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++ = "${MLPREFIX}gcc-cross-${TARGET_ARCH}"
19PREFERRED_PROVIDER_virtual/${MLPREFIX}compilerlibs = "${MLPREFIX}gcc-runtime"
20
21PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}"
22PREFERRED_PROVIDER_virtual/${MLPREFIX}cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}"
23PREFERRED_PROVIDER_virtual/${MLPREFIX}compilerlibs:class-nativesdk = "nativesdk-gcc-runtime"
24
25PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-crosssdk = "gcc-crosssdk-${SDK_SYS}"
26PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-crosssdk = "gcc-crosssdk-${SDK_SYS}"
27PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs:class-crosssdk = "nativesdk-gcc-runtime"
28
29PREFERRED_PROVIDER_virtual/nativesdk-cross-cc:class-cross-canadian = "gcc-crosssdk-${SDK_SYS}"
30PREFERRED_PROVIDER_virtual/nativesdk-cross-c++:class-cross-canadian = "gcc-crosssdk-${SDK_SYS}"
31PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs:class-cross-canadian = "nativesdk-gcc-runtime"
32
33TCOVERRIDE = "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
834require conf/sanity.conf 834require conf/sanity.conf
835include conf/bblock.conf 835include conf/bblock.conf
836 836
837require toolchain/gcc.inc
838require 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"
950BB_CONSOLELOG ?= "${LOG_DIR}/cooker/${MACHINE}/${DATETIME}.log" 947BB_CONSOLELOG ?= "${LOG_DIR}/cooker/${MACHINE}/${DATETIME}.log"
951BB_DEFAULT_EVENTLOG ?= "${LOG_DIR}/eventlog/${DATETIME}.json" 948BB_DEFAULT_EVENTLOG ?= "${LOG_DIR}/eventlog/${DATETIME}.json"
952 949
950BB_DEFER_BBCLASSES = "native nativesdk cross crosssdk"
951
953# Setup our default hash policy 952# Setup our default hash policy
954BB_SIGNATURE_HANDLER ?= "OEBasicHash" 953BB_SIGNATURE_HANDLER ?= "OEBasicHash"
955BB_HASHEXCLUDE_COMMON ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DIR \ 954BB_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"
6BB_MIN_VERSION = "2.12.0" 6BB_MIN_VERSION = "2.15.0"
7 7
8SANITY_ABIFILE = "${TMPDIR}/abi_version" 8SANITY_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 @@
1CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
2CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
3FC = "${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
4CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}"
5LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}"
6CCLD = "${CC}"
7AR = "${HOST_PREFIX}gcc-ar"
8AS = "${HOST_PREFIX}as ${HOST_AS_ARCH}"
9RANLIB = "${HOST_PREFIX}gcc-ranlib"
10STRIP = "${HOST_PREFIX}strip"
11OBJCOPY = "${HOST_PREFIX}objcopy"
12OBJDUMP = "${HOST_PREFIX}objdump"
13STRINGS = "${HOST_PREFIX}strings"
14NM = "${HOST_PREFIX}gcc-nm"
15READELF = "${HOST_PREFIX}readelf"
16
17PREFERRED_PROVIDER_virtual/cross-cc = "${MLPREFIX}gcc-cross-${TARGET_ARCH}"
18PREFERRED_PROVIDER_virtual/cross-c++ = "${MLPREFIX}gcc-cross-${TARGET_ARCH}"
19PREFERRED_PROVIDER_virtual/compilerlibs = "gcc-runtime"
20PREFERRED_PROVIDER_virtual/cross-cc:class-nativesdk = "gcc-crosssdk-${SDK_SYS}"
21PREFERRED_PROVIDER_virtual/cross-c++:class-nativesdk = "gcc-crosssdk-${SDK_SYS}"
22
23PREFERRED_PROVIDER_virtual/nativesdk-cross-cc = "gcc-crosssdk-${SDK_SYS}"
24PREFERRED_PROVIDER_virtual/nativesdk-cross-c++ = "gcc-crosssdk-${SDK_SYS}"
25PREFERRED_PROVIDER_virtual/nativesdk-compilerlibs = "nativesdk-gcc-runtime"
26
27TCOVERRIDE = "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}"
9INHIBIT_DEFAULT_DEPS = "1" 9INHIBIT_DEFAULT_DEPS = "1"
10INHIBIT_AUTOTOOLS_DEPS = "1" 10INHIBIT_AUTOTOOLS_DEPS = "1"
11 11
12TOOLCHAIN = "gcc"
13
12SRC_URI += "file://0002-binutils-cross-Do-not-generate-linker-script-directo.patch" 14SRC_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}"
11require common-clang.inc 11require common-clang.inc
12require common-source.inc 12require common-source.inc
13inherit cross 13inherit cross
14TOOLCHAIN = "clang"
14DEPENDS += "clang-native virtual/cross-binutils" 15DEPENDS += "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}"
11require common-clang.inc 11require common-clang.inc
12require common-source.inc 12require common-source.inc
13inherit crosssdk 13inherit crosssdk
14TOOLCHAIN = "clang"
14DEPENDS += "clang-native nativesdk-clang-glue virtual/nativesdk-cross-binutils virtual/nativesdk-libc" 15DEPENDS += "clang-native nativesdk-clang-glue virtual/nativesdk-cross-binutils virtual/nativesdk-libc"
15 16
16do_install() { 17do_install() {