diff options
-rw-r--r-- | meta/classes/sanity.bbclass | 49 |
1 files changed, 30 insertions, 19 deletions
diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass index b8fc090184..2de023f962 100644 --- a/meta/classes/sanity.bbclass +++ b/meta/classes/sanity.bbclass | |||
@@ -62,9 +62,10 @@ def check_sanity(e): | |||
62 | if "diffstat-native" not in assume_provided: | 62 | if "diffstat-native" not in assume_provided: |
63 | messages = messages + 'Please use ASSUME_PROVIDED +=, not ASSUME_PROVIDED = in your local.conf\n' | 63 | messages = messages + 'Please use ASSUME_PROVIDED +=, not ASSUME_PROVIDED = in your local.conf\n' |
64 | 64 | ||
65 | # Check that the MACHINE is valid | 65 | # Check that the MACHINE is valid, if it is set |
66 | if not check_conf_exists("conf/machine/${MACHINE}.conf", e.data): | 66 | if data.getVar('MACHINE', e.data, True): |
67 | messages = messages + 'Please set a valid MACHINE in your local.conf\n' | 67 | if not check_conf_exists("conf/machine/${MACHINE}.conf", e.data): |
68 | messages = messages + 'Please set a valid MACHINE in your local.conf\n' | ||
68 | 69 | ||
69 | # Check that the DISTRO is valid | 70 | # Check that the DISTRO is valid |
70 | # need to take into account DISTRO renaming DISTRO | 71 | # need to take into account DISTRO renaming DISTRO |
@@ -96,11 +97,12 @@ def check_sanity(e): | |||
96 | if not check_app_exists("qemu-arm", e.data): | 97 | if not check_app_exists("qemu-arm", e.data): |
97 | messages = messages + "qemu-native was in ASSUME_PROVIDED but the QEMU binaries (qemu-arm) can't be found in PATH" | 98 | messages = messages + "qemu-native was in ASSUME_PROVIDED but the QEMU binaries (qemu-arm) can't be found in PATH" |
98 | 99 | ||
99 | if os.path.exists("/proc/sys/vm/mmap_min_addr"): | 100 | if data.getVar('TARGET_ARCH', e.data, True) == "arm": |
100 | f = file("/proc/sys/vm/mmap_min_addr", "r") | 101 | if os.path.exists("/proc/sys/vm/mmap_min_addr"): |
101 | if (f.read().strip() != "0"): | 102 | f = file("/proc/sys/vm/mmap_min_addr", "r") |
102 | messages = messages + "/proc/sys/vm/mmap_min_addr is not 0. This will cause problems with qemu so please fix the value (as root).\n" | 103 | if (f.read().strip() != "0"): |
103 | f.close() | 104 | messages = messages + "/proc/sys/vm/mmap_min_addr is not 0. This will cause problems with qemu so please fix the value (as root).\n" |
105 | f.close() | ||
104 | 106 | ||
105 | for util in required_utilities.split(): | 107 | for util in required_utilities.split(): |
106 | if not check_app_exists( util, e.data ): | 108 | if not check_app_exists( util, e.data ): |
@@ -136,6 +138,25 @@ def check_sanity(e): | |||
136 | f.write(tmpdir) | 138 | f.write(tmpdir) |
137 | f.close() | 139 | f.close() |
138 | 140 | ||
141 | # | ||
142 | # Check the 'ABI' of TMPDIR | ||
143 | # | ||
144 | current_abi = data.getVar('SANITY_ABI', e.data, True) | ||
145 | abifile = data.getVar('SANITY_ABIFILE', e.data, True) | ||
146 | if os.path.exists(abifile): | ||
147 | f = file(abifile, "r") | ||
148 | abi = f.read().strip() | ||
149 | if not abi.isdigit(): | ||
150 | f = file(abifile, "w") | ||
151 | f.write(current_abi) | ||
152 | elif (abi != current_abi): | ||
153 | # Code to convert from one ABI to another could go here if possible. | ||
154 | messages = messages + "Error, TMPDIR has changed ABI (%s to %s) and you need to either rebuild, revert or adjust it at your own risk.\n" % (abi, current_abi) | ||
155 | else: | ||
156 | f = file(abifile, "w") | ||
157 | f.write(current_abi) | ||
158 | f.close() | ||
159 | |||
139 | if messages != "": | 160 | if messages != "": |
140 | raise_sanity_error(messages) | 161 | raise_sanity_error(messages) |
141 | 162 | ||
@@ -144,17 +165,7 @@ python check_sanity_eventhandler() { | |||
144 | from bb import note, error, data, __version__ | 165 | from bb import note, error, data, __version__ |
145 | from bb.event import getName | 166 | from bb.event import getName |
146 | 167 | ||
147 | try: | 168 | if getName(e) == "ConfigParsed": |
148 | from distutils.version import LooseVersion | ||
149 | except ImportError: | ||
150 | def LooseVersion(v): print "WARNING: sanity.bbclass can't compare versions without python-distutils"; return 1 | ||
151 | |||
152 | if (LooseVersion(bb.__version__) > LooseVersion("1.8.6")): | ||
153 | if getName(e) == "ConfigParsed": | ||
154 | check_sanity(e) | ||
155 | return NotHandled | ||
156 | |||
157 | if getName(e) == "BuildStarted": | ||
158 | check_sanity(e) | 169 | check_sanity(e) |
159 | 170 | ||
160 | return NotHandled | 171 | return NotHandled |