diff --git a/poky/meta/classes/sanity.bbclass b/poky/meta/classes/sanity.bbclass
index 9e87101..292c559 100644
--- a/poky/meta/classes/sanity.bbclass
+++ b/poky/meta/classes/sanity.bbclass
@@ -527,7 +527,7 @@
             bb.warn("You are running bitbake under WSLv2, this works properly but you should optimize your VHDX file eventually to avoid running out of storage space")
     return None
 
-# Require at least gcc version 5.0.
+# Require at least gcc version 6.0.
 #
 # This can be fixed on CentOS-7 with devtoolset-6+
 # https://www.softwarecollections.org/en/scls/rhscl/devtoolset-6/
@@ -541,8 +541,8 @@
     
     build_cc, version = oe.utils.get_host_compiler_version(sanity_data)
     if build_cc.strip() == "gcc":
-        if LooseVersion(version) < LooseVersion("5.0"):
-            return "Your version of gcc is older than 5.0 and will break builds. Please install a newer version of gcc (you could use the project's buildtools-extended-tarball or use scripts/install-buildtools).\n"
+        if LooseVersion(version) < LooseVersion("6.0"):
+            return "Your version of gcc is older than 6.0 and will break builds. Please install a newer version of gcc (you could use the project's buildtools-extended-tarball or use scripts/install-buildtools).\n"
     return None
 
 # Tar version 1.24 and onwards handle overwriting symlinks correctly
diff --git a/poky/meta/classes/staging.bbclass b/poky/meta/classes/staging.bbclass
index 5b04f88..de3a198 100644
--- a/poky/meta/classes/staging.bbclass
+++ b/poky/meta/classes/staging.bbclass
@@ -93,6 +93,7 @@
 SYSROOT_DESTDIR = "${WORKDIR}/sysroot-destdir"
 
 python do_populate_sysroot () {
+    # SYSROOT 'version' 2
     bb.build.exec_func("sysroot_stage_all", d)
     bb.build.exec_func("sysroot_strip", d)
     for f in (d.getVar('SYSROOT_PREPROCESS_FUNCS') or '').split():
diff --git a/poky/meta/classes/utils.bbclass b/poky/meta/classes/utils.bbclass
index cd3d057..120bcc6 100644
--- a/poky/meta/classes/utils.bbclass
+++ b/poky/meta/classes/utils.bbclass
@@ -1,22 +1,3 @@
-def machine_paths(d):
-    """List any existing machine specific filespath directories"""
-    machine = d.getVar("MACHINE")
-    filespathpkg = d.getVar("FILESPATHPKG").split(":")
-    for basepath in d.getVar("FILESPATHBASE").split(":"):
-        for pkgpath in filespathpkg:
-            machinepath = os.path.join(basepath, pkgpath, machine)
-            if os.path.isdir(machinepath):
-                yield machinepath
-
-def is_machine_specific(d):
-    """Determine whether the current recipe is machine specific"""
-    machinepaths = set(machine_paths(d))
-    srcuri = d.getVar("SRC_URI").split()
-    for url in srcuri:
-        fetcher = bb.fetch2.Fetch([srcuri], d)
-        if url.startswith("file://"):
-            if any(fetcher.localpath(url).startswith(mp + "/") for mp in machinepaths):
-                return True
 
 oe_soinstall() {
 	# Purpose: Install shared library file and
