summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Freyther <zecke@selfish.org>2007-02-21 22:48:55 +0000
committerHolger Freyther <zecke@selfish.org>2007-02-21 22:48:55 +0000
commitc9ac9672ebe052a347c40c46152287a6d66b6d0b (patch)
tree425012b3fb827010ff4fbd2bc98438d4af5a2247
parente46add2af9557af0174688046b1fb73865d0c2e5 (diff)
classes/insane.bbclass: Do not follow links, fix the issue that made koen add bb.fatal
udev has a link to host binaries, do not check the architecture of these binaries. We will skip all links for now for the two reasons: -We either point to a file in our package and then we will check it anyway -It is a file for a another package, which will be checked anyway Make architecture mismatch a fatal/insane error and return False. This should fix the issue koen has seen when he added a bb.fatal the make_fatal_error method returns true if the error should be made fatal, in this case our checks need to set sane to False. The return not makes sure this is happening.
-rw-r--r--classes/insane.bbclass14
1 files changed, 9 insertions, 5 deletions
diff --git a/classes/insane.bbclass b/classes/insane.bbclass
index c950c1e118..ed6d4d0642 100644
--- a/classes/insane.bbclass
+++ b/classes/insane.bbclass
@@ -250,10 +250,15 @@ def package_qa_check_arch(path,name,d):
"""
Check if archs are compatible
"""
- import bb
+ import bb, os
target_os = bb.data.getVar('TARGET_OS', d, True)
target_arch = bb.data.getVar('TARGET_ARCH', d, True)
+ # avoid following links to /usr/bin (e.g. on udev builds)
+ # we will check the files pointed to anyway...
+ if os.path.islink(path):
+ return True
+
#if this will throw an exception, then fix the dict above
(machine, osabi, abiversion, littleendian, bits32) = package_qa_get_machine_dict()[target_os][target_arch]
elf = package_qa_get_elf(path, bits32)
@@ -263,15 +268,14 @@ def package_qa_check_arch(path,name,d):
# just for debbugging to check the parser, remove once convinced...
return True
- sane = True
if not machine == elf.machine():
bb.error("Architecture did not match (%d to %d) on %s" %(machine, elf.machine(), package_qa_clean_path(path,d)))
- sane = package_qa_make_fatal_error( 4, name, path, d )
+ return not package_qa_make_fatal_error( 4, name, path, d )
elif not littleendian == elf.isLittleEndian():
bb.error("Endiannes did not match (%d to %d) on %s" % (littleendian, elf.isLittleEndian(), package_qa_clean_path(path,d)))
- sane = package_qa_make_fatal_error( 4, name, path, d )
+ return not package_qa_make_fatal_error( 4, name, path, d )
- return sane
+ return True
def package_qa_check_pcla(path,name,d):
"""